返回顶部
首页 > 资讯 > 移动开发 >Android组件化架构开发--为什么要使用组件化?组件分层?组件路由的简单实现。
  • 378
分享到

Android组件化架构开发--为什么要使用组件化?组件分层?组件路由的简单实现。

android架构 2023-08-31 12:08:23 378人浏览 安东尼
摘要

文章目录 android组件化架构开发一.为什么要使用组件化1.1 单工程项目结构1.2 什么是组件化 二. 组件分层三. 组件化项目搭建流程3.1 创建业务组件3.2 创建基础组件3.

文章目录

Android组件化架构开发

一.为什么要使用组件化

1.1 单工程项目结构

一般我们都是一个业务建一个包
在这里插入图片描述

缺点:

  1. 各种业务代码混杂在同一个模块里,开发人员在开发、调测过程的效率越来越低,定位某个业务问题,需要在多个业务代码混合的模块中寻找和跳转。

  2. 需要了解各个业务的功能,避免代码的改动影响其它业务的功能,导致开发和维护成本不断增加。

  3. 由于项目工程越来越庞大,编译完整代码所花费的时间越来越长。

  4. 代码复用性差,写过的代码很难抽离出来再次利用。

1.2 什么是组件化

是对数据和方法的简单封装,功能单一,高内聚,并且是业务能划分的最小粒度。

二. 组件分层

主入口(app):配置和主Activity,不包含任何业务代码,是应用的入口,只会依赖业务组件。

业务组件:通过路由通信。

功能组件:共有的业务封装。支付等等。

基础组件:依赖各种第三方SDK

在这里插入图片描述

三. 组件化项目搭建流程

3.1 创建业务组件

app模块

在这里插入图片描述

创建module

业务组件推荐选这个application,调试的时候需要用到,
在这里插入图片描述

业务组件名字,业务模块是工程的核心。

在这里插入图片描述

修改下包名
在这里插入图片描述

3.2 创建基础组件

打包最后要成为library。

在这里插入图片描述

3.3 创建功能组件(可有可无)

最后打包最后要成为library。

创建完毕。

在这里插入图片描述

3.4 依赖关系

在项目下的build.gradle添加全局配置参数。

ext {    isDebug = false // 当它为true时,调试模式,组件可以单独运行。 如果是false,正式编译打包的模式    android = [            compileSdk : 33,            minSdk     : 24,            targetSdk  : 33,            versionCode: 1,            versionName: "1.0"    ]    applicationId = [            "app" : "com.qfh.common",            "main": "com.qfh.moduleCore"    ]    library = [            "appcompat"       : 'androidx.appcompat:appcompat:1.4.1',            "material"        : 'com.Google.android.material:material:1.5.0',            "constraintlayout": 'androidx.constraintlayout:constraintlayout:2.1.3'    ]    libARouter = "com.alibaba:arouter-api:1.5.1"    libARouterCompiler = "com.alibaba:arouter-compiler:1.5.1"    libGson = "com.google.code.gson:gson:2.8.6"}

在这里插入图片描述

回到我们的业务组件中,

在这里插入图片描述

把全局参数赋值

//获取全局配置参数def cfg = rootProject.ext//plugins {//    id 'com.android.application'//}//区分是application还是library模块if (cfg.isDebug) {    apply plugin: 'com.android.application'} else {    apply plugin: 'com.android.library'}android {    namespace 'com.example.module.main'    compileSdk cfg.android.compileSdk    defaultConfig {        if (cfg.isDebug) {            apply plugin: 'com.android.application'        }        //全局配置参数赋值        applicationId cfg.applicationId.main        minSdk cfg.android.minSdk        targetSdk cfg.android.targetSdk        versionCode cfg.android.versionCode        versionName cfg.android.versionName        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'        }    }    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }}dependencies {    //依赖基础组件    implementation project(':moduleBase:mylibrary')    testImplementation 'junit:junit:4.13.2'    androidTestImplementation 'androidx.test.ext:junit:1.1.3'    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'}

自此业务组件的gradle配置完成.

四. 组件路由的简单实现

4.1 使用ARouter实现页面跳转

使用注解Route

在这里插入图片描述

初始化

public class App extends Application {    @Override    public void onCreate() {        super.onCreate();        ARouter.openDebug();        ARouter.openLog();        ARouter.init(this);    }}

路由组件跳转

class DebugActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        ARouter.getInstance().build("/login/LoginActivity").navigation()    }}

4.2 ARouter实现数据传递

class DebugActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        ARouter.getInstance().build("/login/LoginActivity").withLong("key1",666L)            .withString("111","!1313")    }}

来源地址:https://blog.csdn.net/weixin_46039528/article/details/132484855

--结束END--

本文标题: Android组件化架构开发--为什么要使用组件化?组件分层?组件路由的简单实现。

本文链接: https://lsjlt.com/news/385612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android组件化架构开发--为什么要使用组件化?组件分层?组件路由的简单实现。
    文章目录 android组件化架构开发一.为什么要使用组件化1.1 单工程项目结构1.2 什么是组件化 二. 组件分层三. 组件化项目搭建流程3.1 创建业务组件3.2 创建基础组件3....
    99+
    2023-08-31
    android 架构
  • Android开发组件化架构设计原理实例分析
    今天小编给大家分享一下Android开发组件化架构设计原理实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。为什么需要组...
    99+
    2023-07-02
  • 用 VUE 单文件组件简化你的开发流程
    增强组织性 SFC 将组件的所有必要部分集中在一个位置,使代码更易于维护和理解。模板、脚本和样式被清晰地隔离开来,增强了可读性和可重用性。 促进可重用性 SFC 支持组件化开发,允许开发人员创建可重复使用的组件,这些组件可在应用程序的多个...
    99+
    2024-04-02
  • Android开发组件化架构设计原理到实战
    目录为什么需要组件化组件化和模块化模块化架构组件化架构组件化带来的优势组件化需解决的问题资源冲突解决AndroidManifest独立调试单工程方案多工程方案页面跳转Arouter ...
    99+
    2024-04-02
  • android组件化开发的方法是什么
    Android组件化开发的方法有以下几种:1. 模块化开发:将整个项目拆分为多个独立的模块,每个模块独立开发、编译和运行。每个模块可...
    99+
    2023-10-10
    android
  • android组件化开发的原理是什么
    Android组件化开发的原理是将一个大型的应用程序拆分成多个独立的组件,每个组件包含自己的功能模块和界面,然后通过定义清晰的接口和...
    99+
    2023-10-22
    android
  • Vue中怎么实现组件化开发
    这篇文章给大家介绍Vue中怎么实现组件化开发,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1,分别改写成1级选项和2级选项的2个组件(好像比较low)2,引用4级联动组件,改写成可选1...
    99+
    2024-04-02
  • Vue-router怎么实现组件化开发
    这篇文章主要介绍“Vue-router怎么实现组件化开发”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue-router怎么实现组件化开发”文章能帮助大家解决问题。代码如下:#单个组件路由impo...
    99+
    2023-07-04
  • 使用JSX实现Carousel轮播组件的方法(前端组件化)
    在我们用 JSX 建立组件系统之前,我们先来用一个例子学习一下组件的实现原理和逻辑。这里我们就用一个轮播图的组件作为例子进行学习。轮播图的英文叫做 Carousel,它有一个旋转木马...
    99+
    2024-04-02
  • 使用JSX 建立 Markup 组件风格开发的示例(前端组件化)
    目录JSX 环境搭建初始化 NPM安装 webpack安装 Babel配置 webpack安装 Babel-loader模式配置引入 JSXJSX 基本用法JSX 基础原理实现 cr...
    99+
    2024-04-02
  • ios组件化开发的方法是什么
    iOS组件化开发的方法有很多种,以下是其中几种常用的方法:1. CocoaPods:使用CocoaPods可以方便地管理项目中的各个...
    99+
    2023-08-15
    ios
  • android中怎么利用ARouter实现组件化
    这篇文章给大家介绍android中怎么利用ARouter实现组件化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。工程目录:工程一共分为4个模块,基础组件app、基础服务(包涵路由服务)basecommonlibrary...
    99+
    2023-05-30
    android arouter
  • vue组件化开发指的是什么意思
    小编给大家分享一下vue组件化开发指的是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 在vue中,组件化开发指的是将复杂的业务拆分为多个组件,每个组件...
    99+
    2024-04-02
  • PHP中使用路由组件实现复杂的请求分发逻辑
    【前言】在Web应用程序开发中,路由是一个非常重要的组件。它负责将不同的请求分发给不同的处理器来处理。在PHP中,使用路由组件能够实现复杂的请求分发逻辑。本文将通过具体的代码示例来介绍如何在PHP中使用路由组件实现复杂的请求分发逻辑。【什么...
    99+
    2023-10-21
    路由组件 复杂 请求分发
  • 【小程序】组件化开发的基本使用(一)
    文章目录 小程序组件化开发基本使用小程序组件化思想自定义组件的过程组件样式实现细节 小程序组件化开发基本使用 小程序组件化思想 组件插槽定义使用 小程序在刚刚推出时是不支持组件化...
    99+
    2023-10-05
    小程序 前端 javascript
  • Android Camera开发实现可复用的相机组件
    本文实例为大家分享了Android Camera实现可复用相机组件的具体代码,供大家参考,具体内容如下 若自己的应用需要使用camera,有两种解决方案。 1. 使用Intent调用...
    99+
    2024-04-02
  • joomla组件开发使用的方法是什么
    Joomla组件开发使用的方法有以下几步骤: 创建组件文件夹:首先,在Joomla的组件目录中创建一个文件夹,用于存放组件相关的...
    99+
    2023-10-22
    joomla
  • DevOps自动化组件RUNDECK开发部署使用的方法
    这篇文章主要介绍“DevOps自动化组件RUNDECK开发部署使用的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“DevOps自动化组件RUNDECK开发部署使用的方法”文章能帮助大家解决问题。...
    99+
    2023-06-29
  • 怎么实现MySQL库中的按条件变化分组
    这篇文章主要介绍“怎么实现MySQL库中的按条件变化分组”,在日常操作中,相信很多人在怎么实现MySQL库中的按条件变化分组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么...
    99+
    2024-04-02
  • VUE 路由与组件结合,实现代码复用,提高开发效率
    一、什么是 Vue 路由 Vue 路由是一个用于构建单页应用程序的路由系统。它允许您在应用程序中创建不同的视图,并通过路由来控制这些视图之间的切换。 二、组件 组件是 Vue.js 中一个重要的概念,它允许您将应用程序分解成更小的、可重...
    99+
    2024-02-05
    Vue 路由 组件 代码复用 开发效率
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作