qq549631030 / AndroidJunkCode

Android马甲包生成垃圾代码插件
1.09k stars 252 forks source link

我司有五个马甲包 稍微参数慢慢加大 第三个就扛不住了 GC overhead limit exceeded #40

Closed zenglihao closed 1 year ago

zenglihao commented 2 years ago

我司有五个马甲包 稍微参数慢慢加大 第三个就扛不住了 GC overhead limit exceeded 配置如下: packageBase = "sw.da.op" //生成java类根包名 packageCount = 35 //生成包数量 activityCountPerPackage = 130 //每个包下生成Activity类数量 excludeActivityJavaFile = false //是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题 otherCountPerPackage = 100 //每个包下生成其它类的数量 methodCountPerClass = 70 //每个类下生成方法数量 resPrefix = "yljy_" //生成的layout、drawable、string等资源名前缀 drawableCount = 150 //生成drawable资源数量 stringCount = 410 //生成string数量 该如何解决这个问题,或者这么调参数,谢谢

qq549631030 commented 2 years ago

根目录下的gradle.properties里加大最大内存就好 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m

zenglihao commented 2 years ago

根目录下的gradle.properties里加大最大内存就好 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m

好的谢谢,想问下 理论上 市场避免扫描到重复马甲包 主要是 packageCount activityCountPerPackage otherCountPerPackage 这三个参数对吗,理论上这三个参数 有没有上限,我现在还不太清楚怎么设置好,A包设置packageCount 35 activityCountPerPackage 130 那B包为了避免与C包扫描到重复的话 ,B包大概设置多少,我被市场扫描到了一次了😭 谢谢大佬

qq549631030 commented 2 years ago

你可以先用methodCount这个插件看下你主包大概多少方法,然后马甲差不多是主包的 1.5倍,2倍,2.5倍这样子。每个马甲包的packageBase、resPrefix要不一样。生成的垃圾代码方法总数差不多是packageCount(activityCountPerPackage+ otherCountPerPackage) methodCountPerClass