Apk圧縮とダイエット)
2562 ワード
Apk圧縮とダイエット最近私は会社の业务员のために1セットのCRMシステムを开発して、自分の人は使って、ものの内容は多くなくて、できるだけすべてApkをダイエットするのが少し小さくて、何気なくいくつかApkのダイエット方法を见て、ここで记录します.
1.TinyPNG
私のApk debugモードの8 MBぐらい、署名を混同したrelease版の5 MBぐらい、みんなはApkの大きい主な原因が私达のコードではないことを知っていて、结局1つの类は数KBしかなくて、しかし1枚のピクチャーは少なくとも数十KBになって、だから私达のしなければならない第1歩はピクチャーにダイエットして、解像度を下げてユーザーの体験に影响して、これは取ってはいけないので、それでは私达はどのようにしますか?このTinyPNGは、無損圧縮方式を採用しています.具体的には公式サイトを見てもいいですよ->パンダTinyクリックしてリンクを開けてください
2.armable-v 7パッケージのSoファイルを削除する
armable-v 7はグラフィックレンダリングに大きな改良がありますが、圧縮のためにarmableを保持すればよいので、ビジネスに影響はありません.
3.微信AndResGuard資源混同
AndResGuard
はAPKサイズを縮小するのに役立つツールです.彼の原理はJava Proguardに似ていますが、リソースのみです.彼はもともと冗長なリソースパスを短くし、例えばres/drawable/wechat
をr/d/a
に変更します.AndResGuard
はコンパイルプロセスに関与せず、1つのapk(署名の有無にかかわらず、debug版、release版であっても、処理中に元の署名を直接削除することができる)を入力するだけで、リソース混同を実現したapk(プロファイルに署名情報を入力すると、自動的に再署名して整列し、直接公開可能なapkを得ることができる)と、リソースIDに対応するmappingファイルを得ることができる.apply plugin: 'AndResGuard'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.6'
}
}
andResGuard {
// mappingFile = file("./resource_mapping.txt")
mappingFile = null
// v2 ,7zip 。
use7zip = true
useSign = true
// , keep ,
keepRoot = false
whiteList = [
// for your icon
"R.drawable.icon",
// for fabric
"R.string.com.crashlytics.*",
// for google-services
"R.string.google_app_id",
"R.string.gcm_defaultSenderId",
"R.string.default_web_client_id",
"R.string.ga_trackingId",
"R.string.firebase_database_url",
"R.string.google_api_key",
"R.string.google_crash_reporting_api_key"
]
compressFilePattern = [
"*.png",
"*.jpg",
"*.jpeg",
"*.gif",
"resources.arsc"
]
sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.6'
//path = "/usr/local/bin/7za"
}
/**
* : assemble apk
**/
finalApkBackupPath = "${project.rootDir}/final.apk"
/**
* : v1 jar
* “SHA1”
**/
digestalg = "SHA256"
}
しかし、この手にも悪いところがあり、V 2署名で梱包することはできません.
もちろんそれ以外にも、無駄なライブラリを取り除き、より小さなライブラリを使って痩せることもできますので、ここに記録しておきましょう.