編輯:Android開發實例
前幾天,又切換回ubuntu11.04系統了,體驗以下unity桌面。
android系統源碼(包括sdk源碼)的下載主要是需要用到git工具,關於git工具的使用我會抽空專門介紹,這裡用到的時候簡略說明一下。
1.安裝git和curl
命令:
$sudo apt-get install git-core curl
說明:
curl是一個向服務器或從服務器傳輸數據的工具,它支持HTTP 、HTTPS、FTP 、 FTPS 、 SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE等協議。對於web開發人員來說,它對
命令:
$mkdir bin //下載repo腳本到本地bin文件夾下 $curl http://android.git.kernel.org/repo >~/bin/repo //設置本地repo的可執行權限 $chmod a+x ~/bin/repo //臨時把repo添加到環境變量中,方便後面執行。 $export PATH=~/bin:$PATH
說明:
repo是一個基於git的版本庫管理工具,可以簡化android開發中使git的使用。在這裡,使用repo和官方提供的android project列表自動批量下載android整個項目,免去了大量下載各個項目的手動工作量。
3.初始化repo客戶端
命令:
//創建目錄android/android-source來存放下載的源碼 $mkdir android/android-source -p //進入目錄 $cd android/android-source //獲取項目列表並且初始化目錄 $repo init -u git://android.git.kernel.org/platform/manifest.git
初始化完成後會顯示repo initialized in /home/http://www.cnblogs.com/xx,如下圖:
4.同步版本庫
命令:
$repo sync
說白了,就是從服務器上下載最新的代碼。
接下來就是漫長的等待,本人10M帶寬,依然下載了幾個小時。忘記截圖了,就不貼了。
5.下載單個項目的源碼
前面我們把android整個項目都下載下來了 ,包括虛擬機,SDK,NDK等,但是對於相當多的應用開發者來說,只需要下載android sdk源代碼就足夠了,沒必要下載3個多G的全部源碼。
所以,我們以SDK源碼為例子,演示如何使用git下載單個項目工程(下載單個項目不需要repo工具)。
打開網頁 http://android.git.kernel.org/,包含大量的android相關的工程。
android SDK的代碼包括在android核心框架中。工程路徑為 platform/frameworks/base.git。
命令:
//進入之前建立的android目錄 $cd android //克隆服務器端的base的版本庫和代碼到android-sdk-source目錄下 $git clone git://android.git.kernel.org/platform/frameworks/base.git android-sdk-source
等待一會兒,大概200M,下載完成後,如下圖。
類似的,你可以下載任何其他的單個項目到本地。
6.獲取各個版本SDK源碼
關於獲取各個版本的SDK源碼,網上還是身邊經常有人急需阿,跪求阿什麼的,今天我在這裡拋磚引玉,演示一下方法,但是不提供下載,畢竟文件還是有一定的大小的。
首先我們現獲取SDK的各版本的標志,有兩種方式:1.通過分支branch;2.通過標簽tag。
我們先看看結果:
//進入base版本庫目錄 $cd android-sdk-source //顯示所有的分支,包括遠程和本地分支,我們沒有建立分支,所有沒有本地分支 $git branch -a //顯示所有標簽 $git tag
分別如下面二圖:
圖A git branch -a
圖B git tag
從上面兩張圖中我們可以看到各個分支號和標簽號,這是我們切換分支和檢出標簽的基礎。關於兩者的區別,如果你只是下載的話,大家暫時不需要知道,branch是可以提交修改的,tag則只是作一個重要的標記,但是不能再修改標簽對應的代碼了。
大家都知道android在2.3中開始添加了NFC,所以源代碼中也會增加NFC目錄,我們以此為基礎,切換到2.3之前和之後的分支,比較一下。
我們使用git checkout (branch)命令來檢出分支,我們分別檢出2.2和2.3版本的分支(同一目錄下切換):
得到的結果分別是:
圖A froyo版本(android2.2)
圖B gingerbread版本(2.3版本,姜餅)
對比圖A和圖B,我們發現圖B多了一個nfc目錄,說明我們切換到了2.3版本。
檢出標簽也是一模一樣的,比如git check android-sdk-2.1_r1
通過切換不同的分支,我們可以獲取所有不同版本的SDK源代碼,切換的速度還是很快的。
7.鏈接android.jar源碼
一般我們都喜歡下載各個版本的sdk源碼,分別存放在各個版本的sources目錄下,以便eclipse方法中android.jar對應鏈接。這種方法我就不多介紹。
今天,我介紹另外一種方法讓我們只需要一個簡單的命令就能方便的切換源代碼,呵呵,你是不是想到了,沒錯,就是使用前面的checkout命令切換。
在工程的android.jar右鍵attach source,選擇前面的android-sdk-source文件夾,
鏈接完來後,就可查看SDK源代碼了,如果版本不一致,我們只需要在android-sdk-source目錄下執行git checkout branchname切換到相應的版本就OK了,再也不用找各個版本的源代碼了。
當然,兩種方法各有長短,覺得哪種方便就用哪種好了,本人是linux環境,所以我選擇後一種會更好。
8.小結
源碼下下來就是一筆財富,堅持查看源代碼,分析其中的底層實現和框架模式,都絕對是極佳的學習經歷,一定大有益處。
後面有機會我可能會為大家分析下android源碼的架構層次,編譯自己的android系統,如何深度定制android等等,這個看時間安排和具體情況。
不過有一個是可以肯定的,我在後面會單獨開一個專題來剖析android源碼:1.用源碼來解說常見的東西;2.設計模式,敬請期待!
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