蚂蚁金服 mPaaS IDEA 插件实践Demo演示

本文涉及的产品
mPaaS订阅基础套餐,标准版 3个月
简介:

前言

本文深入展开 mPaaS 在 IDEA 插件开发之路上踩过的坑和沉淀的思考,希望能够带来一些参考性:

 ●  mPaaS 冷启动过程如何 通过工具选择优化接入成本
 ●  IDEA Plugin 开发过程中 踩过的坑
 ●  思考未来 Code&Build 效率的提升

> 开篇介绍 mPaaS

移动开发平台(Mobile PaaS,简称 mPaaS)是源于支付宝 App 的移动开发平台,为移动开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动 App。

筚路蓝缕以启山林:

> mPaaS 冷启动时的接入成本优化

这是对 mPaaS 刚启动并对外服务的时候,项目组开发资源的真实描摹。

在当时,四五个工程师需要 hold 如此庞大的框架并且支撑对外能力输出。对于一群熟悉 C 端业务的程序员而言,挑战不言而喻。这个时期我们基本面临两个问题:

 ●  客户来源从哪里来?
 ●  如何进一步简化客户接入成本

接下来我们着重围绕「如何简化客户接入成本」展开讨论,主要为两部分:

 ●  Code
 ●  Build

在 Android 端,选择了 IDEA Plugin 作为切入点。

工欲善其事,必先利其器

> 选择 IDEA Plugin

IDEA 作为 Android 开发的工具平台,提升了 Android Coding 的效率和程序员 Coding 的幸福感。 当 mPaaS 团队开始对外提供产品服务的时候,我们希望达成一个愿景就是:simple code and simple build。 IDEA Plugin 无疑是 mPaaS 简化 Android 接入成本的不二选择。

山穷水复

> 如何克服 IDEA Plugin 开发过程中踩过的坑

在开发 IDEA Plugin 过程中,我们遇到两方面的挑战:

 ●  遇到所有应用开发过程中都会遇到的问题,API 接口稳定性。

 ●  code everything 和 build erverything 的统一

> API 接口稳定性

mPaaS IDEA 插件是基于 Android Studio Android Plugin 之上的一层插件封装。 在基于 Android Studio Plugin 以及 IDEA 开发过程中,最大的困扰来来自于 API 不稳定、修改频繁, 例如: Gradle build 、Install apk 等功能的 API 在 Android studio 2.1x 版本和 3.x 版本实现完全不同。(参见后文 API 变化列表)。

> Code Everything and Build Everything

mPaaS 存在若干组件,组件之前的关系如图所示

7340effcd2892a667bd47a2bd2e4be5b4f438a64

所以不能采用传统的 maven 树状依赖传递,只能采用依赖图的方式传递依赖。Gradle、Maven 等工具树形依赖显然不能满足要求。

柳暗花明

> 解决依赖问题

1. 为了兼容不同的 Android Studio,我们写 20+ 适配器,只为兼容 Android Studio 新版本的 API

以下仅是部分 API 变化,供参考:

7b6809f554772cd8848fe4a223e990f5f02761d4

2. 依赖问题解决:对于一个非树状的依赖关系谱来说

在依赖的添加的路上我们经历了「手动编写依赖文件」和「Gradle & IDEA 结合」两个阶段,而我们更希望能够继续演进到第三阶段:工具具备自主提示功能。

 ●  2.1. 阶段:手动编写依赖文件
这一阶段主要是手动编写依赖文件,即输出一份带有标注的文件,操作依赖文件即可。
 ●  2.2. 阶段:Gradle & IDEA 结合

目前我们正处于这一阶段,对每一次将要发布的依赖,我们写了一个基于 Dex 产物的依赖分析器,分析 Bundle 之间的依赖关系。这个依赖分析器能够根据实现定义好的依赖切分规则,将所有 Bundle 切分成若干 Bundle 组。如图所示

c0dd5b74cbec4c732ee4c7cec06f347e7948418f

 ●  2.3. 阶段:Looking Forward

我们希望的终极阶段是: 能够将用户接入体验尽可能地提升,并且工具方面有一部分自主提示的功能。如果大家有好的思路和想法,欢迎和我们一起交流。

Demo Show

> 演示如何运用 mPaaS IDEA Plugin 创建工程

f3384bf17de58b2192222cac79a303323a842223

进一步了解 mPaaS 开发环境配置和应用创建流程,参考文档:

https://tech.antfin.com/docs/2/51725

> 演示如何运用 mPaaS IDEA Plugin 生成无线保镖图片

349c577882936af6c393450a503eb5e2ba660d6b

进一步了解图片加密,参考文档:

https://tech.antfin.com/docs/2/85833

> 演示如何运用 mPaaS IDEA Plugin 接入热修复能力

cd626278c9658ef6ec81bc5a020a856542a8f46b

进一步了解 mPaaS 热修复功能,参考文档:

https://tech.antfin.com/docs/2/85898

灯火阑珊

> 如何优化 Code&Build 效率的思考

1. Fisrt about API or about Plugin

对于一个蓬勃兴起的开源项目来说,快速迭代和 API 稳定性之间似乎有难以弥合的矛盾。很多人眼中,API 稳定性会导致历史包袱沉重,但是对于 IDEA Plugin 来说,不稳定的 API 带来的是插件碎片化。这个版本可以支持的能力,下一个小版本却又不一定可以。

组件化,容器化盛行的今日,我们是不是可以将每一个 Plugin 作为一个 OSGi 的服务提供出去,保证服务的稳定性,从我的角度理解会比维持接口稳定性简单的多。

2. Code and Build

Code 和 Build 是工程师的左右手,左手 Code,一行有一行,右手 Build 一次又一次。 IDEA 拥有 Android、Python、Go、Web 和 C/C++ 等众多 IDE 分支,可谓是 Code Everything 的代表。 Gradle 的 Solgan 是 build ererything。

那是否 IDEA 和 Gradle 可以有更加良好的协作方式,在 Build error and error 重重包围下,解放程序员,让程序员花费更多的时间在 Code 上。


原文发布时间为:2018-11-28
本文作者:木磊
本文来自云栖社区合作伙伴“ 安卓巴士Android开发者门户”,了解相关信息可以关注“ 安卓巴士Android开发者门户”。
相关文章
|
2月前
|
网络协议 Windows
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
这篇文章提供了解决IDEA插件下载慢或超时问题的方案,通过查找国内插件节点IP地址并修改本地hosts文件来加速下载。
两步带你解决IDEA 插件下载安装慢、超时、不成功问题
|
7天前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
52 6
|
2月前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
185 4
可直接编辑jar包的IDEA插件-JarEditor
|
1月前
|
Windows
IDEA如何查看已经安装的插件并删除
【10月更文挑战第1天】这段内容主要介绍了如何在IntelliJ IDEA中查看和删除已安装的插件。可以通过软件内的插件市场查看插件列表,包括插件名称、版本号和供应商等信息;也可以通过访问插件目录查看。删除插件则建议在插件市场中进行,包括禁用和卸载步骤,手动删除插件文件夹的方法不推荐,因为可能存在配置残留等问题。
490 11
|
1月前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
45 0
|
1月前
|
IDE Java Maven
分享几个实用的IDEA插件,提高你的工作效率!
分享几个实用的IDEA插件,提高你的工作效率!
132 0
|
3月前
|
自然语言处理 JavaScript 算法
【插件】IDEA这款插件,爱到无法自拔
本文介绍了阿里云「通义灵码」这一强大IDEA插件,它不仅能够智能生成代码、解答研发问题,还支持多种编程语言和编辑器。文章详细展示了如何安装使用该插件,并通过多个实际案例说明其在代码解释、优化、生成注释及单元测试等方面的应用,助力开发者提高效率。强烈推荐尝试!
119 1
【插件】IDEA这款插件,爱到无法自拔
|
3月前
|
缓存 Java 应用服务中间件
支付宝 网站支付Demo 案例【沙箱环境】IDEA如何配置启动Eclipse项目
该博客文章讲述了如何在IntelliJ IDEA中配置和启动一个使用Eclipse开发的支付宝网站支付Demo案例。文章详细记录了从导入项目到配置Tomcat,再到解决启动过程中遇到的问题的步骤。作者还分享了在IDEA中遇到的一些常见问题,如项目配置、依赖库添加、编码问题等,并提供了相应的解决方案。此外,文章还提供了支付效果的展示以及一些支付宝案例文档中需要修改的参数信息。
支付宝 网站支付Demo 案例【沙箱环境】IDEA如何配置启动Eclipse项目
|
3月前
|
Java
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
这篇文章详细介绍了10款IntelliJ IDEA的高效插件,包括Codota代码智能提示、Key Promoter X快捷键提示、CodeGlance代码缩略图、Lombok代码简化、阿里巴巴代码规范检查、SonarLint代码质量检查、Save Actions格式化代码、Translation翻译、Rainbow Brackets彩虹括号和Nyan Progress Bar彩虹进度条插件,旨在帮助提升开发效率和代码质量。
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
|
3月前
|
搜索推荐 Java Maven
Netbeans入门实践类IDEA风格下
Netbeans入门实践类IDEA风格下; 配置文件模板Templates, user, date, time; 解决Open Project, 中文乱码GBK
48 1

热门文章

最新文章