錦州市廣廈電腦維修|上門維修電腦|上門做系統|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爰片毛片AV片| 国产在线无码精品电影网| 中文字幕在线无码一区| 中文字幕av无码一二三区电影 | 色综合久久无码五十路人妻| 日本精品无码一区二区三区久久久 | 亚洲av无码成人精品区| 亚洲成A∨人片在线观看无码| 国产精品亚洲专区无码不卡| 久久ZYZ资源站无码中文动漫| 久久久久亚洲精品无码网址| 中文字幕乱偷无码av先锋蜜桃| 国产精品无码a∨精品| 亚洲精品无码专区2| 加勒比无码一区二区三区| 亚洲av极品无码专区在线观看| 中文字字幕在线中文无码 | 日韩精品中文字幕无码专区| 人妻中文字幕无码专区| 小13箩利洗澡无码视频网站| 变态SM天堂无码专区| 人妻无码中文字幕免费视频蜜桃| 亚洲av永久中文无码精品综合| 熟妇人妻AV无码一区二区三区| 一本加勒比HEZYO无码人妻| 人妻中文无码久热丝袜| 亚洲人成影院在线无码观看| WWW久久无码天堂MV| 蕾丝av无码专区在线观看| 日韩人妻系列无码专区| 国产精品亚洲一区二区无码| 久久亚洲精品无码av| 日韩AV无码不卡网站| 人妻无码一区二区视频| 在线精品自拍无码| 国产三级无码内射在线看| 熟妇人妻AV无码一区二区三区| 亚洲AV无码久久久久网站蜜桃 | 久久久久久国产精品无码超碰| 久久久久无码精品亚洲日韩|