Android项目在Eclipse下的混淆
来源:互联网 发布:亿世界系统源码 编辑:程序博客网 时间:2024/05/29 09:32
Android项目在Eclipse下的混淆步骤
- 首先将项目下的project.properties中的#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt注释打开
- 然后在项目下的proguard-project.txt文件中进行修改
- 修改完成之后利用Eclipse自带的打包工具进行签名打包即可
- 最后可以将打包成功后的进行反编译操作,最终会发现一些代码确实被混淆了,混淆代码的目的即达到了
具体操作如下
# To enable ProGuard in your project, edit project.properties# to define the proguard.config property as described in that file.## Add project specific ProGuard rules here.# By default, the flags in this file are appended to flags specified# in ${sdk.dir}/tools/proguard/proguard-android.txt# You can edit the include path and order by changing the ProGuard# include property in project.properties.## For more details, see# http://developer.android.com/guide/developing/tools/proguard.html# Add any project specific keep options here:# If your project uses WebView with JS, uncomment the following# and specify the fully qualified class name to the JavaScript interface# class:#-keepclassmembers class fqcn.of.javascript.interface.for.webview {# public *;#}#指定代码的压缩级别-optimizationpasses 5#包明不混合大小写-dontusemixedcaseclassnames#不去忽略非公共的库类-dontskipnonpubliclibraryclasses #优化 不优化输入的类文件-dontoptimize #预校验-dontpreverify #混淆时是否记录日志-verbose # 混淆时所采用的算法#-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*-allowaccessmodification#保护注解-keepattributes *Annotation*-keepattributes Signature-keepattributes Exceptions,InnerClasses,Signature-keepattributes SourceFile,LineNumberTable-keep public class com.google.vending.licensing.ILicensingService-keep public class com.android.vending.licensing.ILicensingService# 保持哪些类不被混淆-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#####################记录生成的日志数据,gradle build时 在本项目根目录输出-end################################混淆保护自己项目的部分代码以及引用的第三方jar包library#########################-libraryjars libs/armeabi/libBaiduMapSDK_base_v3_6_1.so-libraryjars libs/armeabi/libBaiduMapSDK_cloud_v3_6_1.so-libraryjars libs/armeabi/libBaiduMapSDK_map_v3_6_1.so-libraryjars libs/armeabi/libBaiduMapSDK_radar_v3_6_1.so-libraryjars libs/armeabi/libBaiduMapSDK_search_v3_6_1.so-libraryjars libs/armeabi/libBaiduMapSDK_util_v3_6_1.so-libraryjars libs/armeabi/liblocSDK6a.so-libraryjars libs/armeabi-v7a/libBaiduMapSDK_base_v3_6_1.so-libraryjars libs/armeabi-v7a/libBaiduMapSDK_cloud_v3_6_1.so-libraryjars libs/armeabi-v7a/libBaiduMapSDK_map_v3_6_1.so-libraryjars libs/armeabi-v7a/libBaiduMapSDK_radar_v3_6_1.so-libraryjars libs/armeabi-v7a/libBaiduMapSDK_search_v3_6_1.so-libraryjars libs/armeabi-v7a/libBaiduMapSDK_util_v3_6_1.so-libraryjars libs/armeabi-v7a/liblocSDK6a.so-libraryjars libs/arm64-v8a/libBaiduMapSDK_base_v3_6_1.so-libraryjars libs/arm64-v8a/libBaiduMapSDK_cloud_v3_6_1.so-libraryjars libs/arm64-v8a/libBaiduMapSDK_map_v3_6_1.so-libraryjars libs/arm64-v8a/libBaiduMapSDK_radar_v3_6_1.so-libraryjars libs/arm64-v8a/libBaiduMapSDK_search_v3_6_1.so-libraryjars libs/arm64-v8a/libBaiduMapSDK_util_v3_6_1.so-libraryjars libs/arm64-v8a/liblocSDK6a.so-libraryjars libs/x86/libBaiduMapSDK_base_v3_6_1.so-libraryjars libs/x86/libBaiduMapSDK_cloud_v3_6_1.so-libraryjars libs/x86/libBaiduMapSDK_map_v3_6_1.so-libraryjars libs/x86/libBaiduMapSDK_radar_v3_6_1.so-libraryjars libs/x86/libBaiduMapSDK_search_v3_6_1.so-libraryjars libs/x86/libBaiduMapSDK_util_v3_6_1.so-libraryjars libs/x86/liblocSDK6a.so-libraryjars libs/x86_64/libBaiduMapSDK_base_v3_6_1.so-libraryjars libs/x86_64/libBaiduMapSDK_cloud_v3_6_1.so-libraryjars libs/x86_64/libBaiduMapSDK_map_v3_6_1.so-libraryjars libs/x86_64/libBaiduMapSDK_radar_v3_6_1.so-libraryjars libs/x86_64/libBaiduMapSDK_search_v3_6_1.so-libraryjars libs/x86_64/libBaiduMapSDK_util_v3_6_1.so-libraryjars libs/x86_64/liblocSDK6a.so-libraryjars libs/android-support-v4.jar-libraryjars libs/BaiduLBS_Android.jar-libraryjars libs/picasso-2.3.3.jar-libraryjars libs/fastjson-1.1.45.android.jar-libraryjars libs/umeng-analytics-v5.6.4.jar-libraryjars libs/xUtils-2.6.14.jar-libraryjars libs/SocialSDK_renren_1.jar-libraryjars libs/universal-image-loader-1.9.3.jar#如果引用了v4或者v7包-dontwarn android.support.**-keep class android.** {*;}-dontwarn android.**#友盟混淆-keep class com.umeng.**{*;}-dontwarn com.umeng.**#百度地图混淆-keep class com.baidu.** {*;}-dontwarn com.baidu.**-keep class vi.com.gdi.bgl.android.**{*;}#xUtils混淆#这块做的就是自己项目中的一些具体类的混淆处理#可以自己试着处理下#一般情况下将自己的model最好不要混淆的 其余的可以视情况而定-keep class com.aragoncs.mennuicitymanager.model.** { *; }-keep class com.aragoncs.mennuicitymanager.util.**-keep class com.aragoncs.mennuicitymanager.constant.** { *; }-dontwarn org.apache.commons.net.**-keep class * extends java.lang.annotation.Annotation { *; }-dontwarn android.webkit.WebView-dontwarn android.support.**-dontwarn com.facebook.** -dontwarn com.lidroid.xutils.** -dontwarn com.umeng.**-dontwarn com.squareup.**-dontwarn com.ta.**-dontwarn com.ut.**-dontwarn org.android.**-dontwarn com.dnurse.**-dontwarn com.alibaba.fastjson.**-dontwarn org.achartengine.**-dontwarn com.nineoldandroids.**-dontwarn android.**-keep enum com.lidroid.xutils.** -keep enum com.facebook.** -keep enum com.umeng.** -keep enum com.squareup.** -keep enum com.ta.** -keep enum org.android.** -keep enum com.dnurse.** -keep enum com.alibaba.fastjson.** -keep enum org.achartengine.** -keep enum com.nineoldandroids.** -keep enum android.**-keep public interface com.facebook.** -keep public interface com.lidroid.xutils.** -keep public interface com.umeng.** -keep public interface com.squareup.** -keep public interface com.ta.** #-keep public interface org.android.** -keep public interface com.dnurse.** -keep public interface com.alibaba.fastjson.** -keep public interface org.achartengine.** -keep public interface com.nineoldandroids.** -keep public interface abdroid.**-keep class javax.**-keep class android.webkit.**-keep class com.facebook.**{*;}-keep class com.lidroid.xutils.**{*;}-keep class com.squareup.**{*;}-keep class com.ta.**-keep class org.android.**-keep class com.dnurse.**{*;}-keep class com.alibaba.fastjson.**{*;}-keep class org.achartengine.**-keep class com.nineoldandroids.**-keep class android.**#保证自定义View不被混淆 -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(...);}#保持 native 方法不被混淆-keepclasseswithmembernames class * { native <methods>;}#保持自定义控件类不被混淆-keepclasseswithmembers class * { public <init>(android.content.Context);}-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 class * extends android.app.Activity { private void *(android.view.View);}-keepclassmembers public class * extends android.view.View { void set*(***); *** get*();}-keepclassmembers class * extends android.support.v4.app.Fragment { public void *(android.view.View);}-keepclassmembers class * extends android.support.v4.app.Fragment { void *(android.view.View);}#保持 Parcelable 不被混淆-keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *;}#保持 Serializable 不被混淆-keepnames class * implements java.io.Serializable#保持 Serializable 不被混淆并且enum 类也不被混淆-keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient <fields>; !private <fields>; !private <methods>; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve();}#保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可#-keepclassmembers enum * {# public static **[] values();# public static ** valueOf(java.lang.String);#}#不混淆资源类-keepclassmembers class **.R$* { public static <fields>;}#避免混淆泛型 如果混淆报错建议关掉#–keepattributes Signature#移除log 测试了下没有用还是建议自己定义一个开关控制是否输出日志#-assumenosideeffects class* android.util.Log {# public static boolean isLoggable(java.lang.String, int);# public static int v(...);# public static int i(...);# public static int w(...);# public static int d(...);# public static int e(...);#}
0 0
- Android项目在Eclipse下的混淆
- android 项目通过eclipse混淆代码 打包 + proguard的配置
- 关于在android studio下的代码混淆
- Android 项目的代码混淆
- Android 项目的代码混淆
- Android项目的代码混淆
- OpenBravo 在eclipse下项目的建立
- Android下的代码混淆
- android下的代码混淆
- android推送:eclipse paho mqtt 项目在android studio环境下的源码
- 为Eclipse ADT创建的android项目通过ant添加proguard混淆支持(转载)
- Eclipse配合ADT为Android项目添加Proguard混淆的简单新方法
- 关于Android项目使用注解开发框架在eclipse环境下的配置
- 三、android项目在eclipse下的库引用目录详解
- android项目在eclipse下调用第三方.so库的方法
- AndroidAnnotation在Eclipse环境下部署android 项目
- Android 项目的代码混淆的使用说明
- android eclipse开发混淆
- SparkContext.scala 源代码学习
- java Struts2,Spring,Hibernate的整合步骤
- php输出杨辉三角
- bzoj1651: [Usaco2006 Feb]Stall Reservations 专用牛棚
- 想说爱你不容易
- Android项目在Eclipse下的混淆
- 内存管理
- web design for developers—写给程序员的web设计书--总结
- response对象
- Lua使用笔记
- notepad++如何修改当前目录为工作目录
- 杂论--偶对成篇
- POJ 1065 Wooden Sticks(LIS)
- 被误传的Cookie的Domain属性