上次分享主要是组件包管理以及如何上传到自己私有库,今天主要是讲解如何配置组件库,包括自己调试以及发布后如何去使用。
首先,大家要清楚如果组件可以作为一个Application自己运行的,也可以作为aar/jar让使用方去引用的,而在自己的工程下面自己调试会方便很多,
这样可以有效的提高开发效率,而当发布后才作为aar/jar让其他人去使用。
所以,今天主要是介绍这两种使用方式的配置以及使用方法。
作为一个Application配置:
第一步,找到gradle.properties文件,增加
# 设置当前版本为application还是library,
# 如果当前是需要自己工程调试的,那么请设置为 false
# 如果当前是发布作为aar/jar,那么请设置为 true
isModule=false
第二步,找到app的 build.gradle文件,用如下代码替换apply plugin:'com.android.application'
if (isModule.toBoolean()) {
// 表示当前包生成的是jar/aar
apply plugin: 'com.android.library'
} else {
// 表示当前项目中调试
apply plugin: 'com.android.application'
}
第三步,还是在app的 build.gradle文件中,按照如下代码进行修改,这样做的目的是如果当前选择的是作为jar/aar方式
那么如果你设置了applicationId,那么gradle在编译的时候会报错,所以我们需要增加此判断。
defaultConfig {
// 判断当前打包环境,如果是library那么不需要设置applicationId
if (!isModule.toBoolean()) {
applicationId "com.android.xxx.logger"
versionCode 3
versionName "1.0.2"
}
minSdkVersion 17
targetSdkVersion 25
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
第四步,还是在app的build.gradle文件中,增加如下配置:
这个配置的目的是因为调试模式和jar/aar模式所需要的manifest的配置可能是不一样的,比如你在调试环境中
可以自己配置调试的activity,那么在jar/aar模式中是不需要的,这些调试的文件是没必要去打包到你的jar/aar中
的,所以通过这些代码来去区分。
android {
...
sourceSets {
main {
if (!isModule.toBoolean()) {
manifest.srcFile 'src/main/debug/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/release/AndroidManifest.xml'
//release模式下排除debug文件夹中的所有Java文件
java {
// 去掉debug模式下的调试的java代码
exclude 'com/android/xxx/logger/debug/**'
}
}
}
}
// 为了避免jar/aar组件包资源重名问题
resourcePrefix "logger_prefix"
}
第五步,删除你工程下面的AndroidManifest.xml文件,增加两个文件夹,debug以及release,
文件目录结构如下图所示:
其中,修改release下面的AndroidManifest.xml为如下代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.android.xxx.logger"
xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:theme="@style/AppTheme">
<activity android:name=".debug.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
第六步,在你的包下面增加debug文件夹,并且把你的MainActivity Copy到里面,这样做的目的是
我会在打包jar/aar的时候,剔除掉debug里面的所有内容,以后你自己的调试代码都必须放在debug
文件夹里面。
至此,所有的配置就都已经完成了,你可以试试,如果吧gradle.properties中的isModule设置成false或者true试试,
你会发现如果设置成false,那么你可以直接运行起来的,如果设置成false,那么工程是无法运行的。
这样就可以进行上一讲的上传操作了。
下一讲,我会介绍如何去使用以及相关的配置。