首页 开发技术 其它     /    AutoInject:Android通用的组件自动注册,自动初始化解决方案-源码

AutoInject:Android通用的组件自动注册,自动初始化解决方案-源码

上传者: weixin_42178963 | 上传时间:2023/7/16 6:31:23 | 文件大小:211KB | 文件类型:ZIP
AutoInject:Android通用的组件自动注册,自动初始化解决方案-源码
自动进样Android通用的组件自动注册,自动初始化解决方案背景问题我们在组件化的过程,业务被分割成独立的Module中,一些公共组件会在各个Module中通过APT生成一些需要被注册至组件中的信息类,诸如EventBus生成的Index类。
我们这边RN定制的插件是跟随各自的模块,需要被注册。
还有,各个模块对外提供的api接口的话,也需要被注册。
另外,有些组件为某些Module特有,需要在App启动的时候就要初始化,有些需要在主线程中初始化,有些为不相邻的主线程可以在非主线程中初始化。
在组件化之前,我们是在主模块通过硬编码来进行注册,在应用程序中堆叠各个组件的初始化逻辑。
有没有更好的解决方式?解决思路首先,将问题分解摘要:把注册行为进行抽象化,可以把一个类(需要被注册的信息)选择方法函数的入参,那方法函数就可以可以是对注册相关逻辑的实现。
那注册问题可以进一步转化为各模块如何把相关类(需要被注册的信息)转换为方法函数的入参,组件定义方法函数,获取入参来实现注册逻辑。
Aa=newA()Bb=newB()b.shoot(a.get())

文件下载

资源详情

