Android on 華為云DevCloud
1?文章目的

本文主要幫助想要或者正在用華為軟件開發服務Devcloud進行Android開發用戶,流暢的使用華為軟件開發服務。
2?概述
2.1?Android
Android是一種基于Linux的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。Android操作系統最初由Andy Rubin開發,主要支持手機。2007年11月,Google與84家硬件制造商、軟件開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨后Google以Apache開源許可證的授權方式,發布了Android的源代碼。(摘自百度百科)
2.2?華為軟件開發服務DevCloud
官網入口:華為軟件開發服務(DevCloud)
華為軟件開發服務(DevCloud)是集華為近30年研發實踐,前沿研發理念,先進研發工具為一體的一站式云端DevOps平臺,面向開發者提供包括項目管理,代碼托管,流水線,代碼檢查,編譯構建,測試管理,移動應用測試,部署,發布,CloudIDE,研發協同等基礎功能的研發工具服務。覆蓋軟件開發全生命周期,支持多種主流研發場景,讓軟件開發更高效。
3?前提條件
3.1?華為云賬號
使用華為軟件開發服務,首先需要注冊一個華為云賬號。
3.2?Git客戶端
使用git托管代碼,在本地需要安裝git客戶端,與云上代碼倉庫建立連接。
Git的安裝與使用,請參考軟件開發服務資料秘籍。
3.3?已經創建好的項目
創建項目
在華為云官網首頁-產品-軟件開發服務,進入華為軟件開發服務首頁。
點擊右上角“新建”按鈕新建項目
輸入項目名稱,選擇開發流程,輸入項目描述,點擊“新建”按鈕即完成了一個項目的創建。點擊創建好的項目,進入具體的項目,華為軟件開發服務為軟件開發者提供了完善的項目管理服務,具體使用方法參見項目管理幫助總覽。
4?研發場景概覽
4.1?示例項目概述
1.項目名稱:V2EX Daily App
2.項目簡介:V2EX,是一個匯集各類奇妙好玩的話題和流行動向的網站。本項目通過V2EX提供的API接口,實現在手機端實時獲取V2EX提供的各種信息,讓你不論身在何處,都可以徜徉在V2EX的話題的海洋中。
3.項目類型:Android App應用
4.開發環境:JDK?+ android studio?+ SDK
5?代碼托管
華為軟件開發服務提供基于Git的代碼托管倉庫,倉庫提供可視化的管理界面,Android開發者可將自己的Android工程代碼上傳到此倉庫中進行代碼托管。
代碼同步
本文采用的是一個開源的Android demo代碼,大家可以通過以下方式進行下載使用。
進入DevCloud的代碼廣場,在搜索框中輸入V2EX點擊搜索,如下圖所示。
搜索出相應代碼后,可以直接通過fork功能,將代碼fork到自己新建的項目中,如下圖所示。
:fork后代碼倉庫默認為共有倉庫,用戶可以到代碼托管-設置-基本設置中進行私有倉庫切換,如下圖所示:
也可以通過代碼廣場提供的下載功能,將代碼下載到本地,然后通過git客戶端將代碼上傳到DevCloud代碼倉庫。
代碼倉庫
在代碼托管首頁面點擊創建的代碼倉庫,可以進入到代碼倉庫里,這里支持文件在線編輯,倉庫提交記錄,代碼貢獻度統計等多種功能,滿足各類開發者的需求。
代碼倉庫的具體使用方式,如密鑰配置,代碼下載、提交,分支變更、保護等請參考軟件開發服務資料秘籍
6?代碼檢查
可在線進行代碼靜態檢查、代碼架構檢查、代碼安全檢查、編碼問題檢查、質量評分、代碼缺陷改進趨勢分析,輔助用戶管控代碼質量
代碼質量檢查
根據文檔配置代碼檢查任務,在選擇規則集時選擇想要檢查出的Android致命問題規則集、Android嚴重問題規則集、Android一般問題規則集、Android提示問題規則集(根據自己的情況選擇)。
代碼檢查任務執行完畢,在問題列表中查看代碼檢查結果,針對每個問題都會給出詳細的問題描述和修改建議,修改完畢后,再次執行代碼檢查任務,查看任務執行結果,形成代碼質量改進閉環。
7?持續交付
7.1?編譯構建
Android項目需要進行編譯構建將源碼編譯成目標軟件包,我們需要通過執行云端編譯構建過程將程序打包,進行軟件組件的歸檔發布管理,如果項目有服務器端也方便下個階段的部署環節直接調取云端構建包執行自動化部署。
編譯
進入“構建”首頁,點擊“新建任務”,進入新建任務界面,按步驟配置構建任務。
在“基本信息”步驟,設置任務名稱,配置版本參數,如下圖所示。
點擊下一步,進入“代碼配置”步驟,
在“代碼配置”步驟選擇需要構建的代碼倉庫,點擊“下一步”,進入“構建配置”步驟。
通過上圖可知devcloud目前支持的gradle版本,那在這個項目里我們應該選擇哪個版本呢?
:首先,我們進入代碼倉庫根目錄下的gradle文件,如下所示
根據gradle插件跟gradle版本對應表可知,當前項目gradle插件版本較低,軟開云不支持相應版本,需更新插件版本
在這里,我們選擇gradle3.3,所以對應的我們需要對根目錄下的gradle文件,做如下修正:
版本打包歸檔
在“構建執行配置”步驟添加“歸檔”步驟,并指定歸檔文件(這里指定的歸檔文件是打包命令打包生成的apk文件),這樣構建完成可以下載構建生成的軟件包。添加“上傳軟件包到軟件發布倉庫”步驟可以將構建生成的軟件包上傳到發布倉庫,自動進行軟件版本管理。點擊“下一步”,進入“構建計劃配置”步驟。
定時構建
在“構建計劃配置”中可以設置任務的執行計劃,可以使構建任務在指定時間執行。點擊“保存”即完成構建任務的創建。
構建日志
點擊進入構建任務,點擊“開始構建”按鈕,即開始執行構建,構建過程中,工作空間會顯示構建日志,檢查構建過程和歸檔發布過程是否有問題出現。
本項目在初次構建的時候,可能會報以下問題:
問題一:
解決辦法:buildToolsVersion導致,將app目錄下的gradle文件中buildToolsVersion版本升級,如下圖所示。
問題二:
解決辦法:根據日志提示,對app目錄下的gradle文件做如下修正:
構建成功后可以點擊“下載構建包”下載本次構建生成的軟件包,如下圖所示。
:注意當前編譯構建生成的APK包均為非簽名APK安裝包。
構建歷史
點擊“構建歷史”可以查看歷史構建詳情,并支持下載歷史構建軟件包。
:在平時的Android開發中,我們經常會遇到在不同網絡環境(比如:開發環境、測試環境)之間的切換等需求,如何優雅的管理網絡環境的配置?如果每一次在不同網絡環境間切換,都需要更改代碼,然而重新打包,那未免有點低效。下面我們提供一種常用的多環境打包的方法,供大家參考。
在app目錄下的gradle文件的android配置中,添加如下配置。
修改完畢后,進入編譯構建頁面,點擊開始構建,構建成功后,點擊下載構建包,如下圖所示,已經可以下載生成的多版本、多環境構建包。
:多版本、多環境構建包已經可以生成了,那如何打簽名包呢?首先我們要準備好自己的.jks簽名文件,將簽名文件放到如下路徑中:
然后,在app目錄下的gradle文件的android配置中,添加如下配置
修改完畢后,進入編譯構建頁面,點擊開始構建,構建成功后,再次下載的release構建包就是帶簽名的構建包了。
7.2?發布
軟件倉庫
軟件開發服務提供4種類型的發布倉庫,前兩種是遠程Maven私倉,用于Maven類型構建過程中第三方依賴包的的管理。第三個倉庫是mirror鏡像倉,鏡像了一些構建過程中經常以來的中央倉到后臺,提升構建速度,體現云端構建的優勢。我們本次demo中應用最后一個編譯構建倉庫,作為生成的軟件包的版本歸檔管理倉庫。
版本管理和下載
由于在構建任務里配置了“上傳到發布倉庫”步驟,每次構建結束后,可以在發布倉庫里就會新增一個本次構建生成的軟件包,實現軟件版本的自動管理。在配置部署任務時就可以在這里選擇要部署的軟件包文件了。這里支持將某次構建的軟件包下載到本地。
編譯構建成功后,去發布倉庫頁面,確認如下:
7.3?流水線
當所有流程打通之后,設置對應的流水線,將所有流程添加進去,實現自動化的構建發布一鍵執行。
將需要的任務添加進流水線中,并運行流水線。
7.4?測試
測試管理(TestMan)是面向軟件開發者提供的一體化測試解決方案,覆蓋測試需求、用例管理、測試任務管理、缺陷管理,多維度評估產品質量,幫助您高效管理測試活動,保障產品高質量交付。
DevCloud跟TestBird合作提供APP 兼容性測試,大家可以根據自己的需要進行機型選取測試。
至此,恭喜您打通了軟件開發服務的各服務,完成了Android的demo搭建。
8?附錄
8.1?軟件開發服務視頻教程
【新手訓練營】幾分鐘教你掌握各個服務基本操作
項目管理??配置管理??流水線??代碼檢查??編譯構建??測試管理??部署??發布
【云途進階課】場景化教學,從實戰中玩轉軟件開發云
Web應用場景——開發一套EHR系統:規劃階段??開發階段??交付階段
App應用場景——打造一款趣味交友App:規劃階段??開發階段??交付階段
8.2?軟件開發服務資料秘籍
Git菜鳥進階手冊
Git圖形化工具進階攻略
8.3?華為云社區Devcloud產品答疑
產品答疑FAQ
軟件開發平臺 DevCloud 軟件開發云
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。