今天會來介紹如何透過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
成功運行以後就可以看到類似這樣的畫面
接著就可以開始看android工程師是怎麼寫了
然後每個merge進master的code都必須要經過測試
所以從commit可以看到更多資訊
接著 如果你想提出貢獻
那麼你可以參考上面連結的後續步驟或這篇
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該怎麼做