Androidプログラミングは携帯電話のメモリに強制的にインストールする方法を実現します。


本論文の例は、Androidプログラミング実現アプリケーションが携帯電話メモリに強制的にインストールする方法を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
Froyo(android 2.2、API Level:8)には、Android:install Locationが導入されています。この属性を設定することにより、開発者およびユーザーがプログラムのインストール位置を決定することができます。
android:installLocationはAndroid Manifest.XMLのmaifetノードに属しています。以下の通りです。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="string"
     android:sharedUserId="string"
     android:sharedUserLabel="string resource" 
     android:versionCode="integer"
     android:versionName="string"
     android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
  . . .
</manifest>
android:installLocationは、「aut」、「internal Only」、「preferExternal」の3つの値のいずれかに設定できます。
aut:プログラムは外部の記憶媒体(例えばSDカード)にインストールされることがありますが、デフォルトでは携帯電話メモリにインストールされます。携帯電話のメモリが空の場合は、プログラムは外部の記憶媒体にインストールされます。プログラムが携帯電話にインストールされると、ユーザは      プログラムを外部のメディアに置くか、メモリに置くかを決められます。
internal Only:デフォルト値。この値に設定すると、プログラムはメモリにのみインストールされます。メモリが空の場合、プログラムは正常にインストールできません。
preferExternal:プログラムを外部の記憶媒体にインストールしますが、システムはプログラムが必ず外部の記憶媒体にインストールされると保証していません。外部の記憶媒体が空きがない場合、プログラムはメモリにインストールされます。プログラムはforを使用しました。      ward-lockingメカニズムの時もメモリにインストールされます。外部メモリはこのメカニズムに対応していません。プログラムのインストール後、ユーザーは自由にプログラムを切り替えることができます。外部かそれとも内部記憶媒体に切り替えるべきですか?
注意:Google PlayのCopy Protection特性をプログラムに使用した場合、メモリにのみインストールできます。
プログラムが外部記憶媒体にインストールされている場合
①. appkファイルは外部記憶媒体に移動しますが、プログラムのデータはまだメモリに保存されています。
②保存.appkファイルのコンテナはランダムに生成された鍵を使って暗号化されます。このように、このプログラムをインストールする設定だけが外部記憶媒体に存在するデータを使用することができます。
警告:外部記憶媒体をアンインストールすると、この外部記憶媒体にインストールされているプログラムはすぐに終了されます。
後方互換性:
Android:installLocationを声明しましたが、android:minSdkVersionが8未満の場合、Froyo以下のAVDを使ってコンパイルします。このようにFroyo以下のシステムの中でandroid:installLocationはFrooより低くないです。  ヨのシステムでは、私たちが指定したandroid:installLocationを使用します。
私たちのプログラムが次のような動作をしている場合、プログラムを外部の記憶媒体にインストールしてはいけません。
①サービス
実行中のサービスは終了します。外部記憶媒体を再読み込みした場合、サービスは再開されません。
②Alarm Service
アラームサービスはキャンセルされます。開発者は外部の記憶媒体を再読み込みしてアラームサービスを再登録しなければなりません。
③Input Method Engines
入力方法はシステム入力法に変えられます。外部記憶媒体を再ロードしたら、ユーザはシステム設定によって私達の入力方法を起動できます。
④ライブWallpapers
私たちのダイナミック壁紙は標準のダイナミック壁紙に置き換えられます。
⑤ライブFolders
私たちのダイナミックフォルダは移動されます。
⑥アプリWidgets
私達の小さい部品は取り除かれます。通常はシステムが再起動してから私達の小さい部品しか使えません。
⑦Acceount Managers
AcceountManagerを使って作成したアカウントは、記憶媒体が再読み込みされるまで消失します。
⑧Sync Adapters
外部記憶媒体を再読み込みした場合のみ、同期機能が利用できます。
⑨Device Administrators
私達のDeviceAdminReceiverは無効になります。
⑩起動終了イベントの傍受
システムは、外部記憶媒体をロードする前にACTION_uを送信します。BOOT_COMPLETED放送は、外部記憶媒体にインストールされているプログラムで起動放送を受け付けません。
通常、上記の特性を使用していない限り、私たちのプログラムを外部の記憶媒体にインストールすることができます。例えば、大きなゲームプログラムです。私たちのAPKファイルは何Mサイズですか?
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。