美文网首页
Android组件化开发注意事项

Android组件化开发注意事项

作者: AFinalStone | 来源:发表于2018-09-13 19:05 被阅读0次

新建子模块步骤

本文档主要描述新建子业务模块的步骤,以及开发时的注意事项。

1.新建工程

打开Android Studio(目前只采用该IDE来开发,其他IDE不考虑),点击"File -> New -> New Project...",全新创建一个新的工程,工程名字以及包名根据实际业务来定。

2.新建module

在刚创建好的工程中,点击"File -> New -> New Module... -> Android Library",创建一个新的library module,接下来我们所有的业务代码都将在该module类开发。

注意事项:

  • Module name:以业务名来命名即可;
  • 包名设置:格式为"com.hm.iou." + 模块业务名,注意不要与线上已经有的模块包名重复;

在开发阶段,在工程的app模块里直接采用compile project(...)的方式依赖本模块,把app当成是一个demo工程,在demo工程里写好测试代码,调用本模块的实际业务即可。

3.资源名命名规则

所有资源文件的命名都需要以业务模块名为前缀,注意不要与其他业务模块前缀名冲突。假设我们在开发"登录"相关的业务,业务模块名为"login",则相关资源文件命名例子:

  • layout文件:login_activity_quicklogin.xml、login_activity_register.xml
  • anim文件:login_slide_in.xml
  • mipmap文件:login_btn_submit.png
  • string:<string name="login_submit">提交</string>

包括但不限于以上这些资源文件,所有资源文件的命名都必须遵循该规则,否则可能在集成的时候会被冲突掉。

4.第三方库依赖

所有子业务模块都必须依赖基础业务库,基础业务库包含了一些底层的能力库等,请注意版本号是否有变化:

compile 'com.heima.iou:hmbasebiz:1.0.0'

如果有其他需要使用的依赖库,如第三方依赖库等,并且在其他子业务模块里也有使用的,请确认库的版本号,尽量都保持一致,否则在集成时会发生冲突。

5.业务开发

  1. 业务开发请遵循MVP模式,尽量做到分层明显,可根据实际情况自行选择。
  2. 所有Activity请继承基础模块的BaseActivity,所有Fragment请继承基础模块的BaseFragment。

6.数据存储

  1. 尽量不要使用数据库来存储数据,特殊情况除外。某些ORM框架需要数据库表集中管理,这样不利于实行业务模块组件化。
  2. 使用SharedPreferences时,每个业务模块只管理自己模块需要的数据,SharedPreferences文件名需要通过业务前缀来区分。
  3. 当某些数据需要全局共享时,可以考虑下沉到底层模块。

7.组件生命周期管理

当业务组件需要在应用的Application.onCreate()里进行初始化时。

8.怎么发布本地maven库

前期测试时,请先在本机发布maven库。 在module的根目录下新建一个maven_local.gradle文件:

apply plugin: 'maven'

uploadArchives {

repositories.mavenDeployer {

    pom.version = '1.0.0'

    pom.artifactId = 'hmloginlocal'

    pom.groupId = 'com.heima.iou'

    repository(url: "[file:///Users/hjy/.m2/repository/](file:///Users/hjy/.m2/repository/)")

}

}

  • version:maven库的版本号,初始版本都从1.0.0开始;
  • groupId:maven库的组,内部使用固定为"com.bwton.android";
  • artifactId:maven库的id,格式为"bwt + 业务模块名",为了与远程库区分,本地库请加local后缀;
  • repository:其中"file:///Users/hjy/.m2/repository/"替换成自己本机的gradle缓存目录;

在module的build.gradle里增加发布脚本的引用"apply from: './maven_push.gradle'",然后点击"IDE右侧Gradle -> Gradle projects -> 业务module -> Tasks -> upload -> uploadArchives",最后会生成并上传一个本地的maven库。

9.怎么发布远程maven库

最后发布时,请发布在远程maven服务器上,项目里都采用远程依赖。与发布本地maven库相似,在module的根目录下新建maven_push.gradle文件,然后在module的build.gradle里,将发布本地maven库的脚本切换成"apply from: './maven_push.gradle'"即可。

apply plugin: 'maven'

apply plugin: 'signing'

configurations {

deployerJars

}

repositories {

mavenCentral()

}

uploadArchives {

repositories {

    mavenDeployer {

        pom.version = '1.0.0'

        pom.artifactId = 'hmlogin'

        pom.groupId = 'com.heima.iou'

        snapshotRepository(url: '[http://60.190.227.164:8088/nexus/repository/maven-snapshots/](http://60.190.227.164:8088/nexus/repository/maven-snapshots/)') {

            authentication(userName: '***', password: '***')

        }

        repository(url: '[http://60.190.227.164:8088/nexus/repository/maven-releases/](http://60.190.227.164:8088/nexus/repository/maven-releases/)') {

            authentication(userName: '***', password: '***')

        }

    }

}

}

// type显示指定任务类型或任务, 这里指定要执行Javadoc这个task,这个task在gradle中已经定义

task androidJavadocs(type: Javadoc) {

// 设置源码所在的位置

source = android.sourceSets.main.java.sourceFiles

}

// 生成javadoc.jar

task androidJavadocsJar(type: Jar) {

// 指定文档名称

classifier = 'javadoc'

from androidJavadocs.destinationDir

}

// 生成sources.jar

task androidSourcesJar(type: Jar) {

classifier = 'sources'

from android.sourceSets.main.java.sourceFiles

}

// 产生相关配置文件的任务

artifacts {

archives androidSourcesJar

archives androidJavadocsJar

}

10.文档要求

  1. 业务模块接入说明文档
  2. gradle依赖关系图
  3. 业务关系图

相关文章

  • Android 组件化开发实践

    Android组件化开发实践(一):为什么要进行组件化开发?Android组件化开发实践(二):组件化架构设计An...

  • 聊聊组件化开发

    如果你在京东图书频道搜索 组件化 或者 组件化开发,显示的几乎都是 Android组件化开发 或者 Android...

  • Gradle实战——组件化的gradle build优化

    组件化gradle build优化 关于组件化,大家可以看我之前的文章,Android组件化开发实战[https:...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发 就是将一个app分成多个模块,每个模块都是一...

  • android 收藏的一些好文

    1.常用git命令清单 2.Android组件化、模块化开发 3.Android 组件化案例 4. 5.

  • 推荐文章

    JavaJava中有关Null的9件事 AndroidAndroid组件化和插件化开发Android 组件化 ——...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个...

  • 「锤子」使用♂手册

    What is a Chuizi 「锤子」是一个Android组件化快速开发框架 特征 组件化开发通用框架, 高度...

  • android 组件化

    Android组件化项目地址:Android组件化项目AndroidModulePattern Android组件...

  • 全面组件化---DDComponentForAndroid分析(

    前言 关于组件化,其实从毕业到现在都在使用组件化的开发方式。因为公司有多个android开发人员,平时需要协同开发...

网友评论

      本文标题:Android组件化开发注意事项

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