錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
Apk精簡優(yōu)化詳細(xì)教程【適合小白】

作者: 佚名  日期:2023-07-21 14:41:55   來源: 本站整理

在精簡apk之前,首先要了解一下它的結(jié)構(gòu)。


1.結(jié)構(gòu)分析
APK包結(jié)構(gòu)如下:

lib/
so庫存放位置。
so庫文件分為不同的CPU架構(gòu),像armeabi,armeabi-v7a, arm64-v8a,x86,x86_64,和mips。大多數(shù)情況下我們可以只用一種armeabi-v7a,后面會講到原因。

res/
資源文件夾,包含著圖片、布局、菜單等文件,resources.arsc 中索引的文件均存放在該目錄中(進行過資源混淆的除外)。

assets/
副資源文件夾。

META-INF/
包含CERT.SF和 CERT.RSA簽名文件以及MANIFEST.MF 清單文件。

resources.arsc
資源配置文件,包含著字符串、主題、圖片文件索引、布局文件索引等信息

classes.dex
包含以Dalvik / ART虛擬機可理解的DEX文件格式編譯的類。

AndroidManifest.xml
應(yīng)用清單文件,版本號、版本名稱、權(quán)限、應(yīng)用名稱、應(yīng)用圖標(biāo)、活動、服務(wù)、廣播等配置信息,均在這個文件中。該文件使用Android的二進制XML格式。


在這些文件中,除了META-INF/其它都是本文的精簡對象

下面正式開始


1. 對lib目錄下的文件進行瘦身處理

如果我直接告訴你只留下 armeabiv-v7a 文件夾就行是很不負(fù)責(zé)任的

如果你感興趣,可以往下看

參考一下
armeabiv-v7a: 第7代及以上的 ARM 處理器。2011年15月以后的生產(chǎn)的大部分Android設(shè)備都使用它。
arm64-v8a: 第8代、64位ARM處理器,很少設(shè)備,三星 Galaxy S6是其中之一。
armeabi: 第5代、第6代的ARM處理器,早期的手機用的比較多。
x86: 平板、模擬器用得比較多。
x86_64: 64位的平板。  

armeabi-v7主要不支持ARMv5(1998年誕生)和ARMv6(2001年誕生).目前這兩款處理器的手機設(shè)備占比太少。

而許多基于 x86 的設(shè)備也可運行 armeabi-v7a 和 armeabi NDK 二進制文件。對于這些設(shè)備,主要 ABI 將是 x86,輔助 ABI 是 armeabi-v7a。

最后總結(jié)一點:如果適配版本高于4.1版本,可以只留下armeabiv-v7a,當(dāng)然,如果armeabi-v7a不是設(shè)備主要ABI,那么會在性能上造成一定的影響。

so,,,,只留 armeabiv-v7a,,沒錯的undefined

(至于能省下多大空間,因應(yīng)用而定)


另,,,如果有termux

    • uname -m
[color=rgb(51, 102, 153) !important]復(fù)制代碼
可以查看你手機的cpu框架類型

當(dāng)然還有進階玩法--精簡so文件,,只保留有用的核心代碼,,但是,我不會undefined





2. 精簡res/asstes


①刪除asstes里的廣告插件

主要有bdx開頭的壓縮包(百度)

gdt_開頭的文件夾(騰訊)


②使用圖片壓縮工具對圖片進行壓縮。
(注:在壓縮前要先看一下,不能預(yù)覽的不要動)
例:
使用tinypng有損壓縮
TinyPNG工具只支持上傳PNG圖片到官網(wǎng)上壓縮,然后下載保存,在保持alpha通道的情況下對PNG的壓縮可以達到1/3之內(nèi),而且用肉眼基本上分辨不出壓縮的損失.

Tinypng的官方網(wǎng)站:http://tinypng.com/

注意:圖片在打包時已經(jīng)進行過無損壓縮了,,故進行無損壓縮是沒有任何效果的。

