Android项目中Proguard配置文件的定制

简介

默认的Proguard配置文件在$ANDROID_HOME\sdk\tools\proguard 目录下。
1. proguard-android.txt 默认的Proguard配置文件(未优化)
1. proguard-android-optimize.txt 默认的Proguard配置文件(已优化)
1. proguard-project.txt 默认的用户定制Proguard配置文件。

最近,我通过对Proguard文档的学习,以及各种开源项目Proguard配置文件的分析,总结了几个加强版本的Proguard配置文件。

项目主页:https://github.com/SnowdreamFramework/android-proguard-configs

Proguard配置文件列表

  1. proguard-android-all.txt android项目中可能用到的Proguard配置,仅供参考
  2. proguard-android-lib.txt android library工程的Proguard配置(未优化)
  3. proguard-android-lib-optimize.txt android library工程的Proguard配置(已优化)
  4. proguard-android-app.txt android app工程的Proguard配置(未优化)
  5. proguard-android-app-optimize.txt android app工程的Proguard配置(已优化)

使用方法(Gradle)

下载项目中的Proguard配置文件,然后拷贝到$ANDROID_HOME\sdk\tools\proguard 目录下。

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-app-optimize.txt'), 'proguard-rules.txt'
        }
    }

注:对于lib项目,推荐使用proguard-android-lib.txt
对于app项目,推荐使用proguard-android-app-optimize.txt

Reference

  1. http://proguard.sourceforge.net/index.html#manual/usage.html
  2. http://proguard.sourceforge.net/index.html#manual/examples.html
  3. http://developer.android.com/tools/help/proguard.html
  4. https://chromium.googlesource.com/external/google-cache-invalidation-api/+/master/src/example-app-build/proguard.cfg
  5. https://google-gson.googlecode.com/svn/trunk/examples/android-proguard-example/proguard.cfg
  6. https://github.com/47deg/translate-bubble-android/blob/master/proguard-sbt.txt
  7. http://sourceforge.net/p/proguard/discussion/182456/thread/32de9f92/
  8. http://www.cnblogs.com/royi123/archive/2013/02/28/2937657.html
  9. https://code.google.com/p/csipsimple/source/browse/trunk/CSipSimple/proguard.cfg
  10. http://blog.csdn.net/lovexjyong/article/details/24652085
时间: 2024-10-03 19:27:33

Android项目中Proguard配置文件的定制的相关文章

android 项目中怎么用代码判断手机的某项应用的权限是否允许或者禁止,

问题描述 android 项目中怎么用代码判断手机的某项应用的权限是否允许或者禁止, android 项目中怎么用代码判断手机的某项应用权限是否允许或者禁止,比如拍照权限,定位权限,,,这些权限在manifest 配置文件中多已经配置过了, 解决方案 可以获取AndroidManifest到这里所有配置的权限,然后查看你想查看的那个权限是否包含里面就可以了吧 解决方案二: 判断 ContextCompat.checkSelfPermission(context, permission) == P

格式-关于Android项目中不同包之间的类相互调用

问题描述 关于Android项目中不同包之间的类相互调用 在同一个项目中我创建了几个包,然后在包 com.g.zxing.client.android中创建了类文件数据库MySQLiteOpenHelper我想在包com.g.zxing.client.android.result中的TextResultHandler.java调用MySQLiteOpenHelper格式如下import com.g.zxing.client.android.MySQLiteOpenHelper; public M

c语言-android项目中JNI调用的C代码

问题描述 android项目中JNI调用的C代码 最近的一个项目,需要通过JNI在串口中读取数据,读取数据并返回的代码是用C语言写的.我对C语言很陌生,哪位大神帮帮忙,帮忙撸几句代码.JNIEXPORT jbyteArray JNICALL Java_com_cem_serialdevdemo_CodeJNI_ReadRfidSerialPort (JNIEnv env jobject obj){//大致的思路是: int rev=0; unsigned char sof; unsigned c

图片显示-Android 项目中不能显示两张以上图片

问题描述 Android 项目中不能显示两张以上图片 public class MainActivity extends Activity { private ImageView[] img=new ImageView[4];//声明一个保存ImageView组件的数组 private int[] imagePath= new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04};//声明并初始化一个

关于android项目中使用toolbar的问题

问题描述 关于android项目中使用toolbar的问题 按照网上的教程,现在打算废弃掉actionbar来用toolbar代替,看示例是很不错,不过自己按照步骤来做的时候出现了问题. 问题1:我的工程创建出来,res里面没有v21包,不能设置导航栏的颜色(4.0版本一直到5.1版本都尝试过,都不行,并且都已经导入support v7.jar 包到libs里面)? 问题2:在主题里面设置actionbar属性的时候出现了未找到资源的错误提示? 问题3:如何解决版本小于4.0 自动导入v7包出现

用户权限-Android项目中怎么传递用户的登录信息

问题描述 Android项目中怎么传递用户的登录信息 我要建立一个android项目,这个项目中使用ksoap2调用webservice(我用的是axis2)中的方法,但在这个项目的apk应用过程中,我随时可能会用到登录人的信息对该登录人的权限进行判断,因此我需要一个容器来对登录人信息进行存储,类似于B/S架构中的session.有过相关项目经验的各位大神,能不能给我提一个解决方案,急用,在线等,大恩不言谢! 解决方案 在application中放一个静态成员变量保存登录人的信息AndroidM

安卓开发-android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢

问题描述 android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢 android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢 有没有Activity不需要xml文件的情况呢 解决方案 多个xml一般是需要适配不同大小的屏幕,安卓会根据屏幕大小自动加载不同size的屏幕的xml,安卓开发是mvc结构,activity一定需要一个view,通常是需要xml做view,但是也可以自定义一个view然后activity加载这个view

对象-Android项目中该如何理解这个方法体

问题描述 Android项目中该如何理解这个方法体 // 销毁arg1位置的界面 @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(views.get(arg1)); } 解决方案 viewpage有缓存机制,默认是预加载三页,前提是前一页后一页有东西.既然有预加载那么翻页的时候后,就会重新预加载下一次要加载的页面. 比如你现在是第二页 他已经加载

android布局的实现-android项目中如何才能让一个button在屏幕的位置任意摆放

问题描述 android项目中如何才能让一个button在屏幕的位置任意摆放 android项目中如何才能让一个button在屏幕的位置任意摆放 我感觉只能摆放在左上角或者顶部中间或者顶部右边,无法放到其他位置了 解决方案 父试图用relativelayout,长宽都match parent, 然后button可以通过margintop,marginright来调节位置 解决方案二: 用属性控制啊,哪个角落都可以放的.