以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。
[Android]如何做一个崩溃率少于千分之三噶应用app(1)-module工程架构
[Android]如何做一个崩溃率少于千分之三噶应用app(2)-完全退出App
[Android]如何做一个崩溃率少于千分之三噶应用app(3)-极速编译
[Android]如何做一个崩溃率少于千分之三噶应用app(4)-极速编译*续
[Android]如何做一个崩溃率少于千分之三噶应用app(5)-极速增量编译
[Android]如何做一个崩溃率少于千分之三噶应用app(6)-动态创建
[Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
[Android]如何做一个崩溃率少于千分之三噶应用app(8)-多渠道模块
其实开发的初衷并没想过要使用Small插件化
但是往后面开发功能模块迭代越来越臃肿后,期望用户每次升级这么大容量的app是不科学的。
然后考虑到,我们的工程架构其实有点特殊,并不像其他单一module架构那样。
然后我们发现了Small新型的这个插件化方式,跟我们工程架构不谋而合Small地址
Small优势在于
(1)注意的地方建立module的时候,一定要注意lib和web、app命名是不同的。
(2)模板默认一个main的入口,需要自己再建立一个App.main的module,App.main的module移植自己的代码相当于自己原app的入口。而本来模板生成的app 模块,可以不用做任何操作。
(3)如果是需要添加成多个的Tab的Fragment,可以使用Small的接口Small.createObject
如果有看过我第6节动态创建的内容,可以明白,我是将每一个Fragment隔离为一个module的。
(4)因为我是将每个Fragment都定义为lib的module,所以命名需要遵从Small的规范,需要命名为lib.xxx(请注意一定要遵从命名规范)
app的asset里面bundle.json添加声明
可以看到sUris的需要重写lib的地址
createObject是通过命名查询创建的
(5)关于Activity之间的跳转
如果是保内,直接可以使用startActivity
如果是包之间的跳转,需要使用Small的接口
如果跳转网页,也是需要使用Small的接口
(6)然后我们需要完成编译
使用./gradlew buildLib编译lib的module
使用./gradlew buildBundle编译一般的module
请注意,需要编译的bundle一定要在bundle.json里面声明
(7)编译安装app这个module即可在手机上运行
这一节就介绍到这里。
完成了Small的模块编译基础,之后我去写一个源码分析的相关文章,至于会踩到什么坑,我会在那边文章里面具体分析。
这个系列的相关文章,下一节的内容先保密罗。
敬请期待!!!