第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Android組件化初識(shí)

標(biāo)簽:
Android

组件化初识

为什么使用组件化

对于Android插件化与组件化,都各有千秋,我之所以选择模组件化,完全因为插件化有点流氓了,各种热插拔,完全不把用户当人,埋了点,想给你什么功能就给你什么功能(其实插件对于开发者维护成本更高,搭建成本也就更高,所以还是先学习组件化)


组件化的优点

  1. 加快业务迭代速度,各个业务模块组件更加独立,不再出现业务耦合情况;

  2. 稳定的公共模块采用依赖库方式,提供给各个业务线使用,减少重复开发和维护工作量;

  3. 迭代频繁的业务模块采用组件方式,各业务研发可以互不干扰、提升协作效率,并控制产品质量;

  4. 为新业务随时集成提供了基础,所有业务可上可下,灵活多变;

  5. 降低团队成员熟悉项目的成本,降低项目的维护难度;


封装

  1. 项目架构

因为项目使用的是kotlin进行开发,所以uirouter和widegt、dblib需要依赖baselib,widegt是控件库,可以统一开发app开发中的view,需要用到资源文件,所以需要依赖res库。commonlib是基础库,集成uirouter、widegt、dblib。放一些base文件、联网封装、以及utils(原谅我uml图不会画) 

5b827f4400014a1c04220435.jpg

2. 配置config.gradle 
1. 在项目中新建config.gradle 
2. 配置变量

ext{
    isBuildApp = false //false:作为Lib组件存在, true:作为application存在
}
  1. 业务库gradle配置 

    1. 配置lib与Application的转化

    2. manifest的依赖,因为lib与Application所使用的manifest不同,需要区分对待

//lib与Application的转化if (rootProject.ext.isBuildApp) {
    apply plugin: 'com.android.application'} else {
    apply plugin: 'com.android.library'}    //配置不同的manifest
 sourceSets {
        main {            if (rootProject.ext.isBuildApp) {
                manifest.srcFile 'src/main/debug/AndroidManifest.xml'
            } else {
                manifest.srcFile 'src/main/release/AndroidManifest.xml'
            }
        }
    }
  1. app的gradle配置

    if (rootProject.ext.isBuildApp) {
        implementation project(':commonlib')
    } else {
        implementation project(':text')
    }
  1. 路由搭建:

因为业务库之间相互依赖关系不大,界面调整时需要使用路由,在这里我选择ARouter(阿里出品,必属精品)。当然不使用路由也可以,去配置scheme的方式启动也可以,但是这种容易出问题。因此使用uirouter进行路由表的维护。使用ARouter的注意事项,每一个业务库和app都要去依赖arouter-compiler,否则无法在该库中生成路由表。


使用

在basemodule进行修改,新建app与业务库,依赖业务库就可以。每个业务库独立开发,不相互影响,不会出现mvp、mvc、mvvm架构冲突,想怎么写就怎么写。需要依赖的第三方就放在commonlib中,大家都可以使用


使用时注意事项

application

网上有反射和使用baseApp两种方式,我这里使用的是baseApp这种方式,使用时只需要配置到Application中的manif就行 

组件开发和打包

开发组件时只用让isBuildApp = true,就可以让组件独立运行,打relese包时需要让isBuildApp = false


FileProvider

现在7.0新出的FileProvider问题相信大家都可以理解了,很多时候都需要用到,因此只要我将它放在了commonlib中,在项目中使用时需要修改该authorities就可以了。 

config.gradle配置

config.gradle不仅可以配置参数,还可以统一配置android和依赖,依赖放在这里可以方便我们去查看维护,很方便

原文链接:http://www.apkbus.com/blog-822715-76960.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消