Android studio 打包jar aar分析 混淆
2017-09-12 本文已影响473人
Wings6
打包jar
打包目录截图
下面那个就是我们要打包的jar了 由于我打包的内容是和url有关的 所以就这名字了
请在对应library的build.gradle写下如下代码
buildTypes {
release {
minifyEnabled false// 开启代码混淆 个人建议用false true的话 好多奇怪的问题 实际上 混淆作用也不大 下面会有分析
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
task makeJar(type: Copy) {
delete 'build/libs/MySdk.jar' //打包出来的路径
from('build/intermediates/bundles/release/') //路径之类的玩意 照填吧
into('build/libs/') //路径之类的玩意 照填吧
include('classes.jar') //那这个包然后包装一下 成为我们的
rename ('classes.jar', 'MySdk.jar') //MySdk.jar 这个是打包出来的文件名称 后缀不变
}
makeJar.dependsOn(build)
然后执行打包命令 是 gradlew makeJar 直接在android studio 内部的Terminal内 执行就在平时看LOG窗口的旁边,他默认会进入到对应目录 你直接复制 进去回车执行就可以进行打包操作了
你要在里面封装什么就封吧新建个class也行 封点别的代码也是可以的 不过 jar不可以封装资源 aar可以下面讲一下 更加简单 更好的的aar
打包aar
配置不用了 就新建一个library 写入要封装的代码 执行一下这个命令就完事了
然后再去 library (你封装的library 名称)\build\outputs\aar\这个目录下找最大那个aar
那个就是我们要的
至于混淆内容: 这里我纠结了很久吧 也查了很久,刚开始以为jar代码混淆的话能把一些重要的数据给隐藏起来,但是实际上还是可以看到的 基本混淆不混淆意义也不大了吧
后来问了一下大佬 他建议说
String 这样的数据采取 R.string.data 这样的形式外部引用会好一些
最终点进去看到的地址是一串0x000000这样的地址引用,打比方说我把重要的数据封装在里面了,然后老大要求这玩意不能让第三方调用者轻易看到,就可以使用这种方式吧。
jar aar应该是一样的 人家直接点开是看不到的,希望以后还能有更好的方法
good luck