组件化配置
2020-01-15 12:08
267 查看
文章目录
- 组件化介绍
- 配置4步骤
- 步骤1 :创建config.gradle
- 步骤2 :在项目的Gradle中引用,创建的config.gradle
- 步骤3 :module创建AndroidManifext和Application
- 步骤4 :module的build.gradle配置
组件化介绍
让lib_module能独立运行(通常创建的Android Library应该都是“lib”+”_”+“特效” )
配置4步骤
步骤1 :创建config.gradle
直接右键项目创建File,命名config.gradle
说明:既然使用到组件化,那么随着使用的深入,后面也会需要统一管理。
下面代码:是否组件化、使用的sdk配置版本、单独模块的appID
ext{ //false 集成模式 //true 组件模式(可独立运行) isComponent =true androidConfig=[ compileSdkVersion:28, minSdkVersion:15, targetSdkVersion:28, versionCode:1, versionName:"1.0" ] appIdConfig=[ app :"com.zzn.app", moudle1:"com.zzn.moudle1" ] supportLibrary = "28.0.0" dependencies = [ appcompatv7:"com.android.support:appcompat-v7:${supportLibrary}" ] }
步骤2 :在项目的Gradle中引用,创建的config.gradle
//Gradle配置文件引用 apply from: "config.gradle" buildscript { repositories { google() jcenter() }
步骤3 :module创建AndroidManifext和Application
在module的main目录下:
创建文件夹:
- module
- module/java
创建文件: - module/AndroidManifest.xml (这个可以直接复制原来的,再修改)
- module/java/Moudle1App.class
Application
package com.zzn.moudle1; //package这里可能会有语法提醒,可以忽略,默认的路径冲突不影响运行 import android.app.Application; public class Moudle1App extends Application { }
自己创建的AndroidManifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zzn.module1"> <application android:name="com.zzn.moudle1.Moudle1App" //Application路径设置 android:theme="@style/AppTheme"> //这里复制app的style资源过来或者自己创建 <activity android:name=".OneActivity"> <intent-filter> //启动过滤创建 <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
步骤4 :module的build.gradle配置
根据config.gradle的isComponent 的true/false判断使用:
1.插件 library/application
2.是否appId
3.设置资源文件应用路径
if (!isComponent){ apply plugin: 'com.android.library' }else { apply plugin: 'com.android.application' } def config = rootProject.ext.androidConfig //将config.gradle的ext下的变量赋值给这里的config,就可以使用了 def appIdConfig = rootProject.ext.appIdConfig android { compileSdkVersion config.compileSdkVersion //这里 ... ... } //配置组件的app ID if (isComponent) { applicationId appIdConfig.moudle1 } //配置BuildConfig 代码中可以调用判断 buildConfigField("boolean", "isComponent", String.valueOf(isComponent)) //配置资源文件 sourceSets { main { if (isComponent) { manifest.srcFile 'src/main/module/AndroidManifest.xml' java.srcDirs 'src/main/java', 'src/main/module/java' } else { manifest.srcFile 'src/main/AndroidManifest.xml'}}}} buildTypes { ... ... } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) ... ... ... }
其他:
buildConfigField可以配置项目编译时将isComponent这个boolean值写入BuildConfig
编译之后的BuildConfig路径:
module1\build\generated\source\buildConfig\debug\com\zzn\module1\BuildConfig.java
/** * Automatically generated file. DO NOT MODIFY */ package com.zzn.module1; public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final String APPLICATION_ID = "com.zzn.moudle1"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = ""; public static final int VERSION_CODE = 1; public static final String VERSION_NAME = "1.0"; // Fields from default config. public static final boolean isComponent = true; }
最后再贴个目录图:
最后,最后,编译之后,在运行按钮项目选着就会多出module选项,运行!
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Vue学习笔记 6 - 使用 Vue 的配置过程/组件化开发引入/文件封装处理/ plugin /搭建本地服务器/配置文件的分离
- Android 组件化开发原理和配置
- Laravel 中使用 Vue 组件化开发(配置)
- 组件化App配置
- vue+webpack 组件化开发基本配置
- memcache/memcached/memcachedb 配置、安装
- Vmware虚拟机中Linux系统通过NAT上网配置
- MinGW - 安装和配置 / MinGW - Howto Install And Configure
- struts action配置属性
- 一Linux双mysql + mysql主从配置
- 三层交换机配置说明(华为S5700设置三个网段互通)
- CentOS 7.0 FTP配置
- Altiris安装配置学习教程(六)- 安装Deployment Web Console
- VSFTPD几个配置参数的误解
- hadoop环境配置过程中可能遇到问题的解决方案
- Debian GNU/Linux 中文配置,以及 LaTeX 和 CTeX 跨平台通用
- 关于监听的总结(监听配置里的host部分只能使用主机名吗,用IP地址或localhost不能正确启动监听程序吗?)
- 第二章 视图和URL配置
- Samba的主配置文件
- IIS 8 配置错误