③使用音頻壓縮工具對音頻進行壓縮。
(注:在壓縮前要先看一下,不能播放的不要動)


④還可以刪除abc_開頭的圖片文件,,
(這種一般都是自動生成的,開發(fā)者也不會調(diào)用)

  • abc_*.png
[color=rgb(51, 102, 153) !important]復(fù)制代碼

正則搜索刪除。

另:如果有能力,可以嘗試把非透明 png 格式大圖片轉(zhuǎn)換為 jpg 格式,效果顯著!

等等。。



3. 減小classes.dex大小

脫殼的就刪無用類,,比如某數(shù)字刪stub和jg

(mt新版可以一鍵去除調(diào)試信息,下面留作紀(jì)念)
 
(感謝@快樂小牛的提醒~來自545樓)
,,,,,,,,,,,,,,,,,,,,,
刪掉dex里的.line x和.prologue也是個不錯的方法,聽說proguard工具可以一鍵,,但我不會

留下我的方法
①全dex代碼搜
  • .prologue
[color=rgb(51, 102, 153) !important]復(fù)制代碼
,全部替換即可(替換什么都不要填,強迫癥可以填個空格)

②然后就是.line ,這個比較麻煩,因為有一到幾千,,所以用正則匹配

  • \.line .+
[color=rgb(51, 102, 153) !important]復(fù)制代碼

全dex搜索代碼,,記得勾正則

雖然意義不大,但也有一定的效果,,而且可以增加dex對比的難度

4月1日補充:有人反應(yīng)不能保存 (報錯) 的問題,猜測是工作量太大導(dǎo)致mt編譯出錯,,關(guān)閉彈窗,然后再保存一遍就好啦。(詳見43頁)

如果還是不能解決,就別搞了。。編譯的太多,手機帶不動。。。  強迫癥可以一個dex一個dex刪
,,,,,,,,,,,,,,,,,,,

高級一點的就是剝離廣告sdk,由于我不會,就不多說了。undefined

還有就是用工具,比如proguard,,自行百度

4. 精簡 resources.arsc

我有點懶,不多說了,
官方文檔有詳細(xì)教程
路徑:逆向功能 - 簡單實戰(zhàn) - 漢化應(yīng)用 - 精簡語言包
另附(特別感謝@小狗巧巧):
[答疑解惑]為什么arsc越精簡越大?

5.精簡AndroidManifest.xml

這個我真的不會說,刪掉無用activity 廣播  service啥的就可。

用activity 舉個例子。


  • <activity開頭............xxxx........../>或者</activity>結(jié)尾
[color=rgb(51, 102, 153) !important]復(fù)制代碼


這個是通用的,,建議去設(shè)置里開啟 顯示空白符,一般都是刪八個點開頭,八個點結(jié)束的一段。

常見的廣告關(guān)鍵詞有

  •  
  • qq.e(騰訊)
  • ads.(通用)
  • .ad.(大部分是應(yīng)用內(nèi)置)
  • .mobad.(百度)
  • .mobads.(百度)
  • .bytedance.(穿山甲,今日頭條旗下)
  • .ss.(穿山甲,和上一個在一塊)
  • (如果軟件有其它功能和今日頭條合作)
  • (刪 錯 會導(dǎo)致閃退)
  • (建議備份后再刪除測試)
  •  
  • .bytedance.sdk.openadsdk.
  • (已確定是穿山甲廣告)
  •  
  • sdk(帶有huawei,xiaomi,meizu,vivo , push等 字樣的刪)
  •  
  • 還有 taobao, liulishuo, weibo 這些等等,自行判斷
  •  
  •  
  • push.(通知推送)
  •  
[color=rgb(51, 102, 153) !important]復(fù)制代碼

注:push請根據(jù)實際情況刪除,,一般破解軟件通知推送什么的根本不需要。

