Android 马甲包生成垃圾代码插件
Posted Wei_Leng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 马甲包生成垃圾代码插件相关的知识,希望对你有一定的参考价值。
androidJunkCode
项目地址:qq549631030/AndroidJunkCode
简介: Android 马甲包生成垃圾代码插件
标签:
此插件用于做马甲包时,减小马甲包与主包的代码相似度,避免被某些应用市场识别为马甲包。
使用方法
根目录的 build.gradle 中:
buildscript
repositories
mavenCentral()
dependencies
classpath "com.github.qq549631030:android-junk-code:1.1.2"
app 目录的 build.gradle 模块中:
apply plugin: 'com.android.application'
apply plugin: 'android-junk-code'
androidJunkCode
variantConfig
release //变体名称,如果没有设置 productFlavors 就是 buildType 名称,如果有设置 productFlavors 就是 flavor+buildType,例如(freeRelease、proRelease)
packageBase = "cn.hx.plugin.ui" //生成 java 类根包名
packageCount = 30 //生成包数量
activityCountPerPackage = 3 //每个包下生成 Activity 类数量
excludeActivityJavaFile = false //是否排除生成 Activity 的 Java 文件,默认 false(layout 和写入 AndroidManifest.xml 还会执行),主要用于处理类似神策全埋点编译过慢问题
otherCountPerPackage = 50 //每个包下生成其它类的数量
methodCountPerClass = 20 //每个类下生成方法数量
resPrefix = "junk_" //生成的 layout、drawable、string 等资源名前缀
drawableCount = 300 //生成 drawable 资源数量
stringCount = 300 //生成 string 数量
原 configMap 配置方式已过时,1.0.8 版以后请使用 variantConfig 配置方式"
如果有多个变体共用一个配置可以这样做
androidJunkCode
def config =
packageBase = "cn.hx.plugin.ui"
packageCount = 30
activityCountPerPackage = 3
excludeActivityJavaFile = false
otherCountPerPackage = 50
methodCountPerClass = 20
resPrefix = "junk_"
drawableCount = 300
stringCount = 300
variantConfig
debug config
release config
如果 APP 开启了混淆,需要在混淆文件里配置
#cn.hx.plugin.ui 为前面配置的 packageBase
-keep class cn.hx.plugin.ui.** *;
生成文件所在目录
build/generated/source/junk
使用插件methodCount对比
未加垃圾代码
项目代码占比 0.13%
加了垃圾代码
项目代码占比 52.93%
安利我的一个新库PriorityDialog(带优先级对话框实现)
以上是关于Android 马甲包生成垃圾代码插件的主要内容,如果未能解决你的问题,请参考以下文章