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.
操作方式如下:
Figure 55 – 打开设置窗口
Figure 56 – 安装VSTS插件
1.2.2 离线安装方案
- 从Android Studio插件库(http://plugins.jetbrains.com/plugin/7981?pr=androidstudio)下载插件
- 从本地安装:File > Settings > Plugins > Install plugin from disk…
Figure 57 – 从本地磁盘中安装VSTS插件
1.3 常见操作
1.3.1 新建Git库
使用Android Studio连接TFS服务器,首先需要在TFS服务器上新建代码库,上传一套已经存在的代码。(你也可以参考后面的操作导入一套代码,并新建一个Git代码库。)
Figure 58 – 在TFS服务器上新建代码库
Figure 59
1.3.2 在Android Studio上克隆代码库
Figure 60 – 从TFS服务器上下载/克隆代码到本地计算机
Figure 61 – 输入TFS服务器地址,并按要求输入账户、密码
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代码库。
Figure 63
Figure 64 – 选择一个代码库,克隆代码到本地计算机
Figure 65
1.4 导入代码(TFS)
1.4.1 导入到TFS
在Android Studio中打开一个本地项目
Figure 66
Figure 67
Figure 68
Figure 69
1.4.2 导入到VSTS
Figure 70 - 后面的方法和TFS基本一致
1.5 提交修改
Figure 76
1.6 同步(推送)
Figure 77
Figure 78
1.7 克隆代码库到本地
Figure 80
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版本,如下图:
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生成定义:
Figure 87 – 新建生成定义
Figure 88 – 选择系统提供的Gradle生产模板
Figure 89 – 选择生产代理所在的代理队列
Figure 90 – 由于我需要输出的文件是app安装文件APK,将默认的jar修改为apk,生成流程会自动将输出的文件发布到生产结果中
在我的测试中,生产过程中没有其他任务需要执行,就可以保留目前的默认设置,点击“保存并排队”,TFS就会启动刚才定义的生成流程,如下图:
Figure 91 – 保存并排队
第一次启动生成流程,由于编译过程中需要根据项目的配置要求获取所需的Gradle版本,我们必须确保代理服务器处于联网状态。例如我的实验代码需要Gradle 4.1版本(如下图)。
Figure 92
如果代理服务器不能联网,需要我们手工下载对应的Gradle版本,并将其复制到代理服务账户所在的.Gradle目录中,例如我使用tfsservice启动代理服务,则需要将gradle-4-1-all.zip文件下载并复制到这个目录中(C:\Users\tfsservice\.gradle\wrapper\dists\gradle-4.1-all)。注意,不需要解压缩文件。
当所需的Gradle版本下载完成以后,TFS会自动运行生成脚本,并完成后续的编译任务,例如我的生产定义中的复制、发布等任务,如下图:
Figure 93 – 生产过程中的实时记录
生成成功后,我们就可以在生产结果中,点击“项目”,查看到生成输出的APK文件,如下图:
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.
需要在命令行模式下接受授权
微软ALM MVP 张洪君 http://www.cnblogs.com/danzhang
--End--
-
Android Studio 集成 TFS,实现安卓移动开发的持续集成和交付(DevOps)的更多相关文章
- Android Studio && GitHub 团队多人一起开发
曾几何时,花了两天的时间搞了合并项目,搞得乱七八糟der,但最终还是被我搞定了,too 乱 to 做笔记.过了几个月,也就是前几天,抱着从头开始的决心,再次尝试,然鹅并没有结果.今天,再一次重新开始, ...
- 使用 Jenkins 实现软件开发的持续集成
转自:http://www.ibm.com/developerworks/cn/java/j-lo-jenkinsintegrate/ Jenkins 是一种易于使用的持续集成系统,它可以使开发者从繁 ...
- Android Studio 0.4 + PhoneGap 3.3 开发环境的搭建
最近在尝试HTML5移动平台下的开发 由于安卓的方便性,首先开始了安卓的试验 现在安卓下的开发工具首选 Android Studio (写这文章的时候,是0.4) 而跨平台的HTML5 App比较出名 ...
- 苹果电脑获取Android Studio的发布版SHA1和开发版SHA1
最近开始转战安卓,准备把我在苹果上的应用也在安卓上来一波,其中就遇到一个问题就是最牛天气(iOS和微信小程序都已经有了,就差安卓的了)引用的百度的定位功能,需要填写发布版SHA1和开发版SHA1,作为 ...
- Android Studio使用JNI和NDK进行开发
想要学习一下在Android Studio中进行JNI的开发,文章挺多的,但是几乎没有一个完整的说明的,中间总是有一两步漏掉.分享技术就应该完整的让读者学会,藏着掖着不是君子所为.对于那些故意含糊过去 ...
- 使用Android Studio和Genymotion模拟器搭建Andriod开发环境
一.Android Studio下载 1.打开http://www.android.com/ 2.依照下图步骤打开下载页面 a.在页脚部分点击“App Developer Resources” b.点 ...
- 在Android Studio上进行OpenCV 3.1开发环境配置
开发环境: Windows 7 x 64 家庭版 Android Studio 1.5.1(Gradle版本2.8) JDK 1.8.0 Android 6.0(API 23) OpenCV 3.1. ...
- 用android studio创建第一个安卓程序加载html5 页面
前言 软件版本:android studio v1.0正式版,由于v0.x以来软件变化一直比较大,很多问题搜索的解决方案也都是v0.x版本时代的,故首先声明一下版本. 动机:由于工作中需要对移动端软件 ...
- 使用Android Studio 1.3 版本号进行NDK开发
众所周知Android Studio 1.3 版本号新增了NDK支持,能够非常方便的在上面开发C++或者C代码了,但是预览版功能不是非常完好,须要非常多步骤,另一些奇怪的BUG,整了半天最终能够使用A ...
随机推荐
- New Document (2)
#Markdown 语法说明 (简体中文版) / (点击查看快速入门) ##概述 ###宗旨 兼容 HTML 特殊字符自动转换 区块元素 段落和换行 标题 区块引用 列表 代码区块 分隔线 区段元素 ...
- sqldatareader无法得到output参数的解决
只需要在所有的sqldatareader结束后,加上一句就可以得到输出参数了. sdr.Close(); Object ObjCount = cmd.Parameters["@Count_P ...
- np.random.random()系列函数
1.np.random.random()函数参数 np.random.random((1000, 20)) 上面这个就代表生成1000行 20列的浮点数,浮点数都是从0-1中随机. 2.numpy.r ...
- 在Objc项目中调用Swift
之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧.记录步骤如下: 1.创建OC项目 (1)启动 ...
- 验证二叉查找树 · Validate Binary Search Tree
[抄题]: [思维问题]: 不知道要定义resultType, 其实用仔细分析判断条件就行了:是否是bst+最大最小值 类似于平衡二叉树:是否平衡+左右的高度差 [一句话思路]: [输入量]:空: 正 ...
- 利用redis完成自动补全搜索功能(三)
前面已经完成了分词和自动提示功能,最后把搜索结合在一起,来个完成的案例.当然最好还是用搜索分词解决,这个只是一个临时解决方案. 其实加上搜索很简单,要做的就是3件事 1. 分词的时候,把有用词的id存 ...
- Linux-——grep
概念介绍 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
- mybatis框架入门程序:演示通过mybatis实现数据库的查询操作
我们现在工程基于的数据库见“https://www.cnblogs.com/wyhluckdog/p/10147754.html”这篇博文. 1.mybatis下载 mybatis的代码由githua ...
- Spring框架的IOC核心功能快速入门
2. 步骤一:下载Spring框架的开发包 * 官网:http://spring.io/ * 下载地址:http://repo.springsource.org/libs-release-local/ ...
- js验证input输入正整数 和 输入的金额小数点后保留两位(PC端键盘输入)
// 验证开头不为零的正整数 WST.zhengZhengShuIn = function (className){ var rex = /^[1-9]{1}[0-9]*$/;//正整数 $(&quo ...