Chinaunix首页 | 论坛 | 博客
  • 博客访问: 811207
  • 博文数量: 210
  • 博客积分: 10002
  • 博客等级: 上将
  • 技术积分: 1840
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 09:56
文章分类

全部博文(210)

文章存档

2011年(1)

2010年(6)

2009年(65)

2008年(138)

我的朋友

分类: LINUX

2008-11-24 14:39:11

How to retrieve data through content providers?

在 Android 中,每個應用程式都是用自己的 user ID 及在自己的 process 中執行。這樣做的好處是,可以保護系統及應用程式,避免被其他不正常的應用程式所影響。你可以想像每個 process ,都是一個個的黑盒子,彼此不會互相影響,連記憶體內的資料都無法共享。

保護的目的是達到了,不過當應用程式彼此間要分享資料時,這樣的架構勢必要提供一個好的解決方案才行。例如,Contacts 這個應用程式內存滿了使用者的聯絡人資料。當你在 Email 這個應用程式,要填寫收信人時,就希望去讀取 Contacts 內的聯絡人資料。無法直接透過記憶體分享資料,倒是可以透過檔案來分享。

透過檔案來分享資料,其實是最後的招數,因為他有很多的問題。像是,如何避免不同的人同時讀寫同一份檔案,檔案的內容格式還要公開,要不然別人不曉得如何讀起。

為了解決應用程式間,彼此要分享資料的需求,Android 提供了 ContentProvider 這個機制。

想要進一步了解 ContentProvider 的你,我建議你先讀下面這個文件。

Accessing Content Providers: /docs/devel/data/contentproviders.html

目前在 Android 上已經提供你透過 ContentProvider 去存取下面這些資訊。

我在這裡就先分享一個如何透過 ContentProvider 讀取系統設定參數 (Settings) 的例子。

在我的模擬器上,印出來的結果如下。

2008年11月3日 星期一

如何在 Windows 平台上下載 Android 的原始碼?

How to download Android source code on Windows?

Google 依照他原先的承諾,終於在 2008/10/21 開放 Android 的原始碼。你現在,就可以到 官方網站,下載他的原始碼。原始碼的部份約有 2.1G bytes,編譯完後的大小約 6G bytes。

現在問題來了,目前下載及編譯都只支援 Linux 和 Mac 這兩個作業系統。編譯的部份只支援 Linux,這還可以理解。怎麼連下載都不支援 Windows 呢?像我,現在用的是 Windows,而我的目的,只是想下載及參考他的原始碼,並不想編譯他。

摸索了一陣子,終於打通這個環節。現在,我在 Windows 上也可以隨時下載部分或全部的原始碼。現在,就將我的經驗分享給有相同需求的你。

幾乎每個 open source 都會用版本控制系統,來讓開發者下載或上傳程式碼。因此,只要可以在 Windows 上執行版本控制系統,下載應該就沒問題了。

一般用的版本控制系統是 CVS,也有不少人用 ,像 Google 自己的 ,用的就是 SubVersion。不過這次 Android 用的版本控制系統,是我第一次聽到的 。所幸這個 Git 有 Windows 的執行檔。

首先,你先到 上下載 Git-xxx.exe,我剛下載的是 這個檔案。

下載下來後,直接按確定到底,就可以完成安裝。裝完後,執行他的 Git Bash 程式。你會看到像是下面這樣的命令列視窗。其實,這就是個和 Linux 上相同的 bash,不少 Linux 命令都有,連 Perl 也找的到。不過,最重要的是,他整合進 git 這個命令。

接著,用 cd 命令,進入到你要下載 Android 原始碼的目錄後,再執行 git clone 命令,就可以下載你指定的 package。

舉個例子來說,我想要下載 Browsers 這個應用程式的原始碼。底下是我在 Git Bash 中下的命令。

cd /d/AndroidProgram/AndroidSource/1.0r1/Android_open_source/platform/packages/apps
git clone git://android.git.kernel.org/platform/packages/apps/Browser.git

這步的關鍵就在,你要知道你所要下載原始碼的 repository。告訴你,所有的 Android repositories 都在 。進入這個網站後,你會看到下面這樣的畫面。

Project 這一欄列的就是 Android 中每個 sub-project 的路徑。前面再加上 git://android.git.kernel.org/ 就是他的 repository 路徑。

再舉個例子來說,如果你像要下載 SQLite 的原始碼,那就下:

git clone git://android.git.kernel.org/platform/external/sqlite.git

如果你只是想看某個檔案的內容,你也可以點最右邊的 tree 連結,就這樣一路點下去,看到檔案列表時,再點最右邊的 raw 連結。看到沒,原始碼就顯示在你的瀏覽器上。

阅读(1567) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~