Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 4.4 全套源碼及子模塊源碼的下載方法

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

編輯:關於Android編程

博文《Android源碼下載——用git clone實現單個目錄下載》介紹了采用git clone方法下載Android單個目錄源碼的方法,這篇文章已經有四年的歷史,這期間Google對源代碼的管理網站已經進行了更改,直接采用原來的方法下載源代碼已經失效。本文介紹了在ubuntu下獲取目前最新的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目錄:
  ...
  
   path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" />
  
 ...

*****************************************************************************************************************************************/

本文為原創文章,轉載請務必注明出處:http://blog.csdn.net/droidpioneer/article/details/24738353

我的手機專賣小店,安卓開發用機友情鏈接:http://vpclub.octech.com.cn/ztewd/9495.html

/***********************************************************************************************************************

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved