美文网首页
Android组件化(二)组件包配置

Android组件化(二)组件包配置

作者: 杰杰哥哥 | 来源:发表于2017-11-09 16:28 被阅读0次

上次分享主要是组件包管理以及如何上传到自己私有库,今天主要是讲解如何配置组件库,包括自己调试以及发布后如何去使用。
首先,大家要清楚如果组件可以作为一个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,
文件目录结构如下图所示:


image.png

其中,修改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,那么工程是无法运行的。
这样就可以进行上一讲的上传操作了。

下一讲,我会介绍如何去使用以及相关的配置。

相关文章

  • Android组件化(二)组件包配置

    上次分享主要是组件包管理以及如何上传到自己私有库,今天主要是讲解如何配置组件库,包括自己调试以及发布后如何去使用。...

  • android 组件化

    Android组件化项目地址:Android组件化项目AndroidModulePattern Android组件...

  • Android组件化专题 - 组件化配置

    demo地址 Android组件化专题,详细讲解组件化的使用及配置,以及实现的原理。 本文章讲解了组件化的由来及配...

  • Android 组件化开发实践

    Android组件化开发实践(一):为什么要进行组件化开发?Android组件化开发实践(二):组件化架构设计An...

  • Android组件化方案

    Android组件化方案Android彻底组件化demo发布

  • android之组件化

    组件化博客——优秀详解文章 Android组件化项目地址:Android组件化项目AndroidModulePat...

  • 「 Android组件化 」——完整方案(终极版)

    Android组件化项目地址:Android组件化项目AndroidModulePattern[https://g...

  • Android组件化方案

    Android组件化项目地址:Android组件化项目AndroidModulePattern[https://g...

  • 2018-05-22

    2、Android组件化项目实施步骤 1)第一步:配置可自动将组件在Application和Library属性之间...

  • Android:插件化

    插件化组件化 组件化与插件化的区别 组件化是Android自然提供的,例如分成lib,test组件。插件化是热更新...

网友评论

      本文标题:Android组件化(二)组件包配置

      本文链接:https://www.haomeiwen.com/subject/jdfmmxtx.html