日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

本地编译AndroidX源码

發布時間:2024/8/1 Android 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 本地编译AndroidX源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景


曾經為了把玩Jetpack Compose,下載了AndroidX的源碼并在本地編譯運行。雖然現在Compose已經發布了獨立aar,無需通過編譯源碼引入工程了,但是如果想了解AndroidX其他庫的實現,或者像嘗試增加自己的修改時,本地編譯還是一個不錯的選擇,這里整理一下本地編譯AndroidX源碼的步驟。


下載源碼


AndroidX也屬于AOSP的一部分。下載AOSP源碼需要使用repo。repo是一個腳本工具,可以一次性組合下載多個Git倉庫。首先安裝repo命令如下:

$ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo

AOSP 中我們只下載AndroidX相關的Git倉庫 ,可以通過指定 androidx-master-dev 分支進行下載

$ mkdir androidx-master-dev && cd androidx-master-dev $ repo init -u https://android.googlesource.com/platform/manifest \-b androidx-master-dev $ repo sync -c -j9

打開工程


AndroidX 的開發調試需要使用Android Studio。 為了避免源碼與開發者手頭的AS版本不兼容,下載的源碼中自帶了配套的AS,可以通過cmd啟動:

$ cd androidx-master-dev/frameworks/support $ ./studiow

需要注意Jetpack Compose 相對于其他組件,需要特別版本的AS才能運行,路徑如下:

$ cd androidx-master-dev/frameworks/support/ui $ ./studiow

運行demo


AndroidX 項目中包含幾個Demo的APP,便于開發者和學習者進行一些參考和調試。

  • support-v4-demos
  • support-v7-demos
  • support-transition-demos
  • support-emoji-demos

  • 可以使用Android Studio編譯運行,也可以直接用gradle命令運行
# build $ ./gradlew assembleDebug# test $ ./gradlew support-transition:connectedCheck

提交PR


如果發現了AndroidX的bug,可以基于AndroidX主線拉一個分支,修改并經過Demo/Test驗證后,向AOSP提交PR(Pull Reauest),在AOSP中一般被稱為CL(Change List):

$ cd frameworks/support# 切分支,repo start 其實是 git checkout -b 的封裝 $ repo start my-change .# 本地修改,調試,測試# git commit $ git add . $ git commit# 提交Gerrit review $ repo upload .# review結果修正后,追加comment 重新上傳 $ git add . $ git commit --amend $ repo upload .

提交的comment message有一定要求,一般會自動添加 Change-id: 行,此行不能刪除。
另外,需要在Change-Id上面追加測試情況 Test: {Test Class名等}
AOSP的bug會使用 issuetracker 進行管理,如果修復了issuetracker的bug,還需要追加Bug:{BugID}


本地Marven


除了本地基于源碼調試以外,也可以將工程打包成本地aar使用,通過以下gradle命令發布到本地maven倉庫

cd frameworks/support ./gradlew publishMavenPublicationToMavenLocal

執行后,可以在以下位置看到androidx的目錄

$ ls ~/.m2/repository/androidx/ activity benchmark contentpager ....

可以確認當前androidx版本:

$ ls ~/.m2/repository/androidx/work/work-runtime-ktx/ 2.3.0-rc01

在項目中配置本地marven庫:

allprojects {repositories {google()jcenter()mavenLocal() // 追加本地倉庫依賴} }

然后在module中的dependencies中就可以依賴本地marven中的支持的AndroidX版本了

implementation 'androidx.work:work-runtime-ktx:2.3.0-rc01'

總結

以上是生活随笔為你收集整理的本地编译AndroidX源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。