鍍金池/ 教程/ Android/ Android SDK 上手指南:下一步學(xué)習(xí)方向
Android SDK 上手指南:Java 應(yīng)用程序編程
Android SDK 上手指南:下一步學(xué)習(xí)方向
Android SDK 上手指南:用戶交互
Android SDK 上手指南:項目清單
Android SDK 上手指南:虛擬與物理設(shè)備
Android SDK 上手指南:Activity 與生命周期
Android SDK 上手指南:示例項目
剖析 Android SDK:Android 組件詳解
Android SDK 上手指南:應(yīng)用程序數(shù)據(jù)
Android SDK 上手指南:應(yīng)用程序資源
Android SDK 上手指南:應(yīng)用程序發(fā)布
Android SDK 上手指南:應(yīng)用程序結(jié)構(gòu)
Android SDK 上手指南:知識測試(1)
Android SDK 上手指南:用戶界面設(shè)計
Android SDK 上手指南:運(yùn)行與調(diào)試

Android SDK 上手指南:下一步學(xué)習(xí)方向

到目前為止,我們已經(jīng)介紹過的知識足以幫助大家從非常理想的起點開始進(jìn)行 Android 應(yīng)用程序開發(fā),但 Android 所提供的發(fā)揮空間還遠(yuǎn)不止這些、因此開發(fā)中的可能性也幾乎沒有窮盡。因此,我們需要為自己的下一步學(xué)習(xí)選擇明確的方向。在今天的文章中,我們將把全部注意力集中在可資選擇的未來學(xué)習(xí)對象上。

http://wiki.jikexueyuan.com/project/android-sdk/images/1.jpg" alt="" />

【51CTO 專稿】在本系列教程當(dāng)中,我們已經(jīng)學(xué)習(xí)了如何從零開始學(xué)習(xí) Android 應(yīng)用程序開發(fā)。通過之前的文章中,我們了解了各類開發(fā)工具、探索了應(yīng)用程序項目中所包含的基本要素、學(xué)習(xí)用戶界面設(shè)計、交互性、資源以及數(shù)據(jù)的使用機(jī)制,另外我們也全面追蹤了應(yīng)用程序運(yùn)行的整個過程。到目前為止,我們已經(jīng)介紹過的知識足以幫助大家從非常理想的起點開始進(jìn)行 Android 應(yīng)用程序開發(fā),但 Android 所提供的發(fā)揮空間還遠(yuǎn)不止這些、因此開發(fā)中的可能性也幾乎沒有窮盡。因此,我們需要為自己的下一步學(xué)習(xí)選擇明確的方向。在今天的文章中,我們將把全部注意力集中在可資選擇的未來學(xué)習(xí)對象上。在本系列教程的下一篇文章——也就是最后一篇文章里,我們將通過一項測驗回顧曾經(jīng)了解過的各項知識。

介紹 通過閱讀本系列教程,大家應(yīng)該已經(jīng)在創(chuàng)建 Android 應(yīng)用時擁有多種可以選擇的潛在發(fā)展方向。當(dāng)然,如果大家已經(jīng)規(guī)劃好了具體的開發(fā)項目,那么由此帶來的實際需求已經(jīng)足以指導(dǎo)各位明確未來的學(xué)習(xí)路線。不過 Android 平臺所提供的元素極為豐富,而且其中很多應(yīng)用元素都普遍適用于我們將要接觸的大多數(shù)應(yīng)用。在今天的文章中,我們將近距離觀察一部分實用性最高的主題,并以此為起點建立體系完整的 Android 開發(fā)技能。

1. 數(shù)據(jù) 第一步 大家可以利用我們之前創(chuàng)建好的示例應(yīng)用項目嘗試下面將要介紹的各種 Android 開發(fā)技巧。請注意,我們原先是把數(shù)據(jù)保存在 shared preferences 當(dāng)中,因此大家可以選擇將數(shù)據(jù)保存在文件內(nèi)。我們要做的是嘗試讓用戶利用 EditText 視圖以及功能按鈕實現(xiàn)數(shù)據(jù)的提交與保存。將用戶數(shù)據(jù)寫入到一個文件當(dāng)中,讓應(yīng)用程序在啟動時讀取其內(nèi)容并把結(jié)果顯示在 TextView 視圖當(dāng)中。通過這種方式,大家可以實現(xiàn)持久性數(shù)據(jù)的保存,從而在應(yīng)用程序下一次運(yùn)行時加以使用。

第二步 另一項重要技能在于從遠(yuǎn)程資源,例如 Web 服務(wù),當(dāng)中獲取數(shù)據(jù)。為了實現(xiàn)這一目標(biāo),我們需要在 Activity 類當(dāng)中添加一個內(nèi)部 AsyncTask 類,并借此進(jìn)行遠(yuǎn)程數(shù)據(jù)獲取。在獲取到數(shù)據(jù)之后,還需將其顯示在應(yīng)用程序當(dāng)中。此外,如果應(yīng)用程序獲取到的是 XML、JSON 或者其它一些常見數(shù)據(jù)格式,大家可能還希望對其加以解析或者進(jìn)行格式調(diào)整。參閱谷歌官方提供的“連接到網(wǎng)絡(luò)”部分的說明,其中提供的示例代碼足以作為理想的起步素材。

第三步 另一種主要數(shù)據(jù)存儲選項同樣適用于很多應(yīng)用程序的實際需求,這就是使用 SQLite 數(shù)據(jù)庫。大家可以通過創(chuàng)建一個 SQLiteOpenHelper 類來嘗試這種方式,在這里我們需要定義該斬架構(gòu),例如表和列。在應(yīng)用程序的其它部分,我們可以要求 SQLiteOpenHelper 類將數(shù)據(jù)寫入到數(shù)據(jù)庫中并利用游標(biāo)實現(xiàn)內(nèi)容讀取,從而將結(jié)果顯示在應(yīng)用程序的用戶界面當(dāng)中。再次提醒大家,我們可能需要將用戶輸入的數(shù)據(jù)保存在數(shù)據(jù)庫當(dāng)中,并在應(yīng)用程序下一次啟動時顯示結(jié)果。除了向數(shù)據(jù)庫中插入記錄并對其進(jìn)行查詢之外,大家還可以嘗試更新并刪除記錄。作為初次上手的起點,我們不妨先從閱讀谷歌官方提供的“在 SQLite 數(shù)據(jù)庫中保存數(shù)據(jù)”說明開始。

2. 應(yīng)用屏幕 第一步 在已經(jīng)創(chuàng)建完成的應(yīng)用程序當(dāng)中,我們只在用戶界面當(dāng)中使用了一個操作屏幕。接下來,大家可以通過在應(yīng)用中創(chuàng)建第二個 activity 類來增加屏幕數(shù)量,即順序打開 File、New、Class 菜單選項。今天的任務(wù)是在第一個屏幕——也就是主 activity 當(dāng)中添加一個按鈕,并在用戶點觸該按鈕時啟動第二個 activity。舉例來說,如果我們開發(fā)的是一款游戲應(yīng)用,那么該按鈕所顯示的文本內(nèi)容可以是“游戲說明”,而第二個 activity 的名稱則可以被設(shè)為 How.java。為第二個 activity 創(chuàng)建一個布局文件,其中包含一個將文本內(nèi)容保存在 res/values 字符串 XML 文件中的 TextView。如果我們使用的示例應(yīng)用如上所述是一款游戲的話,那么第二個 activity 中應(yīng)該包含關(guān)于游戲操作與進(jìn)行方式的信息。應(yīng)用程序中的大部分信息顯示都可以遵循這種簡單的處理方式。

