Open ouyuan2019 opened 6 years ago
来吧,群主生拉硬拽的把我拖上了前进的列车,并且群主还是老司机,车门已经焊死,只能继续学习前进了
向大佬致敬
公司业务越来越多,之前的管理方式已经不行了。看来组件化要多多了解了,向大佬致敬
來朝聖大佬,從入門到現在的組件化都是看大佬的demo跟文章。
@Samuel12316 ArmsComponent 再添神器, 入门 ArmsComponent 新手甚至可以不看文章, 一键搭建 ArmsComponent 快速组件化方案的整体组件架构, 让新手也可以一秒开始组件化项目, 开发神器, 让您一秒起飞, 避免组件化从入门到放弃!
开源,分享,促进行业发展~
请问下,关于跨组件通信,作者有没有计划在arouter外做关于多个不同组件apk的通信,例如Aidl,Socket等
@LatoAndroidw 我想你想问的是跨进程的组件通信方式吧,暂时没有考虑,关于通信我都把它归为属于路由框架的功能,在文档中我也明确指出,如果 ARouter 不能满足需求,可以自行切换为其他可以满足需求的路由框架,框架并没有规定必须使用 ARouter,专业是的事交给专业的人去做,这方面我并不专业,而且也有很多优秀的框架存在,所以关于模块间的路由和通信我更倾向于用更专业的三方库,ArmsComponent 的优势其实是在于基于 Arms 基础库而搭建起的规范,所以我出了一键生成组件的模板,后续也会围绕着这方面来迭代,而市面上大部分的组件化方案的核心点都是基于路由框架而搭建,比如 CC,所以你有这方面疑问我也理解
最后给你推荐个前段时间爱奇艺开源的跨进程组件通信框架 Andromeda
@m122469119 debug 期间,每个组件都是独立的 app,拥有独立的虚拟机,打包成单独的 apk, 进行单独的调试,你想让多个 apk 之间怎么组合?这个不是插件化方案,也不是进程间通讯框架,只可能在宿主中根据自己的需求在多个组件中仅挑选出自己需要的某几个组件进行依赖,然后一起打包成一个 apk,如果这样的话根本不需要体现到 Demo 中,仅仅是涉及到依赖组件这一行代码,自己就可以举一反三
@m122469119 你说的意思,其实将直播组件作为宿主,不需要单独建宿主,你自己改 build.gradle 让这个组件成为宿主依赖其他组件就可以了, 组件化的最终状态, 每个组件都会被打包成 aar, 上传至私有 maven, 必须通过远程依赖库的方式才可以使用,所以在 release 阶段还真必须要有宿主将它们依赖组合在一起才能使用,在 debug 阶段其实也是一样的,还是无法离开宿主,必须要有宿主将组件组合成一个完整的 app,只是你可以换个思考方式,在本地自己改 build.gradle 让组件自己可以成为宿主,去依赖别的组件,宿主可变,这就是可行的解决方案,可以解决你的问题
总之壳必须有,但你可以让这个壳可以灵活变换而达到你的需求,我猜这应该也是你想要的
我可以提供个思路,将我项目中宿主的 build.gradle 中, 与宿主有关的代码打包成一个单独的 build.gradle, 默认所有 Module 都是组件,哪个 Module 需要变成宿主,apply from 这个单独的 build.gradle, 这个 Module 就立即成为宿主了,还可以把这个 apply from 的过程,弄成根据 gradle.properties 的一个变量自动化,填写那个组件名,哪个组件就是宿主
现在弄一些其他的库比较忙,暂时只能提供思路,后期可能会将这些落地
爱奇艺开源的跨进程组件通信框架 Andromeda
方法数超的解决方案有好的吗,如果在app中加的话,其他moduel单独运行的时候也会报方法数超的问题。如果在moduel中加入 multiDexEnabled = true这类的解决方案的话,会报异常。
请问组件化如何添加混淆?添加混淆后,注入好像失效了
你好,之前接入时遇到一个问题:在自定义View中触发了System.err的错误,但是框架捕获异常后按照Verbose打印到控制台,检查了好几次才发现。建议将System.err的异常打印为设置为error
这个日志不是框架打印的
不同版本多出好多相同的库?这个怎么解决
@zhangcongmin 目前 MVPArms v2.4.1 使用的 Support 包是 v27.1.1,但 ArmsComponent 却将 Support 包更新为了 v28.0.0,这段时间 MVPArms 会更新新版本,到时候就会统一使用 v28.0.0
大神你好!我对组件化的理解是我们玩的棋牌游戏(或者宝宝巴士)。进app就是登陆和各种游戏菜单(比如有斗地主、麻将、斗牛等),这个主界面就是壳工程,点斗地主进入的是一个module,这个module是可以单独编译成一个斗地主apk的,也可以作为一个library和其他麻将等编译成一个聚合apk。 可是我想把我游戏盒子项目组件化,可是我的每一个模块是一个fragment,也就是类似微信的结构,通过底部导航来切换四个fragment,请问怎么组件化,fragment必须依赖activity啊,怎么分离?
由于 ArmsComponent 在 组件单独运行时 和 组件集成宿主时使用了两个不同的 Manifest,所以在组件单独运行时,必须要有一个专门用于测试的宿主 Activity,用于你这个组件的 Fragment 依赖,这个宿主 Activity 只在 组件单独运行时 的 Manifest 中声明,在组件集成宿主时 的 Manifest 中不需要声明也不需要打包进去,这个 宿主 Activity 只用于测试,这时你这个组件就可以单独运行了
当集成宿主时,通过 ARouter 将这个组件的 Fragment 暴露给其他组件或宿主并依附到需要的 Activity 下即可,思路是这样,具体业务代码自己完成把
大佬你好,什么时候出个kotlin代码的框架呢?
@LanJD 目前没这个想法
@JessYanCoding 亲,targetSdkVersion为28的话要注意network_security_config这个问题啊,我用模拟器不加这个访问不了接口
@hqye 感谢提醒,最近比较忙,能否把你已经配置完成的 network_security_config 贴出来,如果能将代码 PR 到本仓库那就最好不过了
@JessYanCoding 我才看到,(●'◡'●)你都已经改好了
大佬,组件化的混淆应该怎么配置,是只需要在宿主层配置proguard-rules.pro,还是每个module都需要配置?
@z2700589 宿主,你就把 Module 当成三方库
如果您对 ArmsComponent 和 JessYan 有什么好的建议, 都可以在下面留言以及讨论