使用Git下載Android源碼方法(不用梯子)

  1. 這里推薦一個在線源碼閱讀的網(wǎng)站 , 速度非常快 , 而且支持文件名查詢 , 如果你想找某一個類在哪個模塊但是又不清楚的話 , 就可以使用它先搜一下 ;

    https://www.androidos.net.cn/

  2. 首先要安裝一個GitBash (小烏龜也可以 , 但是GitBash比較靈活 , 推薦使用) ;

    下載URL : https://git-scm.com/downloads

如果下載鏈接失效 , 直接搜索GitBash找到一個下載即可

  1. GitBash安裝好以后就可以直接使用 , 不需要登錄等操作 ;

  2. 由于有墻 , 所以谷歌托管代碼的網(wǎng)站 https://android.googlesource.com 上不去 , 有下面兩種方法解決這個問題 :

    1. 使用梯子或者海外節(jié)點(diǎn)下載 ;
    2. 使用清華大學(xué)的開源軟件鏡像站進(jìn)行下載 (它與谷歌托管代碼的網(wǎng)站是同步的 , 而且不需要用梯子 , 速度挺快的) ;

    AOSP(Android Open Source Project)相關(guān)頁面為 :
    https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
    使用方法為 : 下載url中的
    https://android.googlesource.com/ 全部使用
    https://aosp.tuna.tsinghua.edu.cn/ 代替即可
    (參考 Google 教程 https://source.android.com/source/downloading.html)
    (有墻 , 但是網(wǎng)上有文檔)

  3. 在正式下載源碼前 , 還有很重要的一個步驟 , 就是選擇你想要下載的源碼版本以及想要下載的模塊 , 比如你想要查看藍(lán)牙模塊中BLE相關(guān)的代碼 , 但是不同版本實(shí)現(xiàn)的bluetooth不一樣 , 4.3前沒有 BLE 而4.4以后有了 BLE , 這時候你就要手動選擇安卓版本 , 接下來就講解如何獲取對應(yīng)版本的模塊以及查找下載路徑 ;

  4. 首先需要把Android的Manifest拉取下來(由于是清單文件 , 所以此git庫非常的小 , 僅僅是一些配置信息)

    執(zhí)行 git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest.git manifest

    這行命令的最終結(jié)果為 :
    如果你在D盤執(zhí)行這行命令 , 那么gitbash會創(chuàng)建一個manifest的目錄 , 然后把.git目錄和相應(yīng)的文件拉取到這個新目錄中 ;
    目錄為 D:manifest/...
    這個目錄下有一個 default.xml 文件 , 這個文件中就有你需要的android源碼的路徑以及模塊名字 ;
    可是這時候android版本可能不是你需要的版本 ;
    所以最好手動指定一下版本 ;

  5. 當(dāng)把這個清單文件拉取下來后 , 在gitbash窗口中進(jìn)入對應(yīng)目錄 , 如果不會操作可以關(guān)掉以后在該目錄中 右鍵->GitBash here ;

  6. 接下來就是查找版本了

    執(zhí)行 git tag

    這時候會出現(xiàn)所以打了tag的版本(一般只有正式版本才會打tag) , 然后從里面找出你需要的android版本 , 把名字復(fù)制下來 ;
    打了tag的有很多 , 其中除了Android源碼還有Gradle , android-cts , android-sdk 的源碼 , 注意不要找錯了 ;

  7. 當(dāng)你找到了需要的android版本以后(這里以 android-6.0.1_r81 版本為例)

    執(zhí)行 : git checkout android-6.0.1_r81

    這時候你的分支就由master變?yōu)?android-6.0.1_r81 了

  8. 這個時候打開 D:manifest/default.xml , 然后就可以看到不同project(工程/模塊)的path , name等信息了 ;

  9. 在最前面的default標(biāo)簽中 , 有當(dāng)前清單對應(yīng)的版本信息了 (revision屬性)

  10. 到了這一步 , 幾乎可以說大功告成了 , 接下來只要拼接好git庫的url , 然后執(zhí)行clone命令就可以了 ;
    這里以默認(rèn)的輸入法OpenWnn模塊為例
    (之所以用這個為例是因?yàn)閒ramework/base在github上已經(jīng)托管了 , 但是其他的沒有找到 , 而packages目錄下的那些默認(rèn)的app也是需要分析的)
    首先從path中定位到你需要的模塊路徑 , 然后把它的name記錄下來 ;
    <project path="packages/inputmethods/OpenWnn" name="platform/packages/inputmethods/OpenWnn" groups="pdk-fs" />
    這里的 path 是工程目錄下對應(yīng)的路徑 , name是下載時候拼接url用的 ;
    下載url拼接原則為 : "https://aosp.tuna.tsinghua.edu.cn/" + name + ".git"
    示例如下 :

執(zhí)行 : git clone https://aosp.tuna.tsinghua.edu.cn/platform/packages/inputmethods/OpenWnn OpenWnn

  1. 接著就等待下載進(jìn)度走完了 , 就可以進(jìn)行查閱修改等操作了 ;
  2. 果你想用梯子的話 , 那么所有操作只需要把
    https://aosp.tuna.tsinghua.edu.cn/ 替換回
    https://android.googlesource.com/即可 ;
    包括獲取manifest的步驟 ;
  3. 由于清單文件可能會改變(比如Google調(diào)整了目錄結(jié)構(gòu)) , 所以在拉取一個模塊前最好能夠更新一下清單文件 ;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容