首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 大型工程 App Bundle 模块化实践

在 2019 年,我们调研和使用 Android App Bundle 解决 Google Play 渠道包 64bit 版本发布问题后,又对模块化开发流程做了进一步改进。...阶段二:模块分层重构 强调模块化开发职责,定义出 app / module / api / library 分层依赖结构,通过 api 通信和控制反转,将 app 拆小为业务 module,app 改为壳工程用于集成...模块化开发解决什么? Android App Bundle 描述非常恰当: 提升工程速度 将应用功能作为独立模块进行设计、构建、调试和测试,并在准备就绪后将其添加到主应用中。...Android App Bundle 具有无需重构代码、转换过程轻松便捷的优点,因此要求我们在实现转换原模块化开发模式过程中,同样也要保持这样的优点: 低入侵、业务代码基本零重构 不变更模块间编译依赖关系...国内生态 Android App Bundle 技术生态在国内仍不完善,国内外对比: 生态位 国外 国内 问题 解决方案 开发体系 MAD 体系 自研体系 需要重构、改造不断适应官方技术栈 超大型项目一般都具备模块化开发

4.6K31
您找到你想要的搜索结果了吗?
是的
没有找到

【Google Play】App Bundle 使用详解 ( 应用模块化 )

开发者账号 ( 注册邮箱账号 | 创建开发者账号 ) 【Google Play】创建并设置应用 ( 访问权限 | 内容分级 | 受众群体 | 类别及联系方式 | 商品详情 ) 【Google Play】App...Bundle 使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 ) 【Google Play】App Bundle 使用详解 ( 按条件分发 | 国家地区 | SDK 版本 | 设备功能...| 按需分发 | 资源分发 ) 【Google Play】App Bundle 使用详解 ( 应用模块化 ) ---- 文章目录 Google Play 上架完整流程 系列文章目录 一、单个应用模块化...二、Android Studio 新模块向导 三、博客资源 一、单个应用模块化 ---- 将一个独立的应用 , 分为若干功能模块 , 为不同的模块设置不同的分发策略 ; 应用组成 : 代码 , 资源...: 降低了应用编译时间 , 大约能缩短 \cfrac{2}{3} 的时间 , 这是因为完成模块化后 , 可以使用并行编译 , 加快编译速度 ; 模块化之后 , 应用瘦身效果明显 , 用户下载更快

95710

App 组件化模块化之路——使用SDK的思路进行模块化设计接口

