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

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

在精簡apk之前,首先要了解一下它的結構。


1.結構分析
APK包結構如下:

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

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

assets/
副資源文件夾。

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

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

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

AndroidManifest.xml
應用清單文件,版本號、版本名稱、權限、應用名稱、應用圖標、活動、服務、廣播等配置信息,均在這個文件中。該文件使用Android的二進制XML格式。


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

下面正式開始


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

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

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

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

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

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

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

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

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


另,,,如果有termux

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

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





2. 精簡res/asstes


①刪除asstes里的廣告插件

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

gdt_開頭的文件夾(騰訊)


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

Tinypng的官方網站:http://tinypng.com/

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

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


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

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

正則搜索刪除。

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

等等。。



3. 減小classes.dex大小

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

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

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

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

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

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

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

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

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

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

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

4. 精簡 resources.arsc

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

5.精簡AndroidManifest.xml

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

用activity 舉個例子。


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


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

常見的廣告關鍵詞有

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

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

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

,比如weibo的sdk刪了會導致無法用微博登陸和分享,刪淘寶可能會導致無法調用淘寶,

刪帶有手機型號的可能會導致無法使用手機運營商相關的服務,比如無法使用通知推送,無法調用應用商店更新,等等

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

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


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

及mt官方文檔

還有其它各種文檔參考及個人經驗,,

。。。THE END。。。


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


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

補充:關于為什么不能預覽/播放的文件不要壓縮,

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

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

總結:只能壓縮可以查看的文件


 
 
 
 
 



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

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

    技術支持:微軟等
    主站蜘蛛池模板: 深夜a级毛片免费无码| 亚洲ⅴ国产v天堂a无码二区| 精品欧洲av无码一区二区| 精品人无码一区二区三区| 亚洲熟妇无码久久精品| 永久免费AV无码网站在线观看 | 久久亚洲AV无码西西人体| 精品深夜AV无码一区二区老年| 黑人无码精品又粗又大又长 | 亚洲成?v人片天堂网无码| 久久无码av亚洲精品色午夜| 中文字幕无码乱码人妻系列蜜桃| 精品无码久久久久久久动漫 | 人妻无码人妻有码中文字幕| 人妻无码aⅴ不卡中文字幕| 精品欧洲AV无码一区二区男男| 一本加勒比HEZYO无码人妻| 小SAO货水好多真紧H无码视频| 日韩av无码国产精品| 无码国产精品一区二区免费式直播 | 人妻AV中出无码内射| 国产精品无码专区在线播放| 亚洲av无码一区二区三区四区| 亚洲中文无码av永久| 国产三级无码内射在线看| 无码人妻精品一区二区三区东京热 | AV大片在线无码永久免费| 亚洲AV无码一区东京热久久| 无码日韩精品一区二区三区免费| 伊人久久大香线蕉无码麻豆| 亚洲精品GV天堂无码男同| 精品少妇人妻av无码专区| 亚洲午夜无码久久久久小说| 久久AV高清无码| 国产成人无码a区在线观看视频免费| 久久水蜜桃亚洲av无码精品麻豆 | 国产成人无码AV麻豆| av无码免费一区二区三区| 亚洲国产成人精品无码区在线秒播 | 精品无码国产自产拍在线观看| 精品一区二区三区无码免费视频|