[Android]如何做一个崩溃率少于千分之三噶应用app(9)-Small插件化
2017-04-26 09:23
597 查看
以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。
[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地址
![](http://upload-images.jianshu.io/upload_images/692087-06ba720119afd1ac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Small优势在于
![](http://upload-images.jianshu.io/upload_images/692087-96c1532ae5d19ae7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以先看Android 建立Small工程
(1)注意的地方建立module的时候,一定要注意lib和web、app命名是不同的。
![](http://upload-images.jianshu.io/upload_images/692087-6ad2a107a11819d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(2)模板默认一个main的入口,需要自己再建立一个App.main的module,App.main的module移植自己的代码相当于自己原app的入口。而本来模板生成的app 模块,可以不用做任何操作。
![](http://upload-images.jianshu.io/upload_images/692087-ecc8241a4fe69cca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(3)如果是需要添加成多个的Tab的Fragment,可以使用Small的接口Small.createObject
![](http://upload-images.jianshu.io/upload_images/692087-029d9753df174e2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果有看过我第6节动态创建的内容,可以明白,我是将每一个Fragment隔离为一个module的。
(4)因为我是将每个Fragment都定义为lib的module,所以命名需要遵从Small的规范,需要命名为lib.xxx(请注意一定要遵从命名规范)
![](http://upload-images.jianshu.io/upload_images/692087-77d9fadfa2d03a4c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
app的asset里面bundle.json添加声明
![](http://upload-images.jianshu.io/upload_images/692087-9d4b3daa03d94635.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以看到sUris的需要重写lib的地址
![](http://upload-images.jianshu.io/upload_images/692087-029d9753df174e2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
createObject是通过命名查询创建的
![](http://upload-images.jianshu.io/upload_images/692087-b3e27af6048b85e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(5)关于Activity之间的跳转
如果是保内,直接可以使用startActivity
如果是包之间的跳转,需要使用Small的接口
![](http://upload-images.jianshu.io/upload_images/692087-1de9433092306c9b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果跳转网页,也是需要使用Small的接口
![](http://upload-images.jianshu.io/upload_images/692087-c140d1b4d70ebd95.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(6)然后我们需要完成编译
使用./gradlew buildLib编译lib的module
使用./gradlew buildBundle编译一般的module
请注意,需要编译的bundle一定要在bundle.json里面声明
![](http://upload-images.jianshu.io/upload_images/692087-9d4b3daa03d94635.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(7)编译安装app这个module即可在手机上运行
这一节就介绍到这里。
完成了Small的模块编译基础,之后我去写一个源码分析的相关文章,至于会踩到什么坑,我会在那边文章里面具体分析。
这个系列的相关文章,下一节的内容先保密罗。
敬请期待!!!
文/CangWang(简书作者)
原文链接:http://www.jianshu.com/p/4771114265c8
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
转自:http://blog.csdn.net/a214024475/article/details/53157987
[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地址
![](http://upload-images.jianshu.io/upload_images/692087-06ba720119afd1ac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Small优势在于
![](http://upload-images.jianshu.io/upload_images/692087-96c1532ae5d19ae7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以先看Android 建立Small工程
(1)注意的地方建立module的时候,一定要注意lib和web、app命名是不同的。
![](http://upload-images.jianshu.io/upload_images/692087-6ad2a107a11819d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(2)模板默认一个main的入口,需要自己再建立一个App.main的module,App.main的module移植自己的代码相当于自己原app的入口。而本来模板生成的app 模块,可以不用做任何操作。
![](http://upload-images.jianshu.io/upload_images/692087-ecc8241a4fe69cca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(3)如果是需要添加成多个的Tab的Fragment,可以使用Small的接口Small.createObject
![](http://upload-images.jianshu.io/upload_images/692087-029d9753df174e2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果有看过我第6节动态创建的内容,可以明白,我是将每一个Fragment隔离为一个module的。
(4)因为我是将每个Fragment都定义为lib的module,所以命名需要遵从Small的规范,需要命名为lib.xxx(请注意一定要遵从命名规范)
![](http://upload-images.jianshu.io/upload_images/692087-77d9fadfa2d03a4c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
app的asset里面bundle.json添加声明
![](http://upload-images.jianshu.io/upload_images/692087-9d4b3daa03d94635.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
可以看到sUris的需要重写lib的地址
![](http://upload-images.jianshu.io/upload_images/692087-029d9753df174e2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
createObject是通过命名查询创建的
![](http://upload-images.jianshu.io/upload_images/692087-b3e27af6048b85e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(5)关于Activity之间的跳转
如果是保内,直接可以使用startActivity
如果是包之间的跳转,需要使用Small的接口
![](http://upload-images.jianshu.io/upload_images/692087-1de9433092306c9b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果跳转网页,也是需要使用Small的接口
![](http://upload-images.jianshu.io/upload_images/692087-c140d1b4d70ebd95.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(6)然后我们需要完成编译
使用./gradlew buildLib编译lib的module
使用./gradlew buildBundle编译一般的module
请注意,需要编译的bundle一定要在bundle.json里面声明
![](http://upload-images.jianshu.io/upload_images/692087-9d4b3daa03d94635.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(7)编译安装app这个module即可在手机上运行
这一节就介绍到这里。
完成了Small的模块编译基础,之后我去写一个源码分析的相关文章,至于会踩到什么坑,我会在那边文章里面具体分析。
这个系列的相关文章,下一节的内容先保密罗。
敬请期待!!!
文/CangWang(简书作者)
原文链接:http://www.jianshu.com/p/4771114265c8
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
转自:http://blog.csdn.net/a214024475/article/details/53157987
相关文章推荐
- [Android]如何做一个崩溃率少于千分之三噶应用app(9)-Small插件化
- [Android]如何做一个崩溃率少于千分之三噶应用app(9)-Small插件化
- [Android]如何做一个崩溃率少于千分之三噶应用app(22)-组件化路由跳转
- [Android]如何做一个崩溃率少于千分之三噶应用app(8)-多渠道模块
- [Android]如何做一个崩溃率少于千分之三噶应用app(23)-组件化&模块化&插件化演进
- [Android]如何做一个崩溃率少于千分之三噶应用app(14)-Fragment分发module架构
- [Android]如何做一个崩溃率少于千分之三噶应用app(21)-组件化数据分享
- [Android]如何做一个崩溃率少于千分之三噶应用app(10)-ModuleBus交互
- [Android]如何做一个崩溃率少于千分之三噶应用app(15)-View分发module架构
- [Android]如何做一个崩溃率少于千分之三噶应用app(13)-Activity分发功能module架构
- [Android]如何做一个崩溃率少于千分之三噶应用app(14)-Fragment分发module架构
- [Android]如何做一个崩溃率少于千分之三噶应用app(16)-Application组件化
- [Android]如何做一个崩溃率少于千分之三噶应用app(18)-组件化与插件化优化
- [Android]如何做一个崩溃率少于千分之三噶应用app(15)-View分发module架构
- [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
- [Android]如何做一个崩溃率少于千分之三噶应用app(11)-Gradle组件化优化
- [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表
- [Android]如何做一个崩溃率少于千分之三噶应用app(13)-Activity分发功能module架构
- [Android]如何做一个崩溃率少于千分之三噶应用app(19)-重新认识AndroidManifest
- [Android]如何做一个崩溃率少于千分之三噶应用app(24)--组件化的Kotlin适配