在不久之前分享一篇《App 组件化/模块化之路——如何封装网络请求框架》文章介绍了我在项目中封装网络请求框架的思路。...开发一个 App 会涉及到很多网络请求 API ,例如登录注册接口、用户信息接口、业务列表请求接口等等。而本文介绍的是如何模块化设计这些接口,使得项目中更好地复用代码。...如果你的 App 业务比较复杂,那么 Request 类数目就会暴增,这时候如何组织管理这些 Request 类就是一个问题了。 接口模块化 思路其实也简单。...这个就是我们这个模块化接口的核心类了。 AuthManager /** * Created by wecodexyz@gmail.com on 2017/10/14 下午6:55....例如,我的 App 里很多页面都会用到获取本地音乐或者视频的列表。同样地,有以下几个类。 ?

1.6K30

vivo官网App模块化开发方案-ModularDevTool

作者:vivo 互联网客户端团队- Wang Zhenyu本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法。...一、背景现在客户端的业务越来越多,大部分客户端工程都采用模块化的开发模式,也就是根据业务分成多个模块进行开发,提高团队效率。...(注:为什么这么分,可以参考之前的一篇文章《Android模块化开发实践》)二、痛点完全隔离的代码仓,使每个模块更独立,更易于代码管理,但也带来了一些问题。...-- settings.gradle -->include ':app',':module_name_1',':module_name_2',':module_name_3'... project(':...publish发布子模块的流程如下:六、ModularDevTool接入接入本方案的前提是项目采用多代码仓的方式进行模块化开发。具体接入步骤也比较简单。

76430

App 组件化模块化之路——构建开发架构思路

App 组件化/模块化开发架构思路 随着业务的发展 App 开发技术也越来越成熟,对开发者来说 App 代码量也迅速地增长到一个数量级。对于如何架构 App 已经每个开发者面临的实际问题。...自下而上将 App 分为: 内核层 业务层 应用层 内核层 内核层是包含了为 App 提供公共服务的的一些库。例如:公共资源、网络库、日志工具、数据库、图片加载等核心库。这些是整个 App 基础库。...业务层 我认为这一层是整个 App 架构的关键。...例如公司现有好几个 App 产品,每个 App 都需要使用同样的授权登录。那么这个授权登录模块就可以独立成一个组件。 假设将授权登录组件命名为auth。...应用层 顾名思义,这一层是对整个 App 的整合,也是 App 的入口。这里有 Main 和 Dev。其中 Main 是对各个业务组件的整合,是最终打包的产品的上层应用。

1.8K20

App 组件化模块化之路——如何封装网络请求框架

App 组件化/模块化之路——如何封装网络请求框架 在 App 开发中网络请求是每个开发者必备的开发库,也出现了许多优秀开源的网络请求库。...但是随着业务的发展,App 变得越来越大,我们将这些网络请求库加入到项目中直接使用,对我们业务类的入侵是非常强的。如果要进行业务分离时,这些网络请求代码将是一个阻止我们进一步工作的绊脚石。...因此我们构建的网络请求框架要可以解决以下问题: 分离业务与网络请求代码 网络库可以很容易的被替换 网络库可以很方便的复用 所以在 App 组件化/模块化开发架构思路 一文中,我们把网络请求作为内核层的一个组件...封装第三方网络请求接口 一般来说,目前绝大部分 App 的数据请求都是使用 HTTP 协议,而数据交换的协议使用 json 格式。因此可以封装一个通用的请求接口。

1.9K20

App 组件化模块化之路——Android 框架组件(Android Architecture Components)使用指南

App 组件化/模块化之路——Android 框架组件(Android Architecture Components)使用指南 面对越来越复杂的 App 需求,Google 官方发布了Android...通用的框架准则 官方建议在架构 App 的时候遵循以下两个准则: 关注分离 其中早期开发 App 最常见的做法是在 Activity 或者 Fragment 中写了大量的逻辑代码,导致 Activity...现在很多 App 开发者都注意到了这个问题,所以前两年 MVP 结构就非常有市场,目前普及率也很高。...模型驱动UI 模型持久化的好处就是:即使系统回收了 App 的资源用户也不会丢失数据,而且在网络不稳定的情况下 App 依然可以正常地运行。从而保证了 App 的用户体验。...关于 Repository 模式可以参考我的上一篇《App 组件化/模块化之路——Repository模式》 以下是使用 Repository 封装 WebService public class UserRepository

1.6K20

模块化】:JS 模块化极简史

什么是模块化? 2. 无模块化时代 3. 传统模块化阶段 3.1. “对象”型模块 3.2. “仿Java类”型模块 3.3. “立即执行函数(IIFE)”型模块 3.4....什么是模块化模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。...优点肯定是有的 优点:传统模块化相比于无模块化时代,显然是进步的:减少了命名冲突,增强了模块的独立性; 但是 缺点同样明显 缺点: 1....百家争鸣:CommonJS、AMD、CMD JavaScript 在语言层面迟迟不推出模块化功能,这个背景下,各“民间组织”提出了CommonJS、AMD、CMD 模块化规范......CommonJS是一种只适用于JavaScript的静态模块化规范; 注:只适用于JavaScript,意味着它无法把CSS等前端资源纳入模块化管理范围,但显然CSS也是组成前端模块的重要部分; 注:静态模块化规范

1.9K10

js模块化

---- 「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」 理解 什么是模块/模块化 将一个复杂的程序按照一定的规范,封装成几个块(文件),并进行组合在一起。...模块化的进化史 最早 最早,我们的js是写到一个文件中,想怎么写怎么写。...){ console.log(_$body) } return { foo:foo } })(jQuery) Moudle.foo() 为什么要模块化...比如不需要轮播图的模块,我们不需要引入 模块化的好处 避免命名冲突(减少命名空间污染) 更好的分离,按需加载 更高复用性 高可维护性 页面引入script 当我们需要引入多个js...script src='3.js'> 所以就带来了如下的问题 请求过多 依赖模糊 难以维护 因此也就需要模块化规范

2.2K20
领券