2010/11/16

setInstallLocationの運用

AndroidアプリをSDカードに移す事が出来る、" adb shell pm setInstallLocation 2 " コマンド

大変便利なのですが、マーケットからアプリを落とす場合、アプリ側の設定によっては問答無用でSDカードへ収まってしまう。

普段から絶対にSDカードのマウント解除をしないで使っている人ならいいのですが、そうでない人は、マーケットからウィジットを落とした後にSDカードのマウントを解除するとウィジットが再配置できなくなるという問題が発生する(ダウンロード後に端末側へ移してもウィジットは使えなくなる)

そんな時は、

" adb shell pm setInstallLocation 0 " (あるいは 1) コマンドを打ち込み※1

一時的に元の状態に戻し、お気に入りのウィジットをダウンロード。
すると、端末側に収まるので、そのあとに再び

"adb shell pm setInstallLocation 2 " とする

(ダウンロードしたウィジットは SDへ移す事が出来るが、移すとやはりそのウィジットは使えなくなる)

アプリ開発者はウィジットを作る場合、Android Manifestの Install location を internalOnly としておいたほうがいいのかもしれませんね。


※1
 0の意味はインストール先が内部優先で足りなければSD
 1が端末のみ
 2がSDのみ


ちなみにアプリ側(AndroidManifest)での設定が優先されるっぽい。
(Install location=Auto | preferExternal  で設定されてるものだけが
SD⇔端末を自由に移動できる)
     

0 件のコメント:

コメントを投稿