アプリに必要なデータファイルを初回起動時にダウンロードする

755 views
Skip to first unread message

高梨 梓

unread,
Apr 16, 2012, 8:38:46 PM4/16/12
to 日本Androidの会
こんにちは、ついさっき参加しました高梨と申します。
こちらの投稿は、いつも参考にさせていただいておりました。

大容量アプリによくみられる、
アプリに必要なデータファイルを初回起動時に
内部ストレージにダウンロードし、アプリ内で使用するのは
どうすればよいのでしょうか。

画像データや動画データをzip圧縮したものを
自分のレンタルサーバーにアップロードし、
アプリからダウンロード後、内部ストレージに保存し、
zipを解凍、アプリでその動画データを再生・・・
というような処理を考えております。

総データ数は約30個ほどですので、必ずしもzipである必要はございません。
他にスマートな手段があるなら、そちらを採用したいと思います。

先生方のお知恵を貸していただければ光栄です。
初歩的な質問で申し訳ありませんが、よろしくお願いします。

Hirokazu Fukami

unread,
Apr 16, 2012, 10:13:53 PM4/16/12
to android-g...@googlegroups.com
こんにちは、はじめまして、fkmです。

やりたいことを、処理別に答えてみたいとおもいます。

> アプリからダウンロード後、
apacheのライブラリが使えます。
"android httpclient"で検索すると、いろいろ出てくると思います

> 内部ストレージに保存し、
内部ストレージは、古い端末だと200MBぐらいしか無かったりするのでおすすめしません。
Environment.getExternalStorageDirectory()で外部ストレージのパスが取得できます。
この情報を用いて、FileOutputStreamを使って書き出してあげればいいと思います。

> zipを解凍、
java.util.zip.ZipInputStreamという便利なクラスがあるようです(今知りました
http://developer.android.com/reference/java/util/zip/ZipInputStream.html


2012/4/17 高梨 梓 <azu3az...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>

--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://fkm.s266.xrea.com/
email:
f-m...@users.sourceforge.jp
f_h...@hotmail.co.jp
fkm...@gmail.com

morimotokai

unread,
Apr 16, 2012, 10:31:46 PM4/16/12
to 日本Androidの会
初回起動時というわけではないのでズレているかもしれませんが、
これは考慮に入りませんか?
http://developer.android.com/intl/ja/guide/market/expansion-files.html

AdachiDaisuke

unread,
Apr 17, 2012, 3:11:55 AM4/17/12
to 日本Androidの会
安達と申します。

私の作成したオープンソースアプリSalt Road(https://github.com/navius/saltroad)にて初回起動時に
zipをダウンロード後、外部ストレージに保存し、
zipを解凍しています。

Salt Roadのzipをダウンロードしている部分(DownloadDefaultPoiImage.java):
https://github.com/navius/saltroad/blob/master/src/biz/navius/saltroad/utils/DownloadDefaultPoiImage.java

Androidアプリ開発入門リンク集:
http://bestforce1.blogspot.com/p/android.html

高梨 梓

unread,
Apr 17, 2012, 9:40:31 PM4/17/12
to 日本Androidの会
みなさまご回答ありがとうございます。
参考にさせて頂きます。

外部ストレージに保存することも考えたのですが、
SDカードなどに保存した場合、アプリを介さずとも
データファイルをユーザーに見られてしまうのではないか
ということを懸念しております。

たとえば、zipフォルダのみユーザーが自分のパソコンに移し、
パソコンで解凍後、中身の画像データや動画データを
閲覧ということです。

その辺りは皆様どうしてらっしゃるのでしょうか。

高梨 梓

On 4月17日, 午前9:38, 高梨 梓 <azu3azu3w...@gmail.com> wrote:

宮山

unread,
Apr 18, 2012, 3:06:26 AM4/18/12
to 日本Androidの会
宮山です。

業務上経験したのでは以下のような感じでやってます。

1)有料アプリでLVL認証をやって、データだけコピーされても
  使えないようにする。
  これは独自フォーマットのファイルなのでやれた事ではありますが。

2)SDカード保存時に自前でパスワードを掛けてZIP保存する。
  ファイル読み込み毎にZIP展開するので遅くはなりますが…。
  扱うファイルが小さいので内部的にキャッシュするなどしてました。

3)SDカード保存時にファイルを難読化する。
  2)の亜種みたいなものですがzipライブラリを介さないだけ
  多少は早くなります。

4)どこかのDRMソリューションを使う。
  お高いですが何者からAndroid向けのDRMライブラリなどは出てます。
  動画、音楽ファイルなどはこの辺をしっかりしたのを使わないと
  コンテンツフォルダがコンテンツを提供してくれないです…。

参考になれば幸いです。

高梨 梓

unread,
Apr 20, 2012, 7:38:13 AM4/20/12
to 日本Androidの会
宮山様

経験談をありがとうございます。
パスワードのついたzipの解凍方法や圧縮方法、
ファイルの難読化などについて調べてみましたが、
わたしにはまだ難しそうでしたので、
SQLのblob型に動画や画像を保存する形でいこうと思います。

これでデータファイル単独での使用が防げればいいのですが…

高梨
> > > 初歩的な質問で申し訳ありませんが、よろしくお願いします。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
Reply all
Reply to author
Forward
0 new messages