android开发混淆打包工具,Android—混淆与打包

  • Post author:
  • Post category:其他


我们都希望自己的代码足够”安全”,即使别人反编译了我们的应用,他们也很难从反编译的代码中找出漏洞。这时候我们就依赖编译器的混淆功能,混淆会将大部分(下面会解释为什么是大部分)类和成员的名称重命名为没有意义的短名,例如aa、ab这种,此时的代码基本没有可读性,也就不容易找到漏洞。想要从代码的角度分析混淆做了什么,我们就得查看混淆后的代码,本文通过反编译来分析混淆前后的代码有何不同。

一、混淆与反编译

1.1 混淆、缩减与优化应用

混淆并不是单独使用的,当你启用混淆时,编译器还会同时缩减和优化你的应用,以尽可能地减小应用的大小。当发布应用的release版本时就需要开启混淆,在build.gradle中添加以下代码即可启用。

android {

buildTypes {

release { // 用于应用的release版本

// 启用 代码缩减、混淆、代码优化

minifyEnabled true

// 资源缩减

shrinkResources true

// 这里引入了Android插件自带的混淆规则

proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’),

‘proguard-rules.pro’

}

}

}

1.1.1 minifyEnabled

minifyEnabled为true表示启用代码缩减、混淆处理和优化。

代码缩减:也称”摇树优化”,指从应用及其依赖库