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的使用步骤》

关于我

私人博客

技术微信公众号:infree6 或者直接扫码

Andorid Studio 模块化开发相关配置的更多相关文章

  1. Google Android Studio Kotlin 开发环境配置

    Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对Kotlin的重视,本文就介绍一下Android Studio下的Kot ...

  2. Visual studio 通用开发环境配置:SDL,FFMPEG为例

    引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...

  3. Visual Studio 2012 开发环境配置+控制台工具+桌面应用程序

    一.界面布局视图设置 1.窗口的布局.控制台窗口运行恢复到开发环境的设置方法 也可以保存好设好的个性化设置,导入设置: 2.视图|服务器资源管理器(sever explorer) 可以访问数据源.服务 ...

  4. OpenGL超级宝典visual studio 2013开发环境配置,GLTools

    做三维重建需要用到OpenGL,开始看<OpenGL超级宝典>,新手第一步配置环境就折腾了一天,记录下环境的配置过程. <超级宝典>中的例子使用了GLEW,freeglut以及 ...

  5. AngularJS开发相关配置

    安装步骤: 1. Node.js,下载地址:https://nodejs.org/en/ 2. Git 下载地址:https://git-scm.com/download/ 3. Python (需为 ...

  6. 记webpack下进行普通模块化开发基础配置(自动打包生成html、多入口多页面)

    写本记时(2018-06-25)的各版本 "webpack": "^4.6.0"  //可直接使用4x以上的开发模式,刷新很快 "webpack-de ...

  7. Visual Studio OpenCV 开发环境配置

    因为VS配置OpenCV好多新手都很难一次配置成功,而且OpenCV库每新建一个项目都要配置很是麻烦,所以今天就给大家介绍一个“一劳永逸”的方法. 注:理论上只要VS和OpenCV是版本兼容的,该方法 ...

  8. Android Studio开发环境配置以及相关说明

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下在开发的时候使用的Android Studio开发环境版本以及相关注意事项. 一般来讲,每隔一段时间就要检查下Andr ...

  9. Android Studio C/C++开发环境配置

    Android Studio C/C++开发环境配置  我的开发环境 : Win 10 + android studio 1.5   一, 安装NDK 开发环境: 1.  Settings -> ...

随机推荐

  1. [CSS]关于z-index与position的一次奇异经历

    前言: 前不久,同事S遇到了一个关于position和z-index的问题. 他折腾了一天没搞定,群发了邮件寻求帮助, 我一开始以为很简单,就主动说帮忙,简单尝试之后,才发现貌似没那么简单. 问题主要 ...

  2. 学习python第三天单行函数

    1.去重:distinct关键字 需求:查看公司一共有多少部门? select department_id from employees;此代码会查出107条记录,存在部门重复的问题! select ...

  3. 20165318 2017-2018-2 《Java程序设计》第六周学习总结

    20165318 2017-2018-2 <Java程序设计>第六周学习总结 教材内容学习总结 第八章 常用实用类 1.String类 String类用来处理字符序列,在java.lang ...

  4. Hadoop学习之路(十三)MapReduce的初识

    MapReduce是什么 首先让我们来重温一下 hadoop 的四大组件: HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN:hadoop 的资源调度系统 Common:以上三大 ...

  5. 20145203 盖泽双《Java程序设计》第一周的学习总结

    20145203 盖泽双<Java程序设计>第一周学习总结 教材学习内容总结 第一章 1.Java是一门完全面向对象,安全可靠,与平台无关的编程语言. 2.Java现由Java SE.Ja ...

  6. js之radio应用实例

    radio和checkbox还有select,可谓是前后端常用三剑客啊!特别是checkbox和select,关于这两个今天不讲,因为在下面这几篇文章,我已经比较详细的讲解了. SpringMVC之a ...

  7. nginx学习要点记录

    IO多路复用: 1.轻量 2.cpu亲和性:把CPU核心和nginx工作进程绑定,把每个worker进程固定在一个CPU上执行,减少切换cpu的cache miss,获得更好的性能 3.IO多路复用e ...

  8. ping不通linux服务器排查

    很久没启动linux了,今天打开试了下 ssh  root@192.168.229.128 ping 一直超时 老规矩挨着来排查 检查网络设备器改为Net 模式 重启网络服务 service netw ...

  9. RegExp exec有记忆性的问题

    当 RegExpObject 是作为一个变量时时.每次调用完exec()后.它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string.当 exec() 找 ...

  10. 使用AndroidStudio编译NDK的方法及错误解决方式

    參考资料: [android ndk]macos环境下Android Studio中利用gradle编译jni模块及配置:http://demo.netfoucs.com/ashqal/article ...