[{"title":"(77个子文件211KB)AutoInject:Android通用的组件自动注册,自动初始化解决方案-源码","children":[{"title":"AutoInject-master","children":[{"title":"gradlew <span style='color:#111;'>4.85KB</span>","children":null,"spread":false},{"title":"settings.gradle <span style='color:#111;'>118B</span>","children":null,"spread":false},{"title":"auto-inject-core","children":[{"title":"src","children":[{"title":"main","children":[{"title":"AndroidManifest.xml <span style='color:#111;'>117B</span>","children":null,"spread":false},{"title":"res","children":[{"title":"values","children":[{"title":"strings.xml <span style='color:#111;'>74B</span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"eastwood","children":[{"title":"common","children":[{"title":"autoinject","children":[{"title":"AutoArrow.java <span style='color:#111;'>267B</span>","children":null,"spread":false},{"title":"IAutoArrow.java <span style='color:#111;'>91B</span>","children":null,"spread":false},{"title":"AutoBowArrow.java <span style='color:#111;'>271B</span>","children":null,"spread":false},{"title":"AutoBow.java <span style='color:#111;'>287B</span>","children":null,"spread":false},{"title":"IAutoBow.java <span style='color:#111;'>97B</span>","children":null,"spread":false},{"title":"IAutoBowArrow.java <span style='color:#111;'>96B</span>","children":null,"spread":false},{"title":"AutoTarget.java <span style='color:#111;'>245B</span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'>7B</span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'>1.93KB</span>","children":null,"spread":false},{"title":"proguard-rules.pro <span style='color:#111;'>751B</span>","children":null,"spread":false}],"spread":true},{"title":"modules","children":[{"title":"moduleC","children":[{"title":"src","children":[{"title":"main","children":[{"title":"AndroidManifest.xml <span style='color:#111;'>329B</span>","children":null,"spread":false},{"title":"res","children":[{"title":"values","children":[{"title":"strings.xml <span style='color:#111;'>70B</span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"eastwood","children":[{"title":"demo","children":[{"title":"module","children":[{"title":"c","children":[{"title":"ModuleCActivity.java <span style='color:#111;'>679B</span>","children":null,"spread":false},{"title":"ModuleCAutoArrow.java <span style='color:#111;'>522B</span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"build.gradle <span style='color:#111;'>839B</span>","children":null,"spread":false},{"title":"proguard-rules.pro <span style='color:#111;'>934B</span>","children":null,"spread":false}],"spread":true},{"title":"moduleB","children":[{"title":"src","children":[{"title":"main","children":[{"title":"AndroidManifest.xml <span style='color:#111;'>329B</span>","children":null,"spread":false},{"title":"res","children":[{"title":"values","children":[{"title":"strings.xml <span style='color:#111;'>70B</span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"eastwood","children":[{"title":"demo","children":[{"title":"module","children":[{"title":"b","children":[{"title":"ModuleBActivity.java <span style='color:#111;'>679B</span>","children":null,"spread":false},{"title":"ModuleBAutoArrow.java <span style='color:#111;'>522B</span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"build.gradle <span style='color:#111;'>839B</span>","children":null,"spread":false},{"title":"proguard-rules.pro <span style='color:#111;'>934B</span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"gradle","children":[{"title":"wrapper","children":[{"title":"gradle-wrapper.properties <span style='color:#111;'>230B</span>","children":null,"spread":false},{"title":"gradle-wrapper.jar <span style='color:#111;'>52.38KB</span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"README.md <span style='color:#111;'>6.56KB</span>","children":null,"spread":false},{"title":"gradlew.bat <span style='color:#111;'>2.26KB</span>","children":null,"spread":false},{"title":"auto-inject-plugin","children":[{"title":"settings.gradle <span style='color:#111;'>34B</span>","children":null,"spread":false},{"title":"src","children":[{"title":"main","children":[{"title":"groovy","children":[{"title":"com","children":[{"title":"eastwood","children":[{"title":"tools","children":[{"title":"plugins","children":[{"title":"autoinject","children":[{"title":"AutoType.groovy <span style='color:#111;'>113B</span>","children":null,"spread":false},{"title":"AutoInjectPlugin.groovy <span style='color:#111;'>796B</span>","children":null,"spread":false},{"title":"AutoClassInfo.groovy <span style='color:#111;'>1.13KB</span>","children":null,"spread":false},{"title":"AutoInjector.groovy <span style='color:#111;'>8.83KB</span>","children":null,"spread":false},{"title":"Logger.groovy <span style='color:#111;'>373B</span>","children":null,"spread":false},{"title":"AutoClassInfoComparator.groovy <span style='color:#111;'>373B</span>","children":null,"spread":false},{"title":"adapter","children":[{"title":"TargetClassMethodAdapter.groovy <span style='color:#111;'>6.62KB</span>","children":null,"spread":false},{"title":"BowArrowClassAdapter.groovy <span style='color:#111;'>6.33KB</span>","children":null,"spread":false},{"title":"OnMethodInjectListener.groovy <span style='color:#111;'>113B</span>","children":null,"spread":false},{"title":"TargetClassAdapter.groovy <span style='color:#111;'>1.15KB</span>","children":null,"spread":false},{"title":"OnAnnotationValueListener.groovy <span style='color:#111;'>140B</span>","children":null,"spread":false},{"title":"AnnotationAdapter.groovy <span style='color:#111;'>809B</span>","children":null,"spread":false}],"spread":false},{"title":"AutoInjectExtension.groovy <span style='color:#111;'>134B</span>","children":null,"spread":false},{"title":"AutoInjectTransform.groovy <span style='color:#111;'>2.47KB</span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true},{"title":"resources","children":[{"title":"META-INF","children":[{"title":"gradle-plugins","children":[{"title":"auto-inject.properties <span style='color:#111;'>75B</span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"build.gradle <span style='color:#111;'>1.48KB</span>","children":null,"spread":false}],"spread":true},{"title":"picture","children":[{"title":"1.png <span style='color:#111;'>43.96KB</span>","children":null,"spread":false}],"spread":true},{"title":"gradle.properties <span style='color:#111;'>730B</span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'>403B</span>","children":null,"spread":false},{"title":"app","children":[{"title":"src","children":[{"title":"main","children":[{"title":"AndroidManifest.xml <span style='color:#111;'>743B</span>","children":null,"spread":false},{"title":"res","children":[{"title":"mipmap-hdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'>2.98KB</span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'>4.91KB</span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'>9.03KB</span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'>15.16KB</span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'>4.46KB</span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'>6.93KB</span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-anydpi-v26","children":[{"title":"ic_launcher.xml <span style='color:#111;'>272B</span>","children":null,"spread":false},{"title":"ic_launcher_round.xml <span style='color:#111;'>272B</span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-mdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'>2.05KB</span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'>2.79KB</span>","children":null,"spread":false}],"spread":false},{"title":"drawable","children":[{"title":"ic_launcher_background.xml <span style='color:#111;'>5.47KB</span>","children":null,"spread":false}],"spread":false},{"title":"layout","children":[{"title":"activity_main.xml <span style='color:#111;'>426B</span>","children":null,"spread":false}],"spread":false},{"title":"drawable-v24","children":[{"title":"ic_launcher_foreground.xml <span style='color:#111;'>1.84KB</span>","children":null,"spread":false}],"spread":false},{"title":"values","children":[{"title":"colors.xml <span style='color:#111;'>208B</span>","children":null,"spread":false},{"title":"strings.xml <span style='color:#111;'>80B</span>","children":null,"spread":false},{"title":"styles.xml <span style='color:#111;'>383B</span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'>6.31KB</span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'>10.43KB</span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"java","children":[{"title":"com","children":[{"title":"eastwood","children":[{"title":"demo","children":[{"title":"ToastAutoBow.java <span style='color:#111;'>611B</span>","children":null,"spread":false},{"title":"App.java <span style='color:#111;'>624B</span>","children":null,"spread":false},{"title":"MainActivity.java <span style='color:#111;'>735B</span>","children":null,"spread":false},{"title":"EventBusAutoBow.java <span style='color:#111;'>596B</span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":".gitignore <span style='color:#111;'>7B</span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'>864B</span>","children":null,"spread":false},{"title":"proguard-rules.pro <span style='color:#111;'>1.13KB</span>","children":null,"spread":false}],"spread":true},{"title":"build.gradle <span style='color:#111;'>597B</span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

免责申明

【好快吧下载】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【好快吧下载】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【好快吧下载】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,8686821#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明