Android 4.4 全套源碼及子模組源碼的下載方法

來源:互聯網
上載者:User

標籤:android   原始碼   ubuntu   安卓   

博文《Android源碼下載——用git clone實現單個目錄下載》介紹了採用git clone方法下載Android單個目錄源碼的方法,這篇文章已經有四年的曆史,這期間Google對原始碼的管理網站已經進行了更改,直接採用原來的方法下載原始碼已經失效。本文介紹了在ubuntu下(在Windows下安裝Cygwin,通過Cygwin也可在Windows裡通過本文的下載步驟下載Android源碼)擷取目前最新的Android 4.4 全套源碼以及單個自模組源碼的下載方法,可根據本文方法下載全套或者只下載子模組Android源碼進行源碼分析和編譯。下載過錯中遇到很多問題,這些問題的解決對大家擷取源密碼很有借鑒意義。
Google源碼的官方協助頁面:http://source.android.com/source/initializing.html,下載源碼按照此頁面介紹的步驟操作即可。
下面簡要介紹下下載的步驟和遇到問題的解決辦法。
1、安裝 Repo
a) 建立Repo的安裝目錄、配置環境變數

$ mkdir ~/bin

$ PATH=~/bin:$PATH

 b) 擷取Repo工具

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo  問題:上面是Google制定的repo擷取地址,但擷取可能失敗。  解決辦法:網上有網友給出了替代的擷取地址,如遇報錯可用下面的地址替代:  curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo
2、建立並進入源碼下載目錄
$ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY
3、初始化源碼Repo
如是下載當前最新的代碼,則:
  repo init -u https://android.googlesource.com/platform/manifest  如是下載特定Android成熟版本分支的代碼,則加上-b 參數,如當前最新發行的android 4.4分支代碼:
  repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.1_r1  命令如順利執行,期間將要求輸入unsername和email,直接輸入自己的自訂的使用者名稱和email即可。  問題:在init過錯中,可能會出現如下的443串連失敗錯誤:  error: Failed connect to android.googlesource.com:443  解決辦法:找到/etc/hosts檔案,增加如下地址(如無法儲存需要用root許可權修改hosts檔案的存取權限):   74.125.128.82    android.googlesource.com   74.125.31.82    www.googlesource.com   203.208.46.172    cache.pack.google.com   173.194.74.82   gerrit.googlesource.com  上面的地址可能會發生變化,儲存前在終端用ping命令逐個ping各個網域名稱的當前IP地址替換: 
  e.g.: ping android.googlesource.com
 4、同步全套原始碼 
 $ repo sync
  問題:命令執行過程中可能會報錯: 
 fatal: ‘../platform/abi/cpp.git‘ does not appear to be a git repository fatal: The remote end hung up unexpectedly error: Cannot fetch platform/abi/cpp 
解決辦法
在init成功後下載的.repo目錄下的manifest.xml裡,找到fetch屬性,並修改為:
fetch= "git://Android.git.linaro.org/"

repo sync命令在執行過程中一般不會一次性成功,中途可能逾時或存在其他失敗,此時只需再次執行repo sync即可,以前的記錄會被緩衝的。

 5、同步子模組代碼
 repo syn命令是同步所制定分支的全套代碼,但全套代碼的執行過程很長,有時候也並不需要全套代碼而只需要特定子模組的代碼。 擷取子模組的方法是在repo sync 命令後加上子模組的git節點目錄名即可,例如想要擷取Launcher3模組的原始碼:
 repo sync packages/apps/Launcher3 各個子模組的節點目錄尋找方法: 
 在init成功後下載的.repo目錄下的manifest.xml裡,找到子模組的project 屬性即可: e.g. Launcher 3 的git目錄:  ...  <project path="packages/apps/Launcher2" name="platform/packages/apps/Launcher2" />  <project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" />  <project path="packages/apps/LegacyCamera" name="platform/packages/apps/LegacyCamera" /> ...
My Phone專賣店,歡迎各位看官捧場http://vpclub.octech.com.cn/ztewd/9495.html

本文為原創文章,轉載請註明出處:http://blog.csdn.net/droidpioneer

Android 4.4 全套源碼及子模組源碼的下載方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.