AS:3.5.3; Android Gradle插件:3.5.0;摇篮:5.6.2;
我们在将“应用程序”模块拆分为几个小模块后,发现应用程序中引用的方法数量急剧增加。但是奇怪的是,每个类所引用的方法的添加量少于Android Apk分析器工具中提到的总数。
出于测试目的,我已将WebActivity.class从“ app”模块移至“ adapters”模块,并且引用的方法计数增加了181个方法。
总结:
app / WebActivity = 63546实际引用的方法,但显示65394方法。adapter / WebActivity = 63543实际引用的方法,但显示65575方法。
我们添加/拆分了4个新模块后,[观察到的'引用方法计数'增加了近1万。
确切的问题是什么?
应用程序模块化如何能够大大增加引用方法的数量?
以下是我截取的两个不同APK的屏幕截图,只是WebActivity从'app'模块移至'adapter'模块,并增加了181种引用方法:
在屏幕截图中,为什么每个类添加的引用方法(用红色标记)不等于Apk Analyzer中给出的总数?
我已经阅读了很长时间的代码性能和调整参数。实际上,Android程序是我的重点之一。
首先介绍可以帮助我们达成解决方案的基本或最重要的概念。
模块可以独立构建,测试和调试
因此,模块具有自己的Gradle&Dependencies。您可以在项目Hierarchy Viewer
中进行探索。
事实上,模块化强调维护很重要。不同于性能问题。因此,模块化具有以下重要影响:
这里是我为清楚起见绘制的图表。如您所见。使用离散模块时,为了调用方法A,与没有离散模块的2N micro secs
相比,有N micro secs
。
这个问题我想到了参考方法计算与继承深度有关的内容吗?
答案是,虽然使用模块化会增加引用方法。但是,它实际上并没有影响应用程序的性能,主要的问题是继承深度
,在大多数情况下,该问题是ignorable。] >我确实强调模块化中引用方法的增加归因于每个模块的Gradle和依赖项
定义应该在哪里的厨房,应该在休息室的地方以及在WC的地方的家。如果架构决定将WC和Kitchen结合在一起怎么办?是的,这是一场灾难。如果开发人员经验不足,则可能在模块化时发生。结论应用程序模块化如何增加引用方法的数量如此之高?
影响APK分析器的重要条件参考方法
还请注意,缩小和缩小代码也可以在源代码为编译。
除了上面的官方声明,我还要添加另一个条件,其中影响APK分析器开发人员在模块化方面有多少经验?
例如:模块化就像是一个[[architecture(developer)
重要提示: