首页 > 编程知识 正文

android反混淆,android studio怎么打包项目

时间:2023-05-03 12:07:57 阅读:111673 作者:2044

转载地址: http://blog.csdn.net/wangbo Fei/article/details/8266553

浏览博客地址:

3358 hubing forever.blog.163.com/blog/static/171040579201342982553107 /

3358 blog.csdn.net/wotoumingzxy/article/details/8279646

33558 www.cn blogs.com/sunzn/archive/2013/03/06/2946952.html

3358 blog.csdn.net/atrueman 123/article/details/6281658

一.理论知识

ProGuard是一个免费的Java类文件压缩器、优化程序和模糊工具。 检测并删除不需要的类、字段、方法、属性值和属性值。 也可以优化字节码,删除无用的指令。 最后,使用简单而没有意义的名称重命名类名、字段名和方法名。 经过以上操作的jar文件将变得更小,难以进行逆向工程。

二.基本使用

也可以用在安卓APP上

ProGuard进行混洗打包,大幅优化Apk包的尺寸。 但是,请注意,ProGuard对文件路径的名称很有讲究,不支持括号和空格。 混淆后,可以在项目目录的proguard的mapping.txt中看到混淆的类名、方法名、变量名和混淆前的类名、方法名、变量名。

使用Eclipse创建新项目时,将在项目目录下生成并配置project.properties和proguard-project.tx。

# toenableproguardtoshrinkandobfuscateyourcode,uncomment this (available properties : SDK.dir,user.home ) 3360

# proguard.config=$ { SDK.dir }/tools/proguard/proguard-Android.txt : proguard-project.txt

#项目目标。

target=android-10

project.properties用于设置Android项目的一些属性,#符号表示当前行是注释。 此处的ProGuard.config用于指定proguard的混淆配置文件,并在使用release方法打包APP发布时打开代码混淆功能。 是否使用release打包与AndroidManifest.xml中application的android:debuggable属性有很多关系。 如果此值为android:debuggable='true ',则最终将以debug方式打包。 最明智的做法是打包工具在打包时确定最终值,而不是在AndroidManifest.xml中指定。 对于ant,则为antrelease或antdebug。 如果直接在Eclipse中使用run或debgu打包,则为debug;如果使用export,则为release。

proguard.config=$ { SDK.dir }/tools/proguard/proguard-Android.txt : proguard-project.txt

此处指定模糊的基本配置文件proguard-android.txt和模糊的个性化配置文件proguard-project.txt。 在本示例中,您将使用proguard-project.txt文件来override或添加上述基本模糊化配置文件proguard-android.txt的配置。

------------- -请参阅

混淆第三方jar软件包进行包装的处理如下所示。

在project.properties中添加proguard.config=proguard.cfg

proguard.cfg的结构如下:

-优化过程5

-dontusemixedcaseclassnames

- dontskipnonpubliclibraryclasses

-dontpreverify

-verbose

-优化! code/simplification/arithmetic! field/*, class/merging/*

#要忽略警告,可以使用-ignorewarnings

-咚咚

#如果存在第三方jar包中的. so文件,请声明第三方jar包

- libraryjarslibs/baidumapapi.jar

- libraryjarslibs/Tencent _ open API.jar

- libraryjarslibs/http mime-4.1.3.jar

- libraryjarslibs/Weibo.SDK.Android.SSO.jar

- libraryjarslibs/Android-support-v4.jar

- 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.broadcast receiver

- keep public class * extends Android.content.content provider

- keep public class * extends Android.app.backup.backupagenthelper

- keep public class * extends Android.preference.preference

- keeppublicclasscom.Android.vending.licensing.ilicensingservice

- keepclasseswithmembernamesclass * {

空;

}

-keepclasseswithmembers class * {

公共(Android.content.context,android.util.AttributeSet );

}

-keepclasseswithmembers class * {

Public(Android.content.context,android.util.AttributeSet,int );

}

- keepclassmembersclass * extends Android.app.activity {

Ublicvoid*(Android.view.view );

}

-keepclassmembers enum * {

公共静态* * [ ] values (;

公共静态* * value of (Java.lang.string );

}

- keepclass * implements Android.OS.parcelable {

publicstaticfinalandroid.OS.parcelable $ creator *;

}

#不要混淆第三方jar包的类

- keepclasscom.Baidu.mapapi.* * { *; }

- keepclasscom.Tencent.tauth.* * { *; }

- keepclassorg.Apache.http.entity.mime.* * { *; }

- keepclassandroid.support.v4.* * { *; }

- keepclassandroid.net.http.* * { *; }

- keepclasscom.Weibo.SDK.Android.* * { *; }

-keep class com.sina.sso.** {*; }

说明一下,如果第三方jar包中有. so文件,请忽略。 不要混淆引入的第三方jar文件。 否则,有可能报告异常

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。