文档章节

如何实现 Android 应用的持续部署?

风起云飞fir_im
 风起云飞fir_im
发布于 2016/07/21 19:24
字数 926
阅读 1208
收藏 58

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

构建一个高质量的 Android 应用 最大的挑战是什么? 在整个开发流程中,也许 Coding 时莫名的 bug,也许是 Android 开发兼容性问题,多版本多渠道自动打包问题,也有开发工具选择等等。

每个不同段位的 Android 开发者,都会有不同的答案。如何自动化整个开发-打包-分发的流程也许真正需要思考。

这篇文章将通过实际的教程向大家展示使用 flow.ci实现 Android 应用自动化持续集成,并将 APK 文件部署到 fir.im 应用内测平台。内测分发完成后,使用 Webhook、邮件、Slack 通知参与测试的人员的一系列步骤,让你全自动化地完成整个开发流程。

了解 flow.ci

flow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程。1 分钟即可完成开发测试环境搭建,开启第一个 Build。

flow.ci,我们把项目的开发工作流称为 flow ,每个 flow 由触发器插件构成。系统根据不同的语言和环境提供对应的 flow 模版,触发器和插件。Flow 的自定义非常简单,只需要 One-Click 即可添加你需要的插件。它可能是一个代码静态分析检测工具(比如 Eslint),可能是一个数据库(比如 Mysql/MongoDB/Redis),也可能是一个消息通知插件(比如 邮件/Slack)等。

更专注于代码,其他的琐事交给 flow.ci 自动化完成吧 :)

搭建 Android 应用的持续部署

设置 Andr​​oid 持续部署流程非常简单:

1.创建项目

2.关联代码仓库

3.选择要集成的项目

4.开始你的第一个 Flow

选择项目类型 Android ,开启默认的 flow 模板 ,包括 Intialize - Git Clone - Cache - Build 的流程。

5.选择语言版本,单击创建项目

选择项目语言的版本,除了 Java for Android 外,flow.ci 提供 Node.js , Ruby , PHP , Python 的多语言、多版本的开发测试环境。

后续会支持更多语言。

6.点击“+”添加插件,自定义 flow

在环境和语言等初始配置完成后,flow.ci 会提供一套 基本 flow 模版,内含通用流程插件和流程触发设置。如果你有定制化的需求,点击图中“+”或者“删除”“编辑”,实时设置就可以。

7.在插件列表中搜索 Infer Analyzer 插件,选择添加

Infer Analyzer 是 Facebook 推出的 Java 静态代码分析工具,添加这个插件到你的 Flow 模板可以帮助拦截早期错误。

8. 继续添加 fir.im Uploader 插件

fir.im Uploader 插件将输出的 apk 文件上传到 fir.im 应用内测平台,添加这个插件需要添加你的 fir.im 账号的 API token。此外,该插件支持变量,可以直接拉取 github 的提交日志,作为版本更新日志。

9.完成后,还可以添加邮件、Slack等消息通知插件

实现这套自动化流程之后,只需要开发新功能,提交代码即可。图为跑完整个持续部署流程,健康的项目状态。


繁琐可循的任务就应该工具化自动化,这是程序员们的不懈追求。如果你也想体验 Android 应用的自动化持续部署,来 http://flow.ci 首页提交申请,邀请码随后会发送到邮箱。

期待你的反馈。

Happy Building! flow.ci team

© 著作权归作者所有

风起云飞fir_im

风起云飞fir_im

粉丝 46
博文 136
码字总数 143328
作品 1
朝阳
私信 提问
加载中

评论(3)

不懂biubiu
感谢博主分享,分析的非常到位,我也发现一个好的Android自动抢红包视频链接:链接:http://pan.baidu.com/s/1hsh3LQW 密码:oygf 拿走不谢,请叫我雷锋 欢迎加群595642365验证码05 一起交流
12叔
12叔
呵呵
Fize
Fize
好软文
[译] 将通用安卓音乐播放器转化为 instant 应用

原文地址:Making the UAMP sample an instant app 原文作者:Oscar Wahltinez 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:Mirosalva 校对者:Qiuk17 从 Androi...

Android_开发者
05/05
0
0
阿里大牛推荐!业界首部安卓热修复宝典免费下载!

继《阿里巴巴Java开发手册》后,我们为小伙伴们带来了第二份礼物:业界首部全方位完整介绍热修复原理书籍《深入理解Android热修复技术原理》,该书为阿里巴巴手淘技术团队撰写,现已免费开放...

阿里云云栖社区
2017/07/06
0
0
Ubuntu——不仅仅是桌面端

也许,他已经从Canonical公司CEO的位置退了下来,但马克·沙特尔沃思仍然是最能代表Ubuntu的公众人物。 2013年年初,他在Ubuntu Edge众筹项目上栽了跟头,除了现金,他争取到了许多个人资本的...

92UR铀报
2014/03/07
682
4
在持续集成 (CI) 环境中使用 Android 模拟器 | AndroidDevSummit 中文字幕视频

在本次演讲中,Hoi Lam 和 Lingfeng Yang 将为大家讲解如何在持续集成 (CI) 环境中使用 Android 模拟器。包括近期发布的功能: 模拟器的 Docker 镜像,以及如何部署到远端环境 (如 Google Clo...

谷歌开发者
11/18
0
0
【云栖直播】精彩推荐第2期:首届阿里巴巴研发效能嘉年华

热门推荐 (1)架构研发 持续集成与交付:阿里最佳实践 >>[立即预约] 直播简介:本系列直播由阿里旗下一站式研发提效平台云效策划推出,主要为大家详细介绍阿里巴巴在持续集成和持续交付的最...

阿里云官方博客
2017/06/05
63
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx反向代理+负载均衡+服务器宕机解决办法

反向代理 作用:保证系统安全,不暴露服务器IP,利用nginx服务器,利用内网ip进行访问,避免出现攻击服务器的情况 启动本地tomact,127.0.0.1:8080可以访问到tomcat管理页面 效果:通过 bbs....

Jack088
4分钟前
1
0
返回IEnumerable 与IQueryable相比 [关闭]

返回IQueryable<T>与IEnumerable<T>之间有什么区别? IQueryable<Customer> custs = from c in db.Customerswhere c.City == "<City>"select c;IEnumerable<Customer> custs = from c i......

技术盛宴
11分钟前
2
0
开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门

点击下载《Knative 云原生应用开发指南》 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注。Knative 在 Kubernetes 之上提供了一套完整的应用 Serverless 编排服务,让应用开发...

阿里巴巴云原生
16分钟前
2
0
解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

手淘推荐简介 手淘推荐的快速发展源于2014年阿里“All in 无线”战略的提出。在无线时代,手机屏幕变小,用户无法同时浏览多个视窗,交互变得困难,在这样的情况下,手淘借助个性化推荐来提升...

阿里云官方博客
18分钟前
2
0
内核程序中进程的pid,handle,eprocess之间相互转换的方法

在内核程序开发中,我们常常需要取得某进程的pid或句柄,或者需要检索进程的eprocess结构,很多API函数需要的参数也不同,所以掌握pid<->handle<->eprocess相互转换的方法会大大提高我们的开...

simpower
20分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部