序文
アンドロイドアンドロイドAPKサイズの最適化におけるパフォーマンスの最適化のために主にこの記事
速度が非常に速く、だけでなく、ユーザートラフィックの多くあったが、私たちのAndroid APKファイルの最適化のために行われているが、すべてでは、まだ非常に必要であるユーザーエクスペリエンスのサイズのメガバイト数十非常に悪い回し、ここでは整理するために来ますAndroidのAPKの最適化について
使用をSVG、アイコンアイコン
私たちの解像度のファイルは、アイコンの複数のセットを配置する必要があるかもしれないので、それが私たちのAPKファイルのサイズが非常になったようになります。この方法は我々のアプリで多くのアイコンとなり、そしてアーティストは、一般的に小さなjiejieのセットです大きいので、プロセスを最適化するための最初のステップは、アイコンから起動します。
- SVGファイルのアイコンの代わりに、PNGファイルを使用してみてください
まず、SVGファイルはXMLファイルは途中、小さなフットプリントで存在しており、自動的に拡張デバイスの画面に応じて歪むことはできません。
アンドロイド自体が直輸入SVGファイルをサポートしていないので、次のように、我々は場合SVGファイルを変更する必要があります。
次のように使用します。
<ImageView
android:layout_marginTop="100dp"
android:layout_gravity="center_horizontal"
android:layout_centerInParent="true"
android:src="@drawable/ic_icon_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
或者
<ImageView
android:layout_marginTop="100dp"
android:layout_gravity="center_horizontal"
android:layout_centerInParent="true"
app:srcCompat="@drawable/ic_icon_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
二、色合いシェーダを使用して、アイコンの状態部門
色合いシェーダは、さもなければ、異なる色の複数の同一画像の場合に必要な、異なる表示色画像の色合いを使用して、カラー画像を可能にし、APKの量を低減することができます
次のようにUIの効果は次のとおりです。
これは、同じ画像の効果は異なる、注
次のように使用します。
加上一行代码 android:tint="@color/colorAccent"
<ImageView
android:layout_marginTop="100dp"
android:layout_gravity="center_horizontal"
android:layout_centerInParent="true"
android:src="@drawable/ic_icon_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tint="@color/colorAccent"
/>
第三に、異なるサイズのアイコンセットを必要に応じて、使用してSVG
Androidのスタジオ独自の機能は、必要なサイズのアイコン、パッケージの対応する次元画像をpngのときに自動的に生成した自己設定することができます。
次のように使用してください:
のdefaultConfigタグbuild.graldleアプリの下で:
defaultConfig {
applicationId "com.example.apk"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
//minSdkVersion 19 (5.0)
vectorDrawables.generatedDensities('xhdpi','xxhdpi','xxxhdpi')
//minSdkVersion > 19
// vectorDrawables.useSupportLibrary = true
}
この時点で、描画可能なファイルは、次のように:
次のようにパッケージした後です。
その後、APPの唯一のマップは、問題によって引き起こされるマップのapk体積増加の複数のセットを解決することができる必要があります
第四に、アプリの大きな画像圧縮で、画像形式のWEBP
画像フォーマットの画像読み込み速度の開発を加速するために設計されたGoogleのをフォーマットWEBP。JPEG画像圧縮量はわずか約2/3であり、サーバのリソースやデータブロードバンド多くのスペースを節約することができます。
次のように使用します。
変換前と後の比較
未使用のリソースを削除するV.
- キーが削除される(推奨されません)
動的なリソースIDを使用するが表示された場合の質問にロードされますが、あなたが削除したら、それは物理的に削除され、未使用のリソースを削除するための鍵が持ち帰ったされますので、使用しないようにしようとすることはできません、ファイルRES事前にバックアップを使用する必要があります。
以下を使用
- 最適化// Zipalignで、shrinkResourcesが削除される使用
使用shrinkResourcesは、最初のコードの難読化をオンにする必要がありますminifyEnabled
次のように使用します。
buildTypes {
release {
//开启代码混淆
minifyEnabled true
//Zipalign优化
zipAlignEnabled true
//移除无用的resource文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
次のような効果をパックした後です。
そこに絵。しかし、図2(b)になる400以上kの大きさが、
シックス・リソースパックセット
このようAPPCOMPAT-V7ライブラリの導入などのサードパーティのライブラリの導入は、国際的なリソースを大量に含まれているので、彼らのビジネスに応じた適切な保存と削除を行うことができます
オリジナルのパッケージ次のように:
そこ国語の元のパッケージがあるので、我々は、一般的に唯一の中国を維持する必要があることができ、次のような構成は次のとおりです。
defaultConfig {
applicationId "com.zthx.xianglian"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
//只保留指定和默认的资源
resConfigs('zh-rCN','ko')
}
以下のように設定した後です。
七の動的ライブラリパッケージの構成
プロジェクトは、サードパーティのSDKまたは直接NDKを使用してが含まれている場合は、自動的にAPKに、動的ライブラリパックの完全なCPUアーキテクチャを構成していない場合、および実際のマシンのために、ちょうどそれにarmeabiまたはarmeabi-v7aを維持する必要があるので、それができますコンフィギュレーションで
//配置so库架构(真机: arm ,模拟器 x86 )
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
八、オープン圧縮コードの難読化
buildTypes {
release {
//源代码混淆开启
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
コードの難読化の設定については、理解していない、と言うことではないよりあった彼らを見つけるためにオンラインで行くことができる独自の
あなたはその後、少なくとも半分に減らし、あなたのAPK視覚的なボリュームダウンこの8つのプロセスは、この素晴らしい最適化をしようと急いで、任意の最適化のAPKを行っていない場合はこれまでのところ、8つのAPK究極の最適化ステップは、以上であること
エンディング
わかりましたので、ここで終わりにするの記事は、あなたが良い感じている場合賞賛の聖歌を与えますか?あなたが改善することが必要と思われる場合は、私にメッセージをお願いします。深刻なお問い合わせ、補正不足になります。ありがとうございます。
私はあなたのサポートに感謝する、乾貨物の技術を更新しますあなたがこれを読んで、自分の将来を共有することを楽しみにしていますことを願って!
+ +転送親指の注目は、最初の時間は、最新の知識ポイントを取得します
道路のAndroidの建築家は長い間、それでお互いを奨励されます!
最後に、私は〜あなたにすべての幸せな生活をしたいです