(4月26號補充:對不起諸位,我沒有說清楚,,把自己的習(xí)慣帶了進去,其實SDK有講究的

,比如weibo的sdk刪了會導(dǎo)致無法用微博登陸和分享,刪淘寶可能會導(dǎo)致無法調(diào)用淘寶,

刪帶有手機型號的可能會導(dǎo)致無法使用手機運營商相關(guān)的服務(wù),比如無法使用通知推送,無法調(diào)用應(yīng)用商店更新,等等

再比如刪alipay可能導(dǎo)致無法調(diào)用支付寶支付,,這些請自行判斷)

(因為我平時是不在乎的,通知推送什么的,沒有才好。微博本人也不用。。所以沒有注明,抱歉,現(xiàn)在補上)


再次聲明
本文大部分節(jié)選自CSDN的這篇
https://blog.csdn.net/AndroidAlvin/article/details/103159561

及mt官方文檔

還有其它各種文檔參考及個人經(jīng)驗,,

。。。THE END。。。


@MiBStudio 來看看啊undefined
(現(xiàn)在叫小狗巧巧undefined)


補幾張圖,順序亂了,湊合看吧undefined

補充:關(guān)于為什么不能預(yù)覽/播放的文件不要壓縮,

舉個例子,吃雞游戲的安裝包里有一個圖片文件,1g多的地圖,當(dāng)然不能壓縮。

人臉識別的配置文件就是mp3格式,也不可壓縮

總結(jié):只能壓縮可以查看的文件


 
 
 
 
 



熱門文章
  • 一個懶人的破解方式
  • Apk精簡優(yōu)化詳細(xì)教程【適合小白】
  • 顯卡PCIE4.0和3.0區(qū)別是什么,顯卡性...
  • 筆記本摔后黑屏挽救實錄!
  • 筆記本的工作原理及維修
  • 筆記本液晶屏常見問題集錦
  • 如何保護筆記本屏幕?
  • 筆記本開機出現(xiàn)perating system no...
  • 筆記本加內(nèi)存條后可用內(nèi)存沒增加的...
  • 怎么關(guān)閉愛奇藝HCDN功能?解決方法...
  • 噴墨打印機清零方法圖文教程
  • Mac系統(tǒng)怎么共享windows打印機/本地...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 午夜福利无码一区二区| 亚洲va无码va在线va天堂| 亚洲成av人片不卡无码| 午夜无码性爽快影院6080| 中文字幕丰满乱子无码视频| 97久久精品亚洲中文字幕无码| 国产精品无码aⅴ嫩草| 小SAO货水好多真紧H无码视频| 亚洲AV成人无码网站| 亚洲桃色AV无码| 在线看片无码永久免费视频 | 亚洲伊人成无码综合网| 一本加勒比hezyo无码专区| 免费a级毛片无码a∨蜜芽试看| 国产精品无码a∨精品| 日韩A无码AV一区二区三区| 亚洲国产精品无码第一区二区三区 | 久久久久久人妻无码| 中文字幕无码视频专区| 永久免费av无码网站大全| 中文字幕无码成人免费视频| 亚洲av无码一区二区三区乱子伦| 国产成人亚洲精品无码AV大片| 亚洲精品天堂无码中文字幕| 久久精品亚洲AV久久久无码| 亚洲av中文无码乱人伦在线r▽ | 亚洲综合久久精品无码色欲| 久久精品无码一区二区三区| 成人午夜精品无码区久久| 国产a v无码专区亚洲av| 无码国产成人午夜电影在线观看| 亚洲爆乳AAA无码专区| 性饥渴少妇AV无码毛片| 无码高潮爽到爆的喷水视频app| 亚洲国产成人精品无码区在线秒播 | 人妻无码aⅴ不卡中文字幕| 黄色成人网站免费无码av| 国产午夜av无码无片久久96| 亚洲国产精品无码第一区二区三区 | 免费无码又爽又刺激网站| 亚洲级αV无码毛片久久精品|