Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android編程入門 >> 關於Android Studio打包混淆以及上傳mapping文件

關於Android Studio打包混淆以及上傳mapping文件

編輯:Android編程入門

關於android Studio打包混淆以及上傳mapping文件

打包

android studio的打包很簡單 

然後如果已經有keystore的一路next下去,如果沒有的可能需要先創建keystore,最後我們就會得到一個apk文件

混淆

現在網上關於反編譯的博客很多了,我在此就不多做介紹了,放上個傳送門傳送門

那麼我們已經知道了反編譯是如此的簡單,我們總不希望自己辛苦寫的代碼被如此輕易的反編譯走,而且這樣有可能對公司的服務器留下被攻擊的隱患,那麼我們就可以使用混淆來保護我們所寫的代碼 
Android studio混淆和Eclipse差不多是大同小異的。 

名稱作用 minifyEnabled 是否開啟混淆 shrinkResources 去除無用的resource文件 proguardFiles getDefaultProguardFile 加載混淆配置文件

如果按照默認的混淆規則很有可能你的程序會報錯,因為混淆了一些方法所以程序運行期間無法找到該方法。所以我們應該自定義一些規則在proguard-rules.pro中

以下模板信息來源於網上

指定代碼的壓縮級別 
-optimizationpasses 5 
包明不混合大小寫 
-dontusemixedcaseclassnames 
不去忽略非公共的庫類 
-dontskipnonpubliclibraryclasses 
優化 不優化輸入的類文件 
-dontoptimize 
預校驗 
-dontpreverify 
混淆時是否記錄日志 
-verbose 
混淆時所采用的算法 
-optimizations !code/simplification/arithmetic,!field/,!class/merging/ 
保護注解 
-keepattributes Annotation 
保持哪些類不被混淆 
-keep public class * extends android.app.Fragment 
-keep public class * extends android.app.Activity 
-keep public class * extends android.app.Application 
-keep public class * extends android.app.Service 
-keep public class * extends android.content.BroadcastReceiver 
-keep public class * extends android.content.ContentProvider 
-keep public class * extends android.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 
如果有引用v4包可以添加下面這行 
-keep public class * extends android.support.v4.app.Fragment 
忽略警告 
-ignorewarning 
記錄生成的日志數據,gradle build時在本項目根目錄輸出 
apk 包內所有 class 的內部結構 
-dump class_files.txt 
未混淆的類和成員 
-printseeds seeds.txt 
列出從 apk 中刪除的代碼 
-printusage unused.txt 
混淆前後的映射 
-printmapping mapping.txt


mapping文件

mapping.txt 
列出了原始的類,方法和字段名與混淆後代碼間的映射。這個文件很重要,當你從release版本中收到一個bug報告時,可以用它來翻譯被混淆的代碼。

mapping目錄在 \app\build\outputs\mapping\release


測試


OK,Bye

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved