美文网首页
手动组件化

手动组件化

作者: 鴻9527 | 来源:发表于2019-09-27 21:26 被阅读0次

手动组件化步骤

  1. 新建module
  2. 配置清单文件
  3. 在gradle.properties文件中设置每个Module是否需要单独编译的变量
  4. 配置每个module的build.gradle文件
  5. 在主module中根据每个module都有的布尔值变量来导入依赖
  6. 大功告成!!!
  7. 新建module
  8. 配置清单文件
    复制两个清单文件放在不同的文夹下 一个作为Application使用的A清单文件 一个作为library使用B清单文件

A清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.module">

<application
    android:name=".ModuleApp"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".ModuleActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

B清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.module">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".ModuleActivity"/>
</application>


</manifest>

  1. 在gradle.properties文件中设置每个Module是否需要单独编译的变量

是否需要单独编译 true表示需要,false表示不需要

isMoudel=false

isMoudel=true

  1. 配置每个module的build.gradle文件
    根据刚才的每个module都有的布尔值变量来设置是application还是library
    将第一句 --> apply plugin: 'com.android.application'
    改成 -->
    if (isMoudel.toBoolean()) {
    apply plugin: 'com.android.application'
    } else {
    apply plugin: 'com.android.library'
    }
    同理在下面defaultConfig中设置applicationId和清单文件
    将 -->
    defaultConfig {
    applicationId "com.example.module"
    minSdkVersion 22
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"

     testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

    }

    改成 -->
    defaultConfig {
    //applicationId "com.example.module"
    if (isMoudel.toBoolean()) {
    applicationId "com.example.module"
    }
    sourceSets {
    main {
    if (isMoudel.toBoolean()) {
    manifest.srcFile 'src/main/debug/AndroidManifest.xml'
    } else {
    manifest.srcFile 'src/main/release/AndroidManifest.xml'

             }
         }
     }
     minSdkVersion 22
     targetSdkVersion 29
     versionCode 1
     versionName "1.0"
    
     testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

    }

  2. 在主module中根据每个module都有的布尔值变量来导入依赖
    if(isMoudel.toBoolean()){
    implementation project (':app')
    }

  3. 大功告成!!!

相关文章

  • 手动组件化

    手动组件化步骤 新建module 配置清单文件 在gradle.properties文件中设置每个Module是否...

  • Android Hilt实战初体验: Dagger替换成Hilt

    在组件化AwesomeGithub项目中使用了Dagger来减少手动依赖注入代码。虽然它能自动化帮我们管理依赖项,...

  • iOS 基于 Cocoapods 的组件化

    手动组件化基本步骤 一、远程索引库 什么是远程索引库 每创建一个组件都会带有一个 xxx.podspec 的索引文...

  • 封装组件-面向对象

    tab组件化tab组件化代码 图片曝光组件化图片曝光组件化代码 轮播组件化轮播组件化代码

  • Android组件化 - gradle配置(一)

    一、什么是组件化 什么是组件化呢? 组件化、插件化、模块化之间有什么区别呢? 组件化:每个组件都是独立的功能模块,...

  • Android:插件化

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

  • iOS 组件化实战篇(私有库)

    前沿 本片文章主要讲解我们项目中为什么要组件化 组件化的好处 怎么使用组件化 怎么实现组件化 为什么要组件化 ...

  • iOS组件化

    iOS组件化 iOS组件化

  • vue零基础开发004——todolist组件化

    1.todolist组件化-全局组件 2.todolist组件化-局部组件

  • Android组件化方案思路

    在进行app组件化之前我们要明白什么是组件化?为什么要组件化? 什么是组件化?为什么要组件化? 在项目的体系结构,...

网友评论

      本文标题:手动组件化

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