1. 程式人生 > >Apk瘦身、混淆、加固

Apk瘦身、混淆、加固

一、 apk的組成元素: resources.arsc:編譯後的佈局檔案 assets:目錄存放一些配置檔案 lib:下的子目錄armeabi存放一些so檔案或者jar包 META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統的安全 res:apk圖片資源 AndroidManifest.xml:清單檔案 classes.dex:是java原始碼編譯後生成的java位元組碼檔案 二、瘦身方案:修改都在Module的builder.gradle檔案裡進行 1.開啟minifyEnabled,具體看混淆的proguard-rules.pro檔案配置 團隊開發的時候每個人在引用第三方資源的時候就應該把自己的混淆設定好,要不然別人很難幫你混淆。 2.開啟shrinkResources(去除無用資源)
    buildTypes {         release {             minifyEnabledtrue     shrinkResources true             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         } 提示:記著去除工程中臨時展示的圖片,也可以減小APK的體積 3.刪除無用的語言資源     defaultConfig { ..... resConfigs "zh" } 4.使用tiypng有失真壓縮(官方網站:https://tinypng.com/或者騰訊的智圖:https://zhitu.isux.us/)
>* TinyPNG使用一種智慧有失真壓縮技術(通過降低圖片中的顏色數量,來減少儲存圖片所需的資料)來降低PNG圖片的大小 這樣的壓縮對圖片的效果影響是很小的,但是可以大大降低圖片的大小,並且還能保持PNJ的alpha透明度
>*因為TinyPNG將PNG圖片壓縮成8位的PNG(而不是24位),所以它的壓縮比例非常高,至少都是50%以上的壓縮比例,有些甚至可以達到70%,並且壓縮之後的圖片和原圖人眼看不出來 可以使用 Zopfli 演算法壓縮 png 圖片。它們看起來是一樣的(無損),而且一樣快。 如果你不想要壓縮,你可以使用 WebP。它比 Jpeg 小 30%,在安卓 4.0 以上的系統中支援非透明的 PNG 圖片,在 4.2.1 以上的系統中支援帶透明度的無損圖片。
5.把圖片PNG轉換為JPG(軟體:格式工廠) 原因:PNG包含了圖片一些和顯示效果無關的資訊,轉換為JPG,體積也會變小,且轉換之後的圖片和原圖人眼看不出來 如果圖片中沒有透明度的要求,可以將png圖片轉換為jpg圖片.但如果png進行過有失真壓縮可能會讓轉換後的圖片檔案變大. 6.webp僅僅安卓裡面支援 ////////////////////////////////////////一下的方法,可以減小几K,不像上面的方法,消除的體積大,所以不常用//////////////////////////////// 7.使用shape(android新特性裡的屬性:Vector)檔案替換簡單圖片 8.刪除或者替換相容包(V4,V7,V13)中無用的一些圖片 刪除drawable-ldret:是layout-direction-right-to-left的縮寫,意味著佈局方式從右到左,主要是為了適配阿拉伯語.這是API17,android4.2新功能 drawable-ldrtl-xxxhdpi-v4 drawable-ldrtl-xxhdpi-v4 drawable-ldrtl-xhdpi-v4 drawable-ldrtl-hdpi-v4 drawable-ldrtl-mdpi-v4 替換v4,v7,v13中無用圖片資源_可選方式 可以使用1*1畫素圖片,替換V4,V7,V13中的一些圖片資源 9.專案使用到的第三方控制元件,okhttp,Rxjava(RxAndroid),EvnetBus,Fresco,有時你的專案裡會用到這個框架其中的一部分.可以找到自己用這個開源框架對應功能的類,把這個類拷貝到自己的專案裡面,取消對該框架依賴,從而減少了APK的提交. 三、apk加固實際就是混淆. 作用: 1.使別人不能輕易的反編譯程式碼. 2.被別人植入程式碼(惡意的指令碼,廣告),進行二次打包 3.動態修改記憶體/動態的注入->支付(修改支付賬戶)

相關推薦

Apk混淆加固

一、 apk的組成元素: resources.arsc:編譯後的佈局檔案 assets:目錄存放一些配置檔案 lib:下的子目錄armeabi存放一些so檔案或者jar包 META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統的安全 res:apk

Android 效能優化之記憶體檢測卡頓優化耗電優化APK

導語 自2008年智慧時代開始,Android作業系統一路高歌,10年智慧機發展之路,如今 Android 9.0 代號P  都發布了,Android系統性能已經非常流暢了。但是,到了各大廠商手裡,改原始碼自定系統,使得Android原生系統變得魚龍混雜。另外,到了不同層次的

Android apk 簽名及程式碼混淆資原始檔混淆加固整套流程

準備:*.ks  proguard-android.txt', 'proguard-rules.pro(取一) 上述是簽名檔案及混淆檔案 通過AS進行混淆簽名打包apk 將該apk進行解壓可看出只是程式碼進行了混淆但是資原始檔沒有進行混淆 下面進行資原始檔進行混淆,也是通

app打包混淆加固和多渠道打包

1:打包步驟: 1:桌面建立一個資料夾,名字叫keystore 2:點選build下面的 ,如下: 3:會出現如下介面: 4:下一步: 5:如果有keystore,請點選 choose existing,選擇以前的keystore,

安卓APK

android post 安卓 ons blog view git 用法 strong 之前打包的時候直接就用eclipse或者android studio直接生成簽名文件,並沒有關心大小問題,近期有人問我有沒有對APK進行瘦身。對這方面內容一致沒有關註過,今天試用了

android APK全面總結——如何從32.6M到13.6M

前言 之前我簡單介紹了關於svg圖片瘦身的問題,在公司,瘦身這個問題是我提出來的,所以這鍋我背了。公司專案是32.6M,我給自己的要求就是低於20M。上週花了一個星期瘦身,至於為什麼花了一週,主要是svg適配問題我被搞矇蔽了。然後發現還要改大量程式碼,想想也就算了,又換了另一種瘦身方法。 很多人是因

APK優化,減小apk的大小

首先通過Android Studio自帶的工具分析我們的apk 這樣我們就可以很清楚地看到我們的apk中最大一部分是誰,點選對應項就可以檢視它的具體內容,如下圖 這裡我們可以詳細的看到apk中用到的所有的相關庫,可以根據自己的實際情況進行刪減,比如:我在壓縮

apk以及啟動速度優化

一、apk瘦身 1、minifyEnabled true,可以幫助移除那些在程式中使用不到的程式碼。 如下圖: 2、shrinkResources true移除那些在程式中使用不到的資源,幫助減少APP的安裝包大小。   二、apk啟動速度優化: 在app

android apk

頭條APK瘦身之路 隨著版本迭代,功能增加安裝包體積也會慢慢增大。 今日頭條576版本APK達到了25M,通過一系列的優化,到目前的607版本為12M。本文主要是介紹頭條APK瘦身中用到的一些方法。 APK分析 既然是要優化APK的大小,那首先就得看下APK檔案的構成。 Android

關於HTMLjs加密混淆原始碼保護程式碼安全,防止解壓直接看原始碼

關於HTML、js加密、混淆、原始碼保護、程式碼安全,防止解壓直接看原始碼 我們先理下需求,加密的目的是什麼?加密到什麼級別?為此我們可以犧牲什麼? 我們知道這個世界不存在絕對的安全,加密會被破解、混淆會被反混淆。 技術小白、開發者、黑客,是完全不同的級別,防範不同級別的人策略都不一樣。

Android效能優化之apk技巧

隨著專案迭代,新功能的增加。回導致apk越大。那麼在下載安裝過程中。使用者耗費的流量越多。 安裝等待的時間也會越長。這就意味著下載轉化率會越低。那麼如何apk瘦身呢? 理解APK結構 在討論怎麼減小Apk體積之前,理解一個應用的APK結構是非常有幫助的。一個ap

2M-APK實測可行又便捷的方法 (應用上架 陣前磨槍)

新專案上線,新應用原始apk大小在6.9M左右,然後公司和第三方運營公司合作,加入其提供的第三方SDK,瞬間apk體積增大3M;接著為了應用上線後的安全性,對應用進行了加固處理,套了一層殼之後,應用又增大了1.7M,最後上線之前包的體積已經超過10M,計算器這一工具類的應用包

Android 安裝包大小優化(Apk

目錄 1. 為什麼? APK越大,在下載安裝過程中,耗費的流量會越多,安裝等待的時間也會越長,安裝包的大小對下載的失敗率也有影響。而對於應用本身,就意味著下載轉化率會越低,在競品中,使用者更願意選擇功能多,體驗號,安裝包最小的應用。

APK套路-專案優化篇

1.專案結構瘦身套路 套路一:引入庫的優化 去掉無用的庫        專案中如果apk支援的最低版本是API14,而程式碼中沒有用到高於api14的api就可以考慮去掉整個android supp

Android效能調優;如何讓你的APK88%

隨著業務複雜度的逐漸增加,程式碼、資源也在不斷的增加,此時你的APP大小也在增加。從使用者層面來說,面對動輒幾十兆的APP來說在非WIFI情況下還是會猶豫要不要下載,不下載你就可能因此失去了一個使用者。從公司層面來講,流量就是錢,減少APP的大小就顯得尤為重要。從開發者層面上來講,你掌握了這個手藝也

Android APK/減小包體

隨著應用的長久迭代,各種功能模組的加入,APK包體越來越大,減小包體是必要的。 所以,從最簡單的來。 1.刪除無用資源 應用迭代就了,功能增刪,總會有無用資源殘留,所以,定期刪除無用資源是

SoCompressor-JS與CSS本地批量壓縮混淆美化格式化GUI工具.

前一段時間在寫web時自己寫了幾個JS檔案用於前後臺展示與互動,在後來要壓縮js時發現基本都是帶命令列的壓縮工具,而且不能批量處理,線上壓縮壓縮完畢之後得一個個下,最可悲的是還需要自己重新命名檔案並且選擇下載位置,太麻煩了。後來再網上搜了一下,發現這類GUI工具確定比較少,

Android APK 實踐(減小apk的大小)

因為推廣的需要,公司需要把APK的大小再“減小”一下,4M以內! 當達到4M以內之後,公司建議說,能否再壓壓?2M如何? 瘦身前 因為平時就考慮到大小的限制,所以很多工作已經做過了,如下列舉現在的狀態: 7.3M(Debug版本)和6.5M(Release版本)

[Android 之美] 那些你不知道的APK ,讓你的APK更小

[Android 之美] APK 瘦身,減少APK的大小 讓我們的apk檔案儘可能更小,移除那些未使用的程式碼和資原始檔。本章節介紹瞭如何做到讓APK更小,效能更好,下載轉化率會更高,以及如何指定在構建APK過程中保留或移除專案中的程式碼和資源,在我們還

APK——更全面的方案

前陣子做了一次減包體的工作,過後覺得這項工作還是套路性挺強的,於是綜合當時的經驗以及廣泛瀏覽了網上的各種大牛小牛的部落格,實踐後特總結了以下的一些思路和做法,不求內容最豐富,只求方案更全面。 APK瘦身的目的 瘦身的目的最明顯的一個就是:提高下載轉化率。