今天,简单讲讲android里如何在生成jar包时,同时对jar包的代码进行混淆,避免别人看到核心代码。
之前,我对领导说我打包生成的SDK,别人使用android studio导入后可以看所有的源码。结果领导说这样不可以,核心代码不能给别人看到。于是在网上搜索如何不让别人看到jar包里的代码,最终发现混淆核心代码就可以做到,不过最后发现混淆还是存在问题,这里记录一下。
网上的这些内容很多,但是很容易使人看不明白。这里记录我自己如何混淆jar包的过程。
1:首先修改指定模块的build.gradle文件,在末尾加上下述代码(网上的代码)
task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
//删除之前编译混淆jar包
delete'build/outputs/jar/SystemInfo.jar'
// 未混淆的jar
injars 'build/intermediates/bundles/release/classes.jar'
// 混淆后的jar路径
outjars 'build/outputs/jar/SystemInfo.jar'
// 混淆文件
configuration 'proguard-rules.pro'
}
说明:AS会自动对模块进行打包,即build/intermediates/bundles/release/classes.jar,只是未进行混淆工作而已;
简单讲讲,这个其实是手动配置了使用proguard-rules.pro对生成的jar进行混淆,我自己这样尝试过,发现这样编译报错,于是自己使用的其他代码:
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 21
}
buildTypes {
release {
/** 不显示LOG **/