文章标题

来源:互联网 发布:dnf远程控制软件 编辑:程序博客网 时间:2024/05/16 17:19

android代码混淆

步骤:
1,项目下的peroject.properties文件放开画线这行注释
这里写图片描述
2,放开之后更改成如下图
这里写图片描述
3,正如现在看到的有一个文件proguard-android.text没有,得添加文件内容如下

# This is a configuration file for ProGuard.# http://proguard.sourceforge.net/index.html#manual/usage.html-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-ignorewarnings-verbose# 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);}-keepclassmembers class * implements android.os.Parcelable {  public static final android.os.Parcelable$Creator 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.**

4,现在已经到了关键的时刻了,看你项目中有多少第三方jar包,就得让不被混淆,我是在proguard-project.text文件中做的处理,贴出整个代码了

# 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 *;#}######## 其它第三方库#######-dontwarn com.netease.nrtc.**-keep class com.netease.nrtc.** {*;}-keep class alipay_lib.** {*;}-keep class android-support-v7-gridlayout.** {*;}-keep class library.** {*;}-keep class MPChartLib.** {*;}################httpmime/httpcore##########-libraryjars libs/httpclient-4.1.2.jar-libraryjars libs/httpmime-4.1.2.jar-keep class org.apache.http.** {*;}-dontwarn org.apache.http.**################gson##################-libraryjars libs/gson-2.2.4.jar-keep class com.google.gson.** {*;}#-keep class com.google.**{*;}-keep class sun.misc.Unsafe { *; }-keep class com.google.gson.stream.** { *; }-keep class com.google.gson.examples.android.model.** { *; } -keep class com.google.** {    <fields>;    <methods>;}-keepclassmembers class * implements java.io.Serializable {    static final long serialVersionUID;    private static final java.io.ObjectStreamField[] serialPersistentFields;    private void writeObject(java.io.ObjectOutputStream);    private void readObject(java.io.ObjectInputStream);    java.lang.Object writeReplace();    java.lang.Object readResolve();}-dontwarn com.google.gson.**################支付宝##################-libraryjars libs/alipay.jar-dontwarn com.alipay.android.app.**-keep class com.alipay.android.app.**{*;}####################umeng##################-libraryjars libs/umeng-analytics-v5.2.4.jar-keep class com.umeng.analytics.** {*;}-dontwarn com.umeng.analytics.**#-keep public class * extends com.umeng.**  #-keep public class * extends com.umeng.analytics.**  #-keep public class * extends com.umeng.common.**  #-keep public class * extends com.umeng.newxp.** -keep class com.umeng.** { *; }  -keep class com.umeng.analytics.** { *; }  -keep class com.umeng.common.** { *; }  -keep class com.umeng.newxp.** { *; } -keepclassmembers class * {   public <init>(org.json.JSONObject);}-keep class com.umeng.**-keep public class com.idea.fifaalarmclock.app.R$*{    public static final int *;}-keep public class com.umeng.fb.ui.ThreadView {}-dontwarn com.umeng.**-dontwarn org.apache.commons.**-keep public class * extends com.umeng.**-keep class com.umeng.** {*; }####################universal-image-loader########-libraryjars libs/universal-image-loader-1.9.3.jar-keep class com.nostra13.universalimageloader.** {*;}-dontwarn com.nostra13.universalimageloader.**####################zxing#####################-libraryjars libs/zxing.jar-keep class com.google.zxing.** {*;}-dontwarn com.google.zxing.**####################support.v4#####################-libraryjars  libs/android-support-v4.jar  -dontwarn android.support.v4.**  -keep class android.support.v4.** { *; }    -keep interface android.support.v4.** { *; }  -keep public class * extends android.support.v4.**   -keep public class * extends android.app.Fragment ####################mframework#####################-libraryjars libs/mframework.jar  -dontwarn m.framework.**  -keep class m.framework.** { *; }  -keepattributes Signature -keep interface org.jivesoftware.smack.**{*;}-keep class * implements org.jivesoftware.smack.**-keepclassmembers class * {   <fields>;   <methods>;}-keepclassmembers class * implements java.io.Serializable {    static final long serialVersionUID;    private static final java.io.ObjectStreamField[] serialPersistentFields;    private void writeObject(java.io.ObjectOutputStream);    private void readObject(java.io.ObjectInputStream);    java.lang.Object writeReplace();    java.lang.Object readResolve();}-keep interface org.jivesoftware.smackx.**{*;}-keep interface org.apache.harmony.javax.security.**{*;}-keep interface org.apache.http.**{*;}-keep interface org.apache.qpid.management.common.sasl.**{*;}-keep interface org.xbill,DNS.**{*;}-keep interface com.kenai.jbosh.** {*; }-keep interface com.novell.sasl.client.** {*; }-keep interface de.measite.smack.** {*; }-keep interface org.** {*; }####################ShareSDK#############################-libraryjars libs/ShareSDK-Core-2.3.12.jar  -dontwarn cn.sharesdk.framework.**  -keep class cn.sharesdk.framework.** { *; }  -libraryjars libs/ShareSDK-SinaWeibo-2.3.12.jar  -dontwarn cn.sharesdk.sina.weibo.**  -keep class cn.sharesdk.sina.weibo.** { *; } -dontwarn cn.sharesdk.sina.sso.**  -keep class cn.sharesdk.sina.sso.** { *; } -libraryjars libs/ShareSDK-TencentWeibo-2.3.12.jar-dontwarn cn.sharesdk.tencent.weibo.**-keep class cn.sharesdk.tencent.weibo.**{*;}-libraryjars libs/ShareSDK-QZone-2.3.12.jar-dontwarn cn.sharesdk.tencent.qzone.**-keep class cn.sharesdk.tencent.qzone.**{*;}-libraryjars libs/ShareSDK-ShortMessage-2.3.12.jar-dontwarn cn.sharesdk.system.text.**-keep class cn.sharesdk.tencent.text.**{*;}-libraryjars libs/ShareSDK-QQ-2.3.12.jar-dontwarn cn.sharesdk.tencent.qq.**-keep class cn.sharesdk.tencent.qq.**{*;}-libraryjars libs/usc.jar-dontwarn cn.yunzhisheng.**-keep class assets.**{*;}-keep class cn.yunzhisheng.**{*;}-libraryjars libs/libammsdk.jar-dontwarn com.tencent.**-keep class com.tencent.**{*;}-libraryjars libs/android_volley_manager_1.04.jar-dontwarn com.android.**-keep class com.android.**{*;}-libraryjars libs/BaiduLBS_Android.jar-dontwarn com.baidu.**-keep class assets.**{*;}-keep class com.baidu.**{*;}-keep class vi.com.gdi.bgl.android.**{*;}

5,clean项目,会多出一个文件夹proguard
这里写图片描述
6,大功告成,打包就行了,最好打包后再在手机上跑着看看,有没有问题,最好连着电脑看log日志,有问题也不是什么大问题了,基本都能解决,主要是第三方jar包的有的混淆了,看log是那个混淆了-keep 那个就行

0 0
原创粉丝点击