第十七章 下一步學(xué)習(xí)方向

2018-02-24 15:47 更新

第十七章 下一步學(xué)習(xí)方向

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

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

1. 數(shù)據(jù)

第一步

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

第二步

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

第三步

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

2. 應(yīng)用屏幕

第一步

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

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

第二步

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

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

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

3. 多媒體

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

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

4. 與其它應(yīng)用程序交互

第一步

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

第二步

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

5. 資源

第一步

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

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

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

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

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

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

結(jié)論

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)