美文网首页
android组件化之旅(二)

android组件化之旅(二)

作者: 宁静世界 | 来源:发表于2018-06-10 11:34 被阅读0次

在第一篇中你已经拥有了一个正常的项目,下面我们开始模块化

开始组件化

(1),创建一个用来切换组件化和集成化的开关

a,找到你当前项目下的gradle.properties文件打开
b,添加一个键值对isModule=true在gradle.properties中 true代表模块化,false则是关闭

(2),通过开关控制组件在库与工程之间切换

同时还需要一起切换AndroidManifest.xml文件,因为在组件化后你的你的组件就能直接运行了,所以需要初始化和提供LAUNCHER入口


image.png

manifest.srcFile 'src/main/AndroidManifest.xml' manifest.srcFile函数用来指定AndroidManifest.xml识别的路径,这个时候你需要单独创建一个AndroidManifest.xml文件因为需要单独启动


image.png

MyApplication用来初始化一些依赖库,不需要可以不添加,正常情况是需要的(main,news组件都是同样配置)

需要之注意的是你的app工程需要添加一个判断,否则会编译不通过


image.png
(3),去除login,main,news组件中的重复依赖并只依赖common库,将app中的资源移动common库,这个时候你的build.gradle应该是这样的

[图片上传中...(image.png-f96aa4-1528597215671-0)]

a,去除重复依赖

APP工程

image.png

Login组件

image.png

Main组件

image.png

News组件

image.png
b,将app中的资源移动common库
image.png image.png image.png

这个时候其实你的组件化已经基本完成了,你的Run/Debug configurations是这样的,每个组件都可以单独运行

image.png image.png
(4),界面跳转选择一个路由框架,我这里选用比较火的阿里的arouter框架
a,在common库中添加
api "com.alibaba:arouter-api:1.3.1"
image.png
a,分别在login,news,main组件中添加插件并配置路由
 javaCompileOptions {
            annotationProcessorOptions {
                arguments = [moduleName: project.getName()]
            }
        }
    annotationProcessor "com.alibaba:arouter-compiler:1.1.4"
  @Route(path = "/login/loginActivity")
image.png image.png

切换到集成模式测试


image.png jump.gif

OK到这里你的项目已经完全组件化了,好了我继续搬砖去

相关文章

网友评论

      本文标题:android组件化之旅(二)

      本文链接:https://www.haomeiwen.com/subject/vtobdftx.html