在第一個 activity 的 onClick 處理程序中,大家可以利用 intents 啟動“游戲說明”activity。一旦我們在應(yīng)用程序中包含了第二個 activity,則需要利用 putExtra 方法向其提交來自第一個 activity 的數(shù)據(jù)。大家也可以嘗試反過來讓第二個 activity 執(zhí)行某些任務(wù),并把獲得的結(jié)果提供給第一個 activity。后者需要通過 onActivityResult 方法來接收結(jié)果數(shù)據(jù)。請大家點擊此處查看谷歌官方提供的“Activity 類引用”說明以了解更多與此相關(guān)的知識。

第二步 作為下一個步驟,大家可以嘗試在自己的 activity 當(dāng)中包含多個不同用戶界面視圖。大家還會注意到,不同類型的視圖需要通過不同的方式加以實現(xiàn)。在大家熟練掌握了不同視圖類型的使用方法之后,接下來可以嘗試使用 fragment——這樣我們就能夠在應(yīng)用程序的不同部分中重復(fù)使用用戶界面的各個組成元素了。

另一種實用性極高的用戶界面組件要數(shù) list 視圖。在 list 視圖中,屏幕會顯示一份包含多種條目的列表。系統(tǒng)會利用 adapter 將來自數(shù)據(jù)源的信息填充到 list 視圖當(dāng)中,也就是實現(xiàn)由數(shù)據(jù)到視圖的映射。大家可以利用 ListActivity 來取代標(biāo)準(zhǔn)的 Activity 類。在 list activity 當(dāng)中,大家可以對方法集進(jìn)行重寫以響應(yīng)用戶與列表內(nèi)條目的交互操作。作為學(xué)習(xí) list 視圖的開端,大家可以首先認(rèn)真閱讀谷歌官方提供的list 視圖功能示例。

一般來說,應(yīng)用程序在外觀與使用體驗上最好能夠與 Android 系統(tǒng)本身保持一致。只要可能,大家應(yīng)該盡量利用標(biāo)準(zhǔn)化 Android 用戶界面元素而非創(chuàng)建自己的定制組件。從這一理由出發(fā),大家可能希望了解更多關(guān)于Action Bar的知識,并始終提醒自己在設(shè)計用戶界面以及應(yīng)用程序的導(dǎo)航模式時遵循上述結(jié)論。

3. 多媒體 大家可以在自己創(chuàng)建的 Android 應(yīng)用程序當(dāng)中使用多種媒體類型,例如音頻與視頻、動畫以及通過設(shè)備攝像頭所捕捉到的圖片乃至視頻等。Android 系統(tǒng)提供一系列標(biāo)準(zhǔn)方法,大家可以借此訪問設(shè)備資源(例如攝像頭)并實現(xiàn)特定使用需求(例如進(jìn)行視頻記錄)。請大家查看《Android 開發(fā)者指南》中的“多媒體指南”一節(jié)以獲取更多信息。

正如我們在本系列教程中所提到,大家可以在 Android 應(yīng)用程序當(dāng)中利用 XML 創(chuàng)建視覺元素、從而獲得屬于自己的可繪制組件。大家也可以利用 XML 來定義動畫,并通過代碼控制動畫的播放效果。在 Android 平臺上,我們可以利用動畫為用戶界面添加各種動態(tài)效果——系統(tǒng)支持的效果數(shù)量繁多,其中包括淡入淡出、旋轉(zhuǎn)、翻轉(zhuǎn)以及其它各種過渡類型。大家點擊此處參閱谷歌官方提供的“添加動畫”說明。

4. 與其它應(yīng)用程序交互 第一步 在 Android 平臺上進(jìn)行應(yīng)用程序開發(fā)的優(yōu)勢之一在于,我們可以充滿利用平臺所提供的現(xiàn)有資源,其中包括其它應(yīng)用程序。正如我在本系列教程的前幾篇文章中所提到,大家可以在不同應(yīng)用程序之間實現(xiàn)數(shù)據(jù)共享并在自己的應(yīng)用中使用這些共享數(shù)據(jù)。大家還可以允許用戶利用電子郵件、即時消息以及社交網(wǎng)絡(luò)等方式在我們的應(yīng)用當(dāng)中共享內(nèi)容。最簡單也最可靠的數(shù)據(jù)共享途徑就是利用 send 意圖。當(dāng)我們的應(yīng)用程序啟動一條 send 活動時,操作系統(tǒng)會為用戶提供一份應(yīng)用程序列表、其中羅列了用戶可以將內(nèi)容發(fā)送至哪些目標(biāo)處。請大家在著手嘗試之前認(rèn)真閱讀谷歌官方提供的“向其它應(yīng)用發(fā)送簡單數(shù)據(jù)”說明,其中還包含幾個示例。

第二步 除了使用 send 之外,我們還可以利用其它多種方式實現(xiàn)從應(yīng)用程序內(nèi)部啟用 Android 資源,因此請大家在自己的項目多多進(jìn)行嘗試。舉例來說,大家可以利用 dial 來撥出電話號碼、利用 view 在瀏覽器中查看見面或者使用地圖應(yīng)用中的位置信息。大家還可以從設(shè)備的內(nèi)置傳感器處獲取數(shù)據(jù),從而使自己的應(yīng)用程序能夠捕捉并處理與位置及周邊環(huán)境相關(guān)的數(shù)據(jù)。在多數(shù)情況下,我們可以通過在 action 啟動結(jié)束時在應(yīng)用程序與 Android 環(huán)境之間建立起對話,并向應(yīng)用程序返回信息時觸發(fā)其它 action。利用這種方式,我們的應(yīng)用程序就可以充分利用 Android 設(shè)備所提供的移動特性。

5. 資源 第一步 我們已經(jīng)討論了未來學(xué)習(xí)的幾大主要潛在方向,但事實上大家所接觸的仍然只是 Android 平臺頗為表面化的淺層次知識。這套平臺仍然在不斷變化,而可行性名單也會變得越來越長。針對常見任務(wù)的推薦性技術(shù)也會定期變更,因此如果大家希望能一直開發(fā)出高品質(zhì)的 Android 應(yīng)用程序,請記住不斷學(xué)習(xí)才是最重要的職業(yè)習(xí)慣。

下面我再為大家推薦一些實用性很高的學(xué)習(xí)資源:

訪問Android 開發(fā)者博客來獲取關(guān)于這套平臺的最新及未來發(fā)展趨勢。該博客還經(jīng)常提供一些功能性代碼示例,可以作為很好的學(xué)習(xí)素材。

Vogella Android 指南是網(wǎng)絡(luò)上現(xiàn)有的最具 Android 學(xué)習(xí)資源之一。Vogella 網(wǎng)站通常會提供一些完整的技術(shù)示例項目,旨在對官方開發(fā)者指南當(dāng)中所涉及的專業(yè)知識進(jìn)行詳細(xì)講解。

Google+上的 Android 開發(fā)者交流平臺經(jīng)常發(fā)布大量公告與 Android 開發(fā)討論話題,同樣值得大家多加關(guān)注。

正如其它開發(fā)平臺一樣,大家會在學(xué)習(xí) Android 的過程中發(fā)現(xiàn)更多無法確定的問題,其中大部分都需要通過網(wǎng)絡(luò)搜索加以解決。正如大家所了解,很多常見問題都能在Stack Overflow上找到答案——如果各位還不是該網(wǎng)站的??停堮R上去逛逛吧。

結(jié)論 在本系列教程當(dāng)中,我的目標(biāo)是幫助大家學(xué)習(xí)關(guān)于 Android 開發(fā)的基礎(chǔ)知識。如果各位過去曾經(jīng)學(xué)習(xí)過編程或者開發(fā)技能,肯定清楚本系列教程還遠(yuǎn)遠(yuǎn)不是探索的終點。如果大家有意繼續(xù)為 Android 平臺開發(fā)應(yīng)用,則需要熟練運(yùn)用本教程所介紹的知識并將其作為 Android 工具箱中的財富好好加以保管。作為本系列教程的結(jié)尾,我將在下一篇文章中提供一項測試、看看大家有沒有真正掌握之前提到的內(nèi)容——請做好準(zhǔn)備吧!