Android Studio實現程式碼混淆
1,在build.grandle新增,其中規則寫在proguard-rules.pro中,也可以自定義一個檔案,將其代替,比如eclipse常用的 proguard-project.txt
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
2,在proguard-rules.pro中加入以下程式碼,基本可以涵蓋所有
-optimizationpasses 5 # 指定程式碼的壓縮級別
-dontusemixedcaseclassnames # 是否使用大小寫混合
-dontpreverify # 混淆時是否做預校驗
-verbose # 混淆時是否記錄日誌
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆時所採用的演算法
-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 # 保持哪些類不被混淆
-keepclasseswithmembernames class * { # 保持 native 方法不被混淆
native <methods>;
}
-keepclasseswithmembers class * { # 保持自定義控制元件類不被混淆
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {# 保持自定義控制元件類不被混淆
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity { # 保持自定義控制元件類不被混淆
public void *(android.view.View);
}
-keepclassmembers enum * { # 保持列舉 enum 類不被混淆
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆
public static final android.os.Parcelable$Creator *;
}
3,通過 Android Studio進行 混淆程式碼時,預設已經將 lib目錄中的 jar 都已經新增到打包指令碼中,所以不需要再次手動新增,否則會出現“ java.io.IOException: The same input jar is specified twice” 錯誤。
相關文章
- Android程式碼混淆&元件化混淆方案Android元件化
- android 混淆規則作用,Android程式碼混淆詳解Android
- Android 程式碼混淆規則Android
- 程式碼安全之程式碼混淆及加固(Android)?Android
- Flutter 程式碼混淆 混淆Dart程式碼FlutterDart
- 【程式碼混淆】react-native 程式碼混淆React
- 自定義Android Studio程式碼模板Android
- android studio 除錯 framework 層程式碼Android除錯Framework
- Android Studio程式碼除錯技巧篇Android除錯
- 使用 yakpro-po 實現 Laravel 專案程式碼混淆加密Laravel加密
- Android Studio 呼叫Camera實現拍照功能Android
- js程式碼混淆JS
- Android Studio 藍芽 示例程式碼(轉)Android藍芽
- ios加固,ios程式碼混淆,ios程式碼混淆工具, iOS原始碼混淆使用說明詳解iOS原始碼
- Python程式碼混淆工具,Python原始碼保密、加密、混淆Python原始碼加密
- Android混淆Android
- 直播帶貨原始碼,Android Studio實現電商引導頁原始碼Android
- HTML程式碼混淆技術:原理、應用和實現方法詳解HTML
- 手機直播原始碼,Android studio 實現簡單的視訊播放原始碼Android
- 程式碼混淆工具ipaguard:如何使用ipaguard保護和混淆iOS應用程式程式碼iOS
- iOS 初探程式碼混淆(OC)iOS
- Python 程式碼混淆工具概述Python
- powershell程式碼混淆繞過
- 使用proguard混淆springboot程式碼Spring Boot
- 前端程式碼安全與混淆前端
- 鴻蒙程式碼配置混淆鴻蒙
- SpringBoot程式碼混淆與反混淆加密工具詳解Spring Boot加密
- 程式碼混淆與反混淆學習-第二彈
- Android Studio匯入原始碼Android原始碼
- Android Apk反編譯系列教程(三)Android Studio除錯smali程式碼AndroidAPK編譯除錯
- 深度解析Android APP加固中的必備手段——程式碼混淆技術AndroidAPP
- Fairplay DRM與混淆實現AI
- 直播系統app原始碼,Android studio 實現app登入註冊頁面APP原始碼Android
- Android Studio向專案新增C/C++原生程式碼AndroidC++
- ios-class-guard - iOS程式碼混淆與加固實踐iOS
- Spring Boot使用Allatori程式碼混淆Spring Boot
- iOS應用加固--程式碼混淆iOS
- Python 的控制流程式碼混淆Python
- python程式碼混淆與編譯Python編譯