iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 29
0
Mobile Development

Android × CI/CD 如何用基本的MVVM專案實現 CI/CD 系列 第 29

Day 29 如何透過AOSP學習怎麼寫tests

  • 分享至 

  • xImage
  •  

今天會來介紹如何透過AOSP(Android Open Source Project)來學習更多技術

當初會碰AOSP的契機是因為工作上的專案在整合cameraX時碰到一個issue

然後因為那個問題蠻好修正的 就開始研究有沒有辦法merge code到AOSP上

雖然最後沒有成功 不過透過提交contribute的過程還是學了不少

關於aosp 官網有提供更多資訊
https://source.android.com/setup/develop

那麼今天就來介紹如何clone專案下來運行

然後接著開始強烈建議運行在mac或ubuntu

我在windows上每次都無法順利clone下來

原因有很多 舉個例子像是他裡面有些檔名是類似這樣 ".xxxxx.ooooo"

或是路徑名稱過長 反正就是一堆奇怪的問題導致無法順利運行

那麼回到今天的課題

今天會clone androidX的framework下來 (cameraX也包含在其中之一)

https://android.googlesource.com/platform/frameworks/support/#using-android-studio

然後照著上面連結的步驟 從
Checking Out the Code

開始
運行到
Using Android Studio

然後他會運行自己的android studio

aosp的android studio 路徑在

/yourproject/androidx-master-dev/frameworks/support/studio/android-studio-ide-191.5675373-mac/Android Studio 3.5 Preview.app

成功運行以後就可以看到類似這樣的畫面
https://ithelp.ithome.com.tw/upload/images/20191013/20120279ZBHGOb7Lwm.png

接著就可以開始看android工程師是怎麼寫了

然後每個merge進master的code都必須要經過測試
所以從commit可以看到更多資訊
https://ithelp.ithome.com.tw/upload/images/20191013/20120279khnIUn6ONg.png

接著 如果你想提出貢獻
那麼你可以參考上面連結的後續步驟或這篇
https://source.android.com/setup/contribute

然後你的commit必須符合特定格式才推得上去 不然會直接被擋
裡面必須要有bug:id 跟 test:yourtest

類似這樣

fixed crash issues below API level 21

If CameraX library running on lower API levels
CameraX provider will not initialize .
Avoid crash on start.

You can change
camera/camera2/build.gradle & camera/core/build.gradle & camera/testing/build.gradle
minSdkVersion below API 21 to verification this testing.

Bug: b/137036156
Test: ..androidx/camera/camera2/impl/Camera2InitializerTest

如果你成功推送 你可以在gerrit上看到你的推送
拿我之前送的當例子
https://android-review.googlesource.com/c/platform/frameworks/support/+/1014311

明天會繼續講如果要contribute該怎麼做


上一篇
Day28 jenkins整合Firebase TestLab -2
下一篇
Day 30 如何在AOSP貢獻(contribute)代碼
系列文
Android × CI/CD 如何用基本的MVVM專案實現 CI/CD 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言