以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。

[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优势在于





可以先看Android 建立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的模块编译基础,之后我去写一个源码分析的相关文章,至于会踩到什么坑,我会在那边文章里面具体分析。

    这个系列的相关文章,下一节的内容先保密罗。

    敬请期待!!!