AndroidModulePattern icon indicating copy to clipboard operation
AndroidModulePattern copied to clipboard

BaseApplication里面遍历application的代理类这块感觉要是类很多会耗性能

Open IdealMiracle opened this issue 7 years ago • 2 comments

大神求解: mAppDelegateList = ClassUtils.getObjectsWithInterface(this, IApplicationDelegate.class, ROOT_PACKAGE); 这里查找对应包下面所有的类 进行遍历如果app的类过多是不是会耗性能呢?

因为代理类一般一个模块只有一个类你这边取名低MyDelegate 可否根据配置文件拿到主工程依赖的子模块名称 然后直接去找到对应的 package.model.MyDelegate呢?

IdealMiracle avatar Sep 27 '18 08:09 IdealMiracle

09-27 18:09:12.369 11253-11253/? E/耗时=45毫秒 09-27 18:09:12.369 11253-11253/? E/耗时=0毫秒

上面那行是你这个全局遍历的耗时 你这个项目工程不大 类不多 大型APP要是类很多 这个时间应该会多很多

下面那个是直接通过配置获取到对应模块下面的MyDelegate基本没有时间损耗

IdealMiracle avatar Sep 27 '18 10:09 IdealMiracle

用字节码注入的方式可以解决问题

holleQiang avatar Feb 27 '19 05:02 holleQiang