proguard-project.txt和project.properties混淆代码

 【转】利用android proguard混淆代码 防止反编译,优化代码

网上虽然有很多相关博客,不过貌似都不是最新版的。。于是百度+谷歌+github上的开源demo,终于成功的配置了android proguard。

最新版的android sdk的默认配置已经可以满足我们的大多数要求了,我们只需要按照sdk的提示就可以配置大部分的必须配置,然后再加上一些基本的

自定义配置就行了。

  • 第一步,取消project.properties里面关于proguard的注释。这一步可以开启proguard。根据网上的博客,最好加上sdk的路径。
sdk.dir=D:/Java/IDE/adt-bundle-windows-x86_64-20130219/sdk
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

  这样一来默认的配置文件也会被包括进来。

  • 第二步,保存被AndroidManifest.xml调用或者webview的类。这是因为proguard会移除没有被调用的代码。
-keepclassmembers
class fqcn.of.javascript.interface.for.webview
 {
   public *;
}
-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
class android.**
 {*;}
-keep
class com.jeremyfeinstein.slidingmenu.lib.**
 {*;}
-keep
class com.actionbarsherlock.**
 {*;}
-keep
class com.lidroid.xutils.**
 {*;}
  • 第四步,其实这一步可以代替上面所有的keep语句,彻底将误删的概率降到最低。那就是保留所有具有公有访问权限的类和其公共成员。
-keepclasseswithmembers
class *{
    public *;
}
  • 第五步,在github上的开源proguarddemo上学来的,删除Log代码
-assumenosideeffects
class android.util.Log
 {
    public static ***
 e(...);
    public static ***
 w(...);
    public static ***
 wtf(...);
    public static ***
 d(...);
    public static ***
 v(...);
}

配置好混淆,最后打包项目:

接着我反编译导出的APK,如下:

发现在生成的jar文件中,所有的类名,变量名都变成了a,b,c等无法正确理解的名称,达到了预期的效果。

[以上内容没有亲测,内容均来源网络]

参考地址:

http://blog.csdn.net/binyao02123202/article/details/18940715

http://blog.csdn.net/pomme_qixiaohu/article/details/8551918

http://www.2cto.com/kf/201207/144771.html

时间: 2024-10-24 04:32:02

proguard-project.txt和project.properties混淆代码的相关文章

利用android proguard混淆代码

利用android proguard混淆代码 2014-02-05 17:50 1207人阅读 评论(1) 收藏 举报 网上虽然有很多相关博客,不过貌似都不是最新版的..于是百度+谷歌+github上的开源demo,终于成功的配置了android proguard. 最新版的android sdk的默认配置已经可以满足我们的大多数要求了,我们只需要按照sdk的提示就可以配置大部分的必须配置,然后再加上一些基本的 自定义配置就行了. 第一步,取消project.properties里面关于prog

Proguard混淆代码(1)

[意义]混淆代码,可以加大别人反编译的难度,从而最大化的保护自己的代码安全. [场景]我写了一个发短信的程序,回调给游戏一个发短信是否成功的参数,如果成功,游戏就给用户加道具.本意:只想暴露给游戏 doPay()接口,但不想让别人知道我内部的代码及发送短信的内容,所以我就要混淆我的代码,只保留doPay()接口不被混淆~ 工程目录结构: 1 分析: PaymentForSms.java  中,有 doPay方法 public static void doPay(Context context,S

Android混淆代码proguard,内存溢出

Android打debug签名包是不进行代码混淆的,直接RUN AS就是debug签名的包 正式发布版本要经过公司key的正式签名,可以通过export或者Android toos导出 项目比较大,打混淆包的时候直接OOM,网上很多人说直接加大eclipse.ini中的-Xmx值,我这么改过后一直不好使 经测试正确的做法是修改Android混淆调用的sdk的bat文件,路径android-sdk-windows\tools\proguard\bin\proguard.bat 修改最后一行为jav

Type Project has no default.properties file! Edit the project properties to set one.

Description Resource Path Location Type Project has no default.properties file! Edit the project properties to set one. 出现这个错误,肯定是使用eclipse import导入别的项目,解决这个问题就是纠正下如何导入别人的项目或者其他环境下的项目 在eclipse 选择新建android工程,选择“create project from existing source”即可.

【转】Android 混淆代码总结

http://blog.csdn.net/lovexjyong/article/details/24652085 为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来 2. 最重要的就是在proguard-project.txt添加混淆的申明了: a. 把所有你的jar包都申明进来

Android 混淆代码汇总

为了防止别人对自己被盗的劳动,混淆代码可以被反编译可以有效地防止,以下在下面的代码混乱总结的步骤: 1. 大家可能已经注意到一个新的项目将在下面看到的物品都有这个proguard-project.txt一份文件,该代码可用于混乱非常重要.假设你不小心删除,没关系,来 2. 最重要的就是在proguard-project.txt加入混淆的申明了: a. 把全部你的jar包都申明进来,比如: -libraryjars libs/apns_1.0.6.jar -libraryjars libs/arm

Android 混淆代码总结

为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来 2. 最重要的就是在proguard-project.txt添加混淆的申明了: a. 把所有你的jar包都申明进来,例如: -libraryjars libs/apns_1.0.6.jar -libraryjars libs/a

Android混淆代码

Android代码混淆是必须的,java层代码假设不做混淆等于把源码送人了. 那怎样做混淆呢? 之前一般都是提到採用proguard.cfg,但使用新版本号ADT后没有这个文件了.取而代之的是proguard-project.txt文件. 那该怎样使用呢? 在项目根文件夹下有个project.properties.里面有例如以下内容: # To enable ProGuard to shrink and obfuscate your code, uncomment this (available

Android之如何混淆代码和相关配置

昨天,客户想看一下目前项目开发到什么程度了,于是需要将项目签名打包成apk,结果打包的时候出错了,吃惊,什么情况.等成功打包以后,安装起来发现部分功能又报错了,囧,所幸最后还是解决了.在这里记录一下遇到的错误和解决方法. 1.如何混淆 将代码混淆起来,这样可以防止在apk被人反编译后而被别人直接看到源码,混淆方法很简单,当我们创建好项目时,已经自动为我们生成了混淆文件,老版的ADT生成的是proguard.cfg文件,而新版的ADT则是以proguard-project.txt替代了它.两则配置