Android(安卓)项目代码混淆
16lz
2022-04-18
实现Android项目代码混淆三步走战略:
一、修改工程下的project.properties文件如下:
# This file is automatically generated by Android Tools.# Do not modify this file -- YOUR CHANGES WILL BE ERASED!## This file must be checked in Version Control Systems.## To customize properties used by the Ant build system edit# "ant.properties", and override values to adapt the script to your# project structure.## To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt# Project target.target=android-10proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
其中最后一行为自行添加的 混淆脚本路径,具体脚本编写在 proguard-project.txt 脚本文件内进行。
二、修改脚本文件
为什么说事修改呢? 很简单因为Google已经替我们完成了大部分功能,只需按自己需要增加规则就OK,proguard-project.txt 文件如下:
# This is a configuration file for ProGuard.# http://proguard.sourceforge.net/index.html#manual/usage.html-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-verbose# ignorewarnings -ignorewarnings# Optimization is turned off by default. Dex does not like code run# through the ProGuard optimize and preverify steps (and performs some# of these optimizations on its own).-dontoptimize-dontpreverify# Note that if you want to enable optimization, you cannot just# include optimization flags in your own project configuration file;# instead you will need to point to the# "proguard-android-optimize.txt" file instead of this one from your# project.properties file.-keepattributes *Annotation*-keep public class com.google.vending.licensing.ILicensingService-keep public class com.android.vending.licensing.ILicensingService# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native-keepclasseswithmembernames class * { native <methods>;}# keep setters in Views so that animations can still work.# see http://proguard.sourceforge.net/manual/examples.html#beans-keepclassmembers public class * extends android.view.View { void set*(***); *** get*();}# We want to keep methods in Activity that could be used in the XML attribute onClick-keepclassmembers class * extends android.app.Activity { public void *(android.view.View);}# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String);}-keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *;}-keepclassmembers class **.R$* { public static <fields>;}# The support library contains references to newer platform versions.# Don't warn about those in case this app is linking against an older# platform version. We know about them, and they are safe.-dontwarn android.support.**# -keep class android.support.v4.**{*;}-keep class org.phprpc.**{*;}-keep class com.google.gson.**{*;}-keep class com.baidu.**{*;}-keep class com.novell.sasl.client.**{*;}-keep class org.**{*;}-keep class com.hp.hpl.**{*;}-keep class net.sourceforge.**{*;}-keep class pinyindb.**{*;}-keep class demo.**{*;}
相关阅读:
基于微信api Android程序签名+代码混淆http://www.linuxidc.com/Linux/2013-04/83332.htm
Android 混淆打包http://www.linuxidc.com/Linux/2013-01/78738.htm
Android混淆代码bug跟踪http://www.linuxidc.com/Linux/2012-07/66263.htm
Android项目加入混淆器打包失败http://www.linuxidc.com/Linux/2012-05/60018.htm
Android代码混淆,如何过滤掉反射的R文件及第三方包?http://www.linuxidc.com/Linux/2012-04/58953.htm
更多相关文章
- 49 Android(安卓)fragment 自定义适配器adapter
- Android文件操作
- java.lang.NoSuchFieldError: com.banwxf.shoplibrary.R$id.page
- android 文件保存方法 sd卡中或系统
- [Android]关于filed 遍历资源文件的排序问题
- android 文件上传
- android一种较为复杂的布局参考(xml文件)
- android之sax解析xml文件
- NPM 和webpack 的基础使用