Android Proguard

  1 # To enable ProGuard in your project, edit project.properties
  2 # to define the proguard.config property as described in that file.
  3 #
  4 # Add project specific ProGuard rules here.
  5 # By default, the flags in this file are appended to flags specified
  6 # in ${sdk.dir}/tools/proguard/proguard-android.txt
  7 # You can edit the include path and order by changing the ProGuard
  8 # include property in project.properties.
  9 #
 10 # For more details, see
 11 #   http://developer.android.com/guide/developing/tools/proguard.html
 12
 13 # Add any project specific keep options here:
 14
 15 # If your project uses WebView with JS, uncomment the following
 16 # and specify the fully qualified class name to the JavaScript interface
 17 # class:
 18 #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
 19 #   public *;
 20 #}
 21
 22 #混淆的压缩比率 0 ~ 7
 23 -optimizationpasses 5
 24 #Aa aA
 25 -dontusemixedcaseclassnames
 26 #混淆jar包里面的class
 27 -dontskipnonpubliclibraryclasses
 28 -dontpreverify
 29 #混淆后生产映射文件 map 类名->转化后类名的映射
 30 -verbose
 31 #混淆采用的算法.
 32 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
 33
 34 -keepattributes *Annotation*
 35 -keepattributes Signature
 36
 37 #百度地图
 38 -libraryjars ../../workspace/OmengLibrary/libs/armeabi/libBaiduMapSDK_v3_2_0_15.so
 39 -libraryjars ../../workspace/OmengLibrary/libs/armeabi/liblocSDK4d.so
 40 -libraryjars ../../workspace/OmengLibrary/libs/BaiduLBS_Android.jar
 41 -keep class com.baidu.** { *; }
 42 -keep class vi.com.gdi.bgl.android.**{*;}
 43
 44 #个推
 45 -libraryjars ../../workspace/OmengLibrary/libs/armeabi/libgetuiext.so
 46 -libraryjars ../../workspace/OmengLibrary/libs/GetuiExt-2.0.3.jar
 47 -libraryjars ../../workspace/OmengLibrary/libs/GetuiSdk2.4.1.0.jar
 48 -dontwarn com.igexin.**
 49 -keep class com.igexin.**{*;}
 50
 51 #微信
 52 -libraryjars ../../workspace/OmengLibrary/libs/libammsdk_pay.jar
 53
 54 #友盟
 55 -libraryjars ../../workspace/OmengLibrary/libs/umeng-analytics-v5.4.2.jar
 56 -keepclassmembers class * {
 57    public <init>(org.json.JSONObject);
 58 }
 59 -keep class com.umeng.** { *; }
 60 -keep class com.umeng.analytics.** { *; }
 61 -keep class com.umeng.common.** { *; }
 62 -keep class com.umeng.newxp.** { *; }
 63
 64 #piyin4j
 65 #-libraryjars ../../workspace/OmengLibrary/libs/pinyin4j-2.5.0.jar
 66 -dontwarn demo.Pinyin4jAppletDemo*
 67
 68 #android-support-v4
 69 -libraryjars  ../../workspace/OmengLibrary/libs/android-support-v4.jar
 70
 71 -keep public class * extends android.app.Fragment
 72 -keep public class * extends android.app.Activity
 73 -keep public class * extends android.app.Application
 74 -keep public class * extends android.app.Service
 75 -keep public class * extends android.content.BroadcastReceiver
 76 -keep public class * extends android.content.ContentProvider
 77 -keep public class * extends android.app.backup.BackupAgentHelper
 78 -keep public class * extends android.preference.Preference
 79 -keep public class * extends android.support.v4.**
 80 -keep public class com.android.vending.licensing.ILicensingService
 81
 82 -keep class com.google.gson.stream.** { *; }
 83 -keep class com.google.gson.examples.android.model.** { *; }
 84 -keep class com.uuhelper.Application.** { *; }
 85 -keep class net.sourceforge.zbar.** { *; }
 86 -keep class com.google.android.gms.** { *; }
 87
 88 #实体类
 89 -keep class com.robinxdroid.bean.** { *; }
 90
 91 -keep class com.android.vending.licensing.ILicensingService
 92 -keep class android.support.v4.** { *; }
 93 -keep class org.apache.commons.net.** { *; }
 94 -keep class com.tencent.** { *; }
 95
 96 -dontwarn android.support.v4.**
 97 -dontwarn org.apache.commons.net.**
 98 -dontwarn com.tencent.**
 99
100 #Native
101 -keepclasseswithmembernames class * {
102     native <methods>;
103 }
104
105 #构造方法
106 -keepclasseswithmembernames class * {
107     public <init>(android.content.Context, android.util.AttributeSet);
108 }
109
110 -keepclasseswithmembernames class * {
111     public <init>(android.content.Context, android.util.AttributeSet, int);
112 }
113
114 -keepclassmembers class * extends android.app.Activity {
115    public void *(android.view.View);
116 }
117
118 #枚举
119 -keepclassmembers enum * {
120     public static **[] values();
121     public static ** valueOf(java.lang.String);
122 }
123 #AIDL
124 -keep class * implements android.os.Parcelable {
125   public static final android.os.Parcelable$Creator *;
126 }
127
128 -keepclasseswithmembers class * {
129     public <init>(android.content.Context);
130 }
131
132 -dontshrink
133 -dontoptimize
134 -dontwarn com.google.android.maps.**
135 -dontwarn android.webkit.WebView
136 -dontwarn com.umeng.**
137 -dontwarn com.tencent.weibo.sdk.**
138 -dontwarn com.facebook.**
139
140 -keep enum com.facebook.**
141 -keepattributes Exceptions,InnerClasses,Signature
142 -keepattributes *Annotation*
143 -keepattributes SourceFile,LineNumberTable
144
145 -keep public interface com.facebook.**
146 -keep public interface com.tencent.**
147 -keep public interface com.umeng.socialize.**
148 -keep public interface com.umeng.socialize.sensor.**
149 -keep public interface com.umeng.scrshot.**
150
151 -keep public class com.umeng.socialize.* {*;}
152 -keep public class javax.**
153 -keep public class android.webkit.**
154
155 -keep class com.facebook.**
156 -keep class com.umeng.scrshot.**
157 -keep public class com.tencent.** {*;}
158 -keep class com.umeng.socialize.sensor.**
159
160 -keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}
161
162 -keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}
163
164 #-keep class im.yixin.sdk.api.YXMessage {*;}
165 #-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
166
167 -keep public class [Your package name].R$*{
168    public static final int *;
169 }
170
171 #-keep class **.R$* {   *;   }

混淆示例

时间: 2024-12-29 05:13:13

Android Proguard的相关文章

Android - ProGuard简介

Android - ProGuard简介 本文地址: http://blog.csdn.net/caroline_wendy ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. ProGuard是一个免费Java类文件的收缩器(shrinker).优化器(optimizer).模糊器(obfuscator)和预验证器(preverifier). It detects and re

Android Proguard使用技巧

1.混淆后解码 ProGuard运行结束后,输出以下文件: dump.txt :描述.apk文件中所有类文件间的内部结构 mapping.txt:列出了原始的类,方法和字段名与混淆后代码间的映射.这个文件很重要,当你从release版本中收到一个bug报告时,可以用它来翻译被混淆的代码. seeds.txt:列出了未被混淆的类和成员 usage.txt:列出了从.apk中删除的代码 这些文件放在以下文件夹中: · Ant:<project_root>/bin/proguard · Eclips

利用android proguard混淆代码

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

Android proguard混淆签名打包出现&quot;android proguard failed to export application&quot;解决方案

刚刚接触安卓,不是很熟悉.发现之前可以正常打包的项目出现添加混淆再进行打包签名的APK之后提示"android proguard failed to export application". 注释掉程序中的proguard.config=proguard.cfg(在project.properties文件中),再进行打包发现不混淆就可以正常打包. 终于找到原因,原来今日升级了SDK到20.3版本,SDK安装目录下缺少了混淆的目录SDK\tools\proguard缺少了相关的工具文件,

android proguard使用心得和遇到的若干问题以及解决思路。

今天决定对项目使用混淆工具proguard.于是便开始找proguard究竟放在sdk的什么地方,果不其然,我在sdk目录的tools文件夹中找到了proguard的文件夹. 配置方法这里简单的说明一下. 打开要混淆的android项目,找到project.properties文件. 后面添加上proguard.config=android.pro 现在我来解释说明一下这句话,后面的android.pro是proguard的配置文件,主要是告诉proguard应该怎么混淆文件.那么这个配置文件在

Android proguard 详解

简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能.官网网址是: http://proguard.sourceforge.net/. 详解 1.原理 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间"字节码"存储于 class 文件中.由于跨平台的需要,Java 字节

Android 项目的代码混淆,Android proguard 使用说明

简单介绍 Java代码是非常easy反编译的. 为了非常好的保护Java源码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 官网地址:http://proguard.sourceforge.net/ 原理 Java 是一种跨平台的.解释型语言,Java 源码编译成中间"字节码"存储于 class 文件里.因为跨平台的须要,Java 字节码中包

Android Proguard安全加固教你如何让自己的应用程序或SDK更难被反编译--library打包成jar并且混淆

在android 应用层开发的时候咱们技术人员都或多或少都会接触一些SDK比如so.jar等,这些都是数据类公司提供给互联网开发公司的关于技术核心类 方便的东西,因为是核心所以加密加固是必不可少的工作,本博今天就向大家介绍jar的封装打包以及混淆,完成自己的SDK!在此之前需要给大家说 说so,so是由C/C++语言编译而来,其反编译难度更大,因为反编译之后就是汇编语言,需要懂汇编才能看懂,更重要的是即使懂汇编把其复原也是相 当大的工程,尤其是一些大公司的SDK,那就更别说了,而jar呢反编译的

Android proguard代码混淆

之前我写过一篇博客Android APK的反编译和重新打包讲解了APK反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.那么本文我们来学习一下如何防止自己的APK被别人反编译,即代码混淆. 代码混淆并不是让代码无法被反编译,而是将代码中的类.方法.变量等信息进行重命名,将它们改成一些毫无意义的名字,譬如A类的b()方法等.所以说代码混淆可以在不影响程序正常运行的前提下让破解者很头疼,从而大大提升了程序的安全性. 我们的Android项目可以使用Android Studio来创建,