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--


-


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM