Warning: include(/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74

Warning: include(/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74

Warning: include(): Failed opening '/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php' for inclusion (include_path='.:/usr/local/php/5.4/lib/php') in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74
SDカードへの移行について – Androidアプリつくったった

SDカードへの移行について

pazule6
ぺんしんのパズルが100..DLを達成したので久々に記事を書くこととしました。

私はアプリ情勢を見にGooglePlayで行くのですが、
ついつい評価欄に目が行きます。

 

皆さんも気づいているかもしてれませんが大きく評価をさげている要因は2つあります。アンインストールできないアプリとSDに移動できない容量をとるアプリがあります。

アンインストールできないアプリについてはプリインストールアプリとして入っているアプリはそもそもベンダー配下にある場合、読み取り専用になっているので、その場合は流行りのroot化が必要になります。(中には意図的にアンインストールをキャンセルしているものもありますが・・)

SDカードに付いてはAndroid 2.2、通称「Froyo」ではアプリケーションをSDカードにもインストールできるようになりましたので下記のように設定している人も多いのではないでしょうか

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  android:installLocation="auto">
    <android:minSdkVersion="8"/>
    ...
<manifest>

android:installLocationの指定の種類には以下のものがあります。

  • internalOnly : 内蔵メモリへのインストールのみ許可します。
  • auto : 内蔵メモリ優先でインストールします。しかし内蔵メモリの容量が一杯だった場合はSDカードへ保存されます。
  • preferExternal : SDカードを優先してインストールしますが、SDカードの容量が一杯だった場合は内蔵メモリへインストールされます。

私はユーザの選択性を優先する為にautoを設定するケースが多いです。

よしすべてのアプリに1行足せばSDカード移動なんて楽勝
とはいきません。内部ストレージにインストールせざる得ないアプリ存在しています
App Install Locationより抜粋させて頂きます。(誤訳御免)

・Services
  ただし、ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
  broadcast Intent をトリガーとして登録し、再スタートできる

・Alarm Services
  Service と同じ方法で再マウント時に再登録できる

・Input Method Engines
  アンマウントされた場合、IME はデフォルトに置き換えられる。
  再マウント時にユーザーが再設定する必要がある

・Live Wallpapers
  アンマウントされた場合、Live Wallpaper はデフォルトに
  置き換えられる。再マウント時にユーザーが再度選択する必要がある

・Live Folders
  アンマウントされた場合、ホームスクリーンから Live Folder
  は削除される。再マウント時にユーザーが再度ホームスクリーンに
  追加する必要がある

・App Widgets
  アンマウントされた場合、ホームスクリーンから App Widget は
  削除される。再マウント時にユーザーがホームアプリケーションを
  システムリセットするまで(通常は再起動するまで)、
  ユーザーは App Widget を選択できない

・Account Managers
  AccountManager によって作成されたアカウントは外部ストレージが
  再マウントされるまで見えなくなる

・Sync Adapters
  AbstractThreadedSyncAdapter とその全同期機能は外部ストレージが
  再マウントされるまで働かなくなる

・Device Administrators
  DeviceAdminReceiver とその全ての管理能力は無効になり、
  デバイスの機能に対して予測不可能な結果を持つ可能性があり、
  外部ストレージが再マウントされた後も続く可能性がある

上記該当の場合はおとなしく”internalOnly”に設定しましょう。

当然ですがあくまでもアプリケーションの特性として問題なければ
SDカードへの移行は推奨されますが、そうでなければ、
アプリケーションとしての安全性を優先すべきです。

これは技術者としてユーザの意見より優先されることだからです。

ペンギン15パズル

話題にはかすりもせんでしたが、競争の激しい15パズルで100ダウンロードを達成したパズル15ぺんしんを紹介させて頂きます。

以上です。

参考になれば幸いです。

▼ 関連記事・最近の投稿は記事の下にあります。コチラもご参考ください。


About the Author

dhmo
Author:DHMO(ディベロッパー名) 仕事では自社サービス・メディアの開発を行ってます。 趣味でAndroidアプリ製作を行っています。 カラオケではランキングバトルにはまっております。 Mail: dihydromooxide7@gmail.com 

Be the first to comment on "SDカードへの移行について"

Leave a comment

Your email address will not be published.


*