您的位置:首页 > 移动开发 > Android开发

Android手动混淆打包(com.android.library类型工程项目打包jar包)

2016-07-20 14:00 866 查看
   经朋友介绍,到新公司快一年了,期间陆陆续续做了一些的项目,其中包含2个SDK,公司要求以jar包的形式给客户提供功能,打成jar包并不麻烦,问题在于如何给代码进行混淆,尝试了几种方法,效果都不尽如人意,最后找到了一种适合的方法,现总结如下。android studio gradle

 创建一个库工程,名称为XXLib,build.gradle加入声明:apply plugin: 'com.android.library'

 创建成功后,尽情实现你要的功能

 开始打包,进入到XXLib目录中,command line执行打包命令:gradle clean assembleRelease

 打包完成后,会在XXLib/build/outputs/aar目录下会生成XXLib-release.aar文件

 使用解压工具打开XXLib-release.aar文件,提取出classes.jar放在XXLib-release.aar文件所在目录(解压aar文件的方法是,将aar文件后缀修改为zip,直接解压即可)

 修改混淆配置文件:proguard-rules.pro,修改-libraryjars路径,该路径为${android.sdk.home}路径,proguard-rules.pro下载地址:git@code.csdn.net:snippets/1773160.git

 使用command line方式混淆,主要使用Android sdk中的工具,目录在${android.sdk.home}/tools/proguard/lib下

执行命令:java -jar ${android.sdk.home}/tools/proguard/lib/proguard.jar @${project.home}/XXLib/proguard-rules.pro即可,注意更改${android.sdk.home}和${project.home}目录

example:

java -jar /Users/xusheng/xusheng/software_install/android-sdk-macosx/tools/proguard/lib/proguard.jar @/Users/xusheng/xusheng/project/advertisement_an/Ads/lib/proguard-rules.pro

至此,jar包已经混淆完成,但是有一点需要注意,该种方法并不能将资源文件同时打包在内,需要使用sdk的宿主应用添加到自己工程的资源文件目录下,然后sdk中使用反射的方式进行获取,具体获取方法,我也提供了一个工具类,下载地址为:

git@code.csdn.net:snippets/1773223.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android开发 gradle jar