Android性能優化彙總
一個字:刪!!刪不了就儘量小
一 常見的優化方式
1.圖片壓縮
圖片:apk裏面的資源圖片 壓縮圖片
svg圖片:一些圖片的描述,犧牲CPU的計算能力的,節省空間。
使用的原則:簡單的圖標。
webp:谷歌現在非常提倡的使用。保存圖片比較小。
VP8派生而來的。webp的無損壓縮比PNG文件小45%左右,即使PNG進過其他的壓縮工具壓縮後,
任然可以減小到PNG的28%。
Facebook在用、騰訊、淘寶。
缺點:加載相比於PNG要慢很多。 但是配置比較高。
工具:http://isparta.github.io/
2 資源動態加載
比如:emoji表情、換膚
動態下載的資源。
一些模塊的插件化動態添加。
3 Lint工具
建議優化的點
1)檢測沒有用的佈局 刪除
2)未使用到的資源 比如 圖片 —刪除
3)建議String.xml有一些沒有用到的字符。
4.極限壓縮
7zZip工具的使用。
5 Proguard 混淆
可以讓apk變小,原因:
1)可以刪除註釋和不用的代碼。
2)將java文件名改成短名a.java,b.java
3)方法名等 CommonUtil.getDisplayMetrix();–》a.a()
二 常規優化之外繼續壓縮—資源文件再壓縮
系統編譯完成apk文件以後:
映射關係:res/drawable/ic_launcher.png ----- > 0x7f020000
再做“混淆”:要實現將res/drawable/ic_launcher.png圖片改成a.png
drawable文件的名字
String文件的名字
layout的名字
比如:R.string.description—>R.string.a
res/drawable/ic_launcher.png圖片改成a.png
還可以更加誇張
res/drawable—>r/d
res/value–>r/v
res/drawable/ic_launcher.png圖片改成r/d/a.png
讀取resources.arsc二進制文件,然後修改某一段一段的字節。
有一段叫做:res/drawable/ic_launcher.png 在自己數組當中的第800位-810位
將這一段第800位-810位替換成改成r/d/a.png 的字節碼。
args參數:
Lsn10SearchView.apk -config config.xml -7zip 7za.exe -out xxx/hehe -mapping xxx/yyy.txt