前提:一个通过bug测试的Android app
一、上线流程:
1、apk体积瘦身
2、Progrud加密混淆
作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。我们可以网上搜一些成型的通用混淆规则粘贴进自己项目,然后再为自己的APP量身定制混淆规则即可。
①ProGuard简介:
ProGuard是一款Android Studio
自身集成好的压缩,优化和混淆工具。配合Gradle构建工具使用很简单,只需要在工程应用目录的gradle文件中设置minifyEnabled为true即可,然后我们就可以到proguard-rules.pro
文件中加入我们的混淆规则了。
看到上图,混淆的文件包括:proguard-android.txt和proguard-rules.pro两个,前者是Android SDK默认提供的混淆规则,后者才是开发者针对项目量身定制的混淆规则。
②ProGuard作用:
- 压缩(Shrink):侦测并移除代码中无用的类、字段、方法、和特性(Attribute)。(默认开启,用以减小应用体积)
- 优化(OPtimize):对字节码进行优化,移除无用指令。(默认开启,在字节码级别执行优化,让应用运行的更快)
- 混淆(Obfuscate):使用a、b、c、d这样简短而无意义的名称,对类、字段和方法进行重命名。(默认开启,增大反编译难度,类和类成员会被随机命名,除非用keep保护)
混淆后默认会在工程目录app/build/outputs/mapping/release
下生成一个mapping.txt
文件,这就是混淆规则,我们可以根据这个文件把混淆后的代码反推回源本的代码,所以这个文件很重要,注意保护好。原则上,代码混淆后越乱越无规律越好,但有些地方我们是要避免混淆的,否则程序运行就会出错,所以就有了下面我们要教大家的,如何让自己的部分代码避免混淆从而防止出错。
③具体看教程:
3、Zipalign应用程序运行速度优化工具
发布一款应用除了设minifyEnabled
为ture
,你也应该设置zipAlignEnabled
为true
,像Google Play
强制要求开发者上传的应用必须是经过zipAlign的,zipAlign可以让安装包中的资源按4字节对齐,这样可以减少应用在运行时的内存消耗,从而让应用程序和整个系统运行得更快
Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整个系统运行得更快。
Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具,而且对于已经发布但不受限于系统版本的Apps,建议用优化后的APK替换现有的版本。
4、apk数字签名成release版
5、发布到各大应用市场
6、Android应用安全加固
某些应用市场比如腾讯的应用宝需要开发者对新上传的apk进行加固处理,防止应用被反编译破解或二次打包成恶意应用。
可以使用腾讯的移动应用自动化加固工具:腾讯乐固应用加固助手
参考我另外篇博客: Android应用加固