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

來源:互聯網
上載者:User

標籤:手機   檔案   line   user   led   expected   問題   ann   環境   

博文《Android原始碼下載——用git clone實現單個檔案夾下載》介紹了採用git clone方法下載Android單個檔案夾原始碼的方法,這篇文章已經有四年的曆史,這期間Google對原始碼的管理網站已經進行了更改,直接採用原來的方法下載原始碼已經失效。

本文介紹了在ubuntu下(在Windows下安裝Cygwin,通過Cygwin也可在Windows裡通過本文的下載步驟下載Android原始碼)擷取眼下最新的Android 4.4 全套原始碼以及單個自模組原始碼的下載方法。可依據本文方法下載全套或者僅僅下載子模組Android原始碼進行原始碼分析和編譯。下載過錯中遇到非常多問題,這些問題的解決對大家擷取源password非常有借鑒意義。
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。直接輸入自己的自己定義的username和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.