Andorid Studio 模块化开发相关配置

news/2024/5/20 2:17:22 标签: gradle, android studio, android

Andorid Studio 模块化开发相关配置

下面以宿主APP模块和Uer_Module模块为例:

第一步:在项目根目录gradle.properties配置文件中添加如下代码

isNeedUserModule=true
#isNeedUserModule=false

第二步 在user_module中的build.gradle文件中加入了如下代码来控制此库是library还是APP:

if (!isNeedUserModule.toBoolean()) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}

第三步 在user_module中的build.gradle文件中加入了如下代码来指定AndroidManifest.xml文件路径:

android{
 sourceSets {
    main {
        if (!isNeedUserModule.toBoolean()) {
            manifest.srcFile 'src/main/app/AndroidManifest.xml'
        } else {
            manifest.srcFile 'src/main/module/AndroidManifest.xml'
        }
    }
 
}
}

其中 app中的AndroidManifest 内容如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.finddreams.module_user">
 
<application>
    <activity
        android:name=".LoginActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

module目录下的AndroidManifest 如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.finddreams.module_user" >
<application>
    <activity android:name=".LoginActivity"></activity>
</application>
 
</manifest>

第四步 在user_module中的build.gradle文件中加入了如下代码来为该模块的下的资源自动添加前缀 避免模块之间资源命名重复:

resourcePrefix "module_user"

第五步 在宿主app中的build.gradle文件中加入了如下代码来动态引入user_module模块

  if (isNeedUserModule.toBoolean()) {
compile project(':user_module')
}

第六步 配置页面跳转路由

目前成熟的开源路由框架有:

美团的WMRouter

阿里的ARouter

可参考:《阿里路由框架ARouter的使用步骤》


http://www.niftyadmin.cn/n/314848.html

相关文章

DNS域名解析,以及A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR说明

温故知新&#xff0c;最近网上开到相关文章&#xff0c;这里终结记录一下&#xff0c;供大家参考。 目录 1.A记录 2、CNAME&#xff1a; 两种域名解析方式 4、NS记录 5、TXT记录&#xff1a; 6、AAAA记录&#xff1a; 7、SRV记录&#xff1a; 8、SOA记录&#xff1a; …

15 种TypeScript最常用的实用程序类型

我们在使用 TypeScript 的过程中&#xff0c;我们是面向类型编程的&#xff0c;为了满足不同的工作场景&#xff0c;我们需要对已知类型进行改造。 为了方便 TypeScript 用户&#xff0c;TypeScript 开发团队为我们提供了许多有用的内置实用程序类型。 通过这些实用类型&…

自从外包三年半,程序员人废了一半

如果不是女朋友和我提分手&#xff0c;我估计现在还没醒悟。大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了3年多的CRUD&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企…

【计算机视觉 | ViT-G】谷歌大脑提出 ViT-G:缩放视觉 Transformer,高达 90.45% 准确率

文章目录 一、简介二、如何做到的&#xff1f;三、扩展数据四、「head」 的解耦权重衰减五、通过移除 [class] token 节省内存六、实验结果6.1 将计算、模型和数据一起扩展6.2 ViT-G/14 结果 论文地址为&#xff1a; https://arxiv.org/pdf/2106.04560.pdf一、简介 视觉 Trans…

今天去面一个点工,HR要我会数据库,Linux还有Python,这合理吗?

软件测试出路在哪&#xff1f; 业务编程&#xff01;&#xff01; 1、软件测试的变化趋势 变化趋势1&#xff1a; 功能测试是核心&#xff0c;但是价值降低 目前测试这个行业&#xff0c;还是有大量的点工。但是行业的进步&#xff0c;技术的创新&#xff0c;导致了企业的需求…

U盘分区合并的方法有哪些?

大多数用户在硬盘的使用中会进行分区操作&#xff0c;同时为了方便整理&#xff0c;部分用户也会选择给自己的U盘分区&#xff0c;可是在后续操作中发现U盘分区没有什么用处&#xff0c;因此就想要重新将其合并&#xff0c;但要把分区重新合并没那么容易&#xff0c;那么U盘被分…

linux的调试打印函数printk

https://xuesong.blog.csdn.net/article/details/109522945?spm1001.2014.3001.5502 printk相当于printf的孪生姐妹。printf运行在用户态的&#xff0c;printk则运行在内核态。 printk是在内核中运行的向控制台输出显示的函数&#xff0c;Linux内核首先在内核空间分配一个静态…

Fidder 抓iPhone Andorra包 教程 解决证书过期问题

1. 下载Fidder 链接&#xff1a;https://pan.baidu.com/s/12xgEU8YyE-CfWMbPIWqWMw?pwdfhxh 2.设置Fidder 3. 手机设置代理并安装证书 首先 windows r 键 输入cmd 输入 ipconfig 查看本机的IPv4地址 然后设置手机网络的HTTP代理。之后在iPhone上用Safari访问 ipv4地址:888…