Androidは肌の切り替えを実現するための二つの考え方を分析します。


本論文では、Androidによる肌交換を実現するための2つの考えを分析した。皆さんに参考にしてあげます。具体的には以下の通りです。
ここでお肌の交換の実現と異なった方案の違いと使用の場所を知ります。
一、機能上の区分から
1)ソフトは複数の皮膚を内蔵しており、ユーザーは修正できない。
2)公式は皮膚のダウンロードを提供して、ユーザーはダウンロードの皮膚を使います。
3)公式は皮膚の製作ツールまたは方法を提供して、ユーザーは皮膚を手作りします。
二、皮膚の定義
ソフトウェアの肌はアイコン、フォント、レイアウト、インタラクティブスタイルなどを含んでいます。肌の色を変えるということは皮膚に含まれている部分またはすべての資源を取り替えることです。
三、皮膚とAPPの分離
1)皮膚文書の包装
デフォルトのフォーマットはappkです。例えばLauncherはデスクトップの皮膚のフォーマットが一つのappkです。
カスタムフォーマットはzipです。例えば、墨跡の天気の皮膚拡張子はmjaで、犬のインプットメソッドの皮膚拡張子はsgaで、それらのファイルフォーマットは実際にはすべてzipです。
四、リソースアクセス
1)appk形式
アプリ間でデータを読み込む条件は、同じ署名があり、Android Manifest.xmlにはAndroid:sharedUserIdと同じ属性値が設定されています。このように二つのアプリが同じプロセスを実行すると、データにアクセスすることができます。
方法は以下の通りです
a)アプリケーションと肌プログラムのAndroid Manifest.xmlに配置されています。
例えば:
android:sharedUserId="com.zj"
b)ファイルとアプリの同じ機能の皮膚ファイル名は一致しています。
例えば、アプリケーションの背景画像のパス:\Skin\res\drawable-hdpi\XXX.png
皮肤のappkの中の背景のピクチャーのファイルのルートもであるべきです:Skin\res\drawable-hdpi\x.png
c)リソースにアクセスする方法
Context context = createPackageContext("com.zj.skin", Context.CONTEXT_IGNORE_SECURITY);
comp.zj.skin対応のConttextを取得し、戻ってきたcontextオブジェクトを通じてcomp.zj.skinのどのリソースにもアクセスできます。
例えば、アプリを使うと、皮膚アプリのbg.pngが得られます。
Drawable drawable = context.getResources().getDrawable(R.drawable.bg);
このようにして画像の参照が得られ、他のxmlリソースファイルの取得方法も同様である。
2)カスタム拡張子のzip形式の肌
ポイント:zipファイルの資源と肌ファイルの保存戦略を読み取る。
ソリューション:起動毎にSDカードの皮膚ファイルを読み込むと、アプリの実行速度に影響を与えます。お肌を設定するインターフェースを提供し、お客様が選択した皮膚ファイルを皮膚の経路に展開してください。このようにメモリをまたいで読み取る必要がなく、速度が速いです。そして毎回zip圧縮袋に行って読み込む必要がないです。SDカードの中のファイルに依存しないでください。たとえ皮膚圧縮パッケージが削除されても影響はありません。
実現方法:
a)ソフトウェアのヘルプまたは公式サイトのヘルプにおいて、ユーザに肌ファイルをSDカード指定のパスにコピーするように促す。
b)ソフトウェアで皮膚設定画面を提供します。メニューまたは設定中にできます。墨跡、捜犬入力法、QQなどを参考にして肌の交換をサポートします。
c)指定された経路の皮膚ファイルをロードし、サムネイルを読み取り、皮膚設定画面に表示し、ユーザが選択した皮膚ファイルを皮膚経路に展開する。
d)APPは皮膚経路下の資源を優先的に読み取る。ない場合は、appkのリソースを使用する。
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。