Android Studio 集成 TFS,实现安卓移动开发的持续集成和交付(DevOps)

目录

1 集成TFS系统....

    1.1 概述....

    1.2 安装TFS插件....

        1.2.1 在线安装方式....

        1.2.2 离线安装方案....

    1.3 常见操作....

        1.3.1 新建Git库....

        1.3.2 在Android Studio上克隆代码库...

        1.3.3 连接VSTS.

    1.4 导入代码(TFS)....

        1.4.1 导入到TFS.

        1.4.2 导入到VSTS.

    1.5 提交修改....

    1.6 同步(推送)....

    1.7 克隆代码库到本地...

2 持续集成....

    2.1 安装代理服务器....

    2.2 配置和运行生成定义....

3 常见问题....

    3.1 运行出现“Please select android SDK”

    3.2 无法通过用户认证....

    3.3 无法下载中文团队项目集合中的Git库..

    3.4 打开代码库的速度特别慢...

    3.5 Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager

1 集成TFS系统

1.1 概述

Android Studio是安卓应用程序开发的官方集成开发工具(IDE),它是基于IntelliJ IDEA的一个开发软件。我们可以从安卓的官方网站找到更多关于它的资料:http://developer.android.com/tools/studio/index.html

TFS是微软的DevOps解决方案,实现了包括需求管理、编码开发、测试、持续集成和发布等全流程的研发管理,并支持主流开发工具和开发语言的技术支持。为了在Android Studio中实现软件研发管理,微软发了基于Android Studio的TFS插件https://github.com/Microsoft/vso-intellij/ 。这个插件允许您以无缝和直观的方式连接到Visual Studio团队服务(Git)和Team Foundation Server(TFS)上的Git存储库。你也可以使用这个插件来导入您的Android开发项目为VSTS或创建拉要求在VSTS / TFS Git仓库。你也可以使用这个插件创建和管理TFS服务器中的拉取请求。

下面我们来介绍在Android Studio中如何使用这个插件。

1.2 安装TFS插件

1.2.1 在线安装方式

可以通过浏览插件库,从Android Studio中在线安装VSTS插件。

1 在Android Studio中, 打开插件的设置窗口:

l Linux: from the File menu, select Settings... then Plugins

l Mac: from the Android Studio menu, select Preferences... then Plugins

l Windows: from the File menu, select Settings... then Plugins

2.点击Browse repositories... 按钮,并在搜索框中搜索"Visual Studio Team Services".

3.点击Install plugin 按钮,并重新启动Android Studio.

操作方式如下:

image

Figure 55 – 打开设置窗口

image

Figure 56 – 安装VSTS插件

1.2.2 离线安装方案

- 从Android Studio插件库(http://plugins.jetbrains.com/plugin/7981?pr=androidstudio)下载插件

- 从本地安装:File > Settings > Plugins > Install plugin from disk…

image

Figure 57 – 从本地磁盘中安装VSTS插件

1.3 常见操作

1.3.1 新建Git库

使用Android Studio连接TFS服务器,首先需要在TFS服务器上新建代码库,上传一套已经存在的代码。(你也可以参考后面的操作导入一套代码,并新建一个Git代码库。)

image

Figure 58 – 在TFS服务器上新建代码库

image

Figure 59

1.3.2 在Android Studio上克隆代码库

image

Figure 60 – 从TFS服务器上下载/克隆代码到本地计算机

image

Figure 61 – 输入TFS服务器地址,并按要求输入账户、密码

image

Figure 62

(点击Clone以后,代码没有克隆到本地目录,也没有提示错误)

如果出现上面的错误,是由于目前的版本存在一个Bug,不能解决非Unicode编码的URL,我已经和微软产品组沟通确认,并有产品组创建了一个问题https://github.com/Microsoft/vso-intellij/issues/132 ,用于跟踪问题解决的进展。

目前解决的方案是尽量确保Git地址栏中没有中文字符,或者使用命令行方式克隆代码。

1.3.3 连接VSTS

连接VSTS的方式与TFS基本一致,需要我们已经注册了VSTS的账户。例如我使用自己的账户zhanghongjun@msn.com登录VSTS以后,插件会自动罗列我的Git代码库。

image

Figure 63

image

Figure 64 – 选择一个代码库,克隆代码到本地计算机

image

Figure 65

1.4 导入代码(TFS)

1.4.1 导入到TFS

在Android Studio中打开一个本地项目

image

Figure 66

image

Figure 67

image

Figure 68

image

Figure 69

1.4.2 导入到VSTS

image

Figure 70 - 后面的方法和TFS基本一致

1.5 提交修改

image

Figure 76

1.6 同步(推送)

image

Figure 77

image

Figure 78

1.7 克隆代码库到本地

image

Figure 80

image

Figure 81

2 持续集成

2.1 安装代理服务器

配置Android编译代理服务器,至少需要下面的环境:

1) Windows Server 2016(或其他支持TFS 2018的代理服务器的操作系统,例如Win 2012)

2) Java环境开发包(JDK)

3) 安卓开发包(ADK)

4) TFS代理服务器

下面是配置代理服务器的方法和步骤

1) 安装JAVA SDK

安装JDK的方法和其他开发工具的方法一样,从官方网站下载Windows 64位的压缩包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

- 下载以后解压到代理服务器的相关目录中,例如:C:\java\jdk1.8.0_91

- 并配置环境变量 JAVA_HOME,值为:C:\java\jdk1.8.0_91

- 将路径% JAVA_HOME %\bin添加到环境变量PATH的值中

Figure 84 – 环境变量:JAVA_HOME、ANDROID_HOME

2) 安装Android SDK

- 从官方网站https://developer.android.com/studio/index.html 下载最新版本的Android SDK,并解压到代理服务器的相应目录中。

你也可以下载完整版本的Android Studio,其中包含了SDK。我在部署的过程中,由于需要在代理服务器上调试安卓代码,就采取了安装Android Studio的方式安装SDK。

- 配置环境变量ANDROID_HOME

例如路径:C:\Users\tfsadmin\AppData\Local\Android\Sdk

- 将下列路径添加到环境变量Path的值中:

n %ANDROID_HOME%\tools

n %ANDROID_HOME%\platform-tools

3) 安装TFS代理程序

- 从微软官方下载最新版本的代理程序

https://github.com/Microsoft/vso-agent

并将代理程序解压缩到代理服务器的任一目录中

- 在命令行窗口中配置代理程序

Configure.bat

4) 验证代理程序

代理程序安装成功后,我们可以在TFS服务器的管理界面中查询到代理服务器,也可以查询到代理服务器上Android SDK版本,如下图:

image

Figure 85 – TFS管理界面中的代理

2.2 配置和运行生成定义

在配置生产定义之前,首先需要简单理解一下Gradle(https://gradle.org/)这个编译工具。

Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。在功能上,Gradle与常见的ant、maven、msbuild等比较相似,为用户提供非常强大的编译功能。

Android Studio原生配置了Gradle编译工具,创建项目时,开发工具会自动创建Gradle需要的配置文件和编译脚本;在开发过程中,也会根据软件功能的变化自动修改Gradle编译脚本。

TFS 2018中自带了Gradle的编译模板,可以为Android软件快速创建编译工作流程。下面我们来介绍如何在TFS 2018中创为Android代码创建Gradle生成定义:

image

Figure 87 – 新建生成定义

image

Figure 88 – 选择系统提供的Gradle生产模板

image

Figure 89 – 选择生产代理所在的代理队列

image

Figure 90 – 由于我需要输出的文件是app安装文件APK,将默认的jar修改为apk,生成流程会自动将输出的文件发布到生产结果中

在我的测试中,生产过程中没有其他任务需要执行,就可以保留目前的默认设置,点击“保存并排队”,TFS就会启动刚才定义的生成流程,如下图:

image

Figure 91 – 保存并排队

第一次启动生成流程,由于编译过程中需要根据项目的配置要求获取所需的Gradle版本,我们必须确保代理服务器处于联网状态。例如我的实验代码需要Gradle 4.1版本(如下图)。

image

Figure 92

如果代理服务器不能联网,需要我们手工下载对应的Gradle版本,并将其复制到代理服务账户所在的.Gradle目录中,例如我使用tfsservice启动代理服务,则需要将gradle-4-1-all.zip文件下载并复制到这个目录中(C:\Users\tfsservice\.gradle\wrapper\dists\gradle-4.1-all)。注意,不需要解压缩文件。

当所需的Gradle版本下载完成以后,TFS会自动运行生成脚本,并完成后续的编译任务,例如我的生产定义中的复制、发布等任务,如下图:

image

Figure 93 – 生产过程中的实时记录

生成成功后,我们就可以在生产结果中,点击“项目”,查看到生成输出的APK文件,如下图:

image

Figure 94 – 生成的输出文件

3 常见问题

3.1 运行出现“Please select android SDK”

由于重新从服务器上克隆的代码库,修改了本地代码库的路径,出现上面的错误。

解决方法参考下面的连接:

https://stackoverflow.com/questions/34353220/android-studio-please-select-android-sdk

Tools -> Android -> Sync Project with Gradle Files (Android Studio 3.0.1)

3.2 无法通过用户认证

安装IIS的基本认证功能,并在IIS中为team foundation server/tfs启用基本认证功能。

3.3 无法下载中文团队项目集合中的Git库

当Git服务器的URL中包含非Unicode的编码字符时,将TFS插件导致TFS插件克隆或者导入失败。已经向微软产品组反馈,并确认为缺陷,在开发网站中创建了用于跟踪问题的Bug https://github.com/Microsoft/vso-intellij/issues/132

3.4 打开代码库的速度特别慢

TFS服务器运行在虚拟机中,从物理机访问代码库特别慢。

解决办法:断开物理机连接其他网络的网卡。

3.5 Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.

需要在命令行模式下接受授权

image


微软ALM MVP 张洪君 http://www.cnblogs.com/danzhang

--End--


-

posted on 2018-02-22 00:57  danzhang  阅读(4225)  评论(2编辑  收藏  举报

导航