Android 组件化实战,2024年最新android手机开发论文

然后在每个Module中对应修改成如下代码:

android {

compileSdkVersion rootProject.ext.compileSdkVersion

buildToolsVersion rootProject.ext.buildToolsVersion

defaultConfig {

applicationId “com.demo.myapplication”

minSdkVersion rootProject.ext.minSdkVersion

targetSdkVersion rootProject.ext.targetSdkVersion

versionCode rootProject.ext.versionCode

versionName rootProject.ext.versionName

testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’

}

}

}

dependencies {

implementation fileTree(dir: “libs”, include: [“*.jar”])

implementation “com.android.support:appcompat-v7:$rootProject.ext.supportLibVersion”

implementation “com.android.support.constraint:constraint-layout:$rootProject.ext.constraintLibVersion” // 注意这里是双引号

}

3. 设置模块是否可以单独运行

在根目录的gradle.properties末尾添加

是否需要单独编译, 是否是application,true为application,false为library

isApplicationModule1=false

isApplicationModule2=false

isApplicationModule3=false

然后在module中的build.gradle中改变 application 还是 library

(1) 区分 application 还是 library

if (isApplicationModule1.toBoolean()){

apply plugin: ‘com.android.application’

}else{

apply plugin: ‘com.android.library’

}

(2) 增加 applicationId

defaultConfig {

if (isApplicationModule1.toBoolean()){

applicationId “com.demo.myapplication.module1”

}

}

(3) AndroidManifest 启动入口

sourceSets {

main {

if (isApplicationModule1.toBoolean()) {

manifest.srcFile ‘src/main/module/AndroidManifest.xml’

} else {

manifest.srcFile ‘src/main/AndroidManifest.xml’

}

}

}

4. 在主 app module 中引入其他Module

要注意的一点是每个组件如果是独立运行的话,那它是不能作为依赖库供app模块使用的,所以在app模块下的build.gradle文件中需要进行依赖判断

if (!isApplicationModule1.toBoolean()){

implementation project(‘:module1’)

}

if (!isApplicationModule2.toBoolean()){

implementation project(‘:module2’)

}

if (!isApplicationModule3.toBoolean()){

implementation project(‘:module3’)

}

implementation project(‘:common’)

在模块 Module中引入 common module

implementation project(‘:common’)

至此通过修改配置,每个Module就可以单独运行。

5. 引入Arouter

由于需要模块之间的解耦,平时的Intent跳转需要导包,而Arouter引入之后,就能在跳转的同时不用导包。

集成Arouter

(1) 引入依赖

common中添加

api(“com.alibaba:arouter-api:$rootProject.ext.arouterLibVersion”) { exclude group: ‘com.android.support’ }

annotationProcessor “com.alibaba:arouter-compiler:$rootProject.ext.arouterAnnotationLibVersion”

在每个Module下都需要添加注解

annotationProcessor “com.alibaba:arouter-compiler:$rootProject.ext.arouterAnnotationLibVersion”

(2) 每个引入Arouter的Module的build.gradle中加入下面代码

defaultConfig {

//arouter

javaCompileOptions {

annotationProcessorOptions {

arguments = [moduleName: project.getName()]

}

}

}

(3) 在Application中进行初始化

if (isDebug) {

ARouter.openLog();

ARouter.openDebug();

}

ARouter.init(this);

(4)使用Arouter跳转

定义路由

@Route(path = “/app/main”)

public class MainActivity extends AppCompatActivity {

}

跳转路由

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

学习路线+知识梳理

花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。

这次就分享到这里吧,下篇见

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-nmgCa4Lh-1712608304681)]

学习路线+知识梳理

花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。

这次就分享到这里吧,下篇见

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-ZxrSMVCQ-1712608304682)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值