準(zhǔn)備開始
本文介紹幾種處理復(fù)雜情況的 Android SDK 工具。開發(fā) Android 應(yīng)用程序,需要最新版 Android SDK,這需要一個(gè) Java Development Kit (JDK)。我使用的是 Android 2.2 和 JDK 1.6.0_17(這些工具的鏈接見 參考資料)。物理設(shè)備不是必須的;本文中的所有代碼在 SDK 附帶的Android 模擬器上可以很好的運(yùn)行。本文假設(shè)您對(duì) Android 編程比較熟悉,故不涉及 Android 基礎(chǔ)開發(fā),但是如果您有 Java 編程語言的知識(shí),也是可以的。
并發(fā)性和聯(lián)網(wǎng)
Android 應(yīng)用程序一個(gè)最常見的任務(wù)就是檢索數(shù)據(jù)或通過網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器。這一操作的結(jié)果通常是一些您想要展示給用戶的新數(shù)據(jù)。這意味著您需要修改用戶界面。大多數(shù)開發(fā)人員知道您將不會(huì)執(zhí)行一個(gè)潛在的長(zhǎng)期運(yùn)行任務(wù),例如,在主 UI 線程上通過網(wǎng)絡(luò)訪問數(shù)據(jù)(特別使用一個(gè)網(wǎng)絡(luò)連接非常慢的手機(jī))。凍結(jié)您的應(yīng)用程序直至長(zhǎng)期運(yùn)行任務(wù)完成。事實(shí)上,如果這個(gè)任務(wù)超過 5 秒,Android 操作系統(tǒng)將出現(xiàn)臭名昭著的 Application Not Responding 對(duì)話框,如圖1所示。
圖 1. Android 臭名昭著的 Application Not Responding 對(duì)話框
您不可能知道用戶網(wǎng)絡(luò)連接能有多慢。為了避免冒險(xiǎn),您必須在不同的線程上執(zhí)行任務(wù),或者至少不在主 UI 線程上執(zhí)行。許多 Android 應(yīng)用程序,但不是全部,需要處理多線程,由此引起并發(fā)。應(yīng)用程序經(jīng)常需要本地保存數(shù)據(jù),Android 數(shù)據(jù)庫是一個(gè)很好的選擇。這三個(gè)場(chǎng)景(不同線程,并發(fā)和本地保存數(shù)據(jù))在 Java 環(huán)境中有許多標(biāo)準(zhǔn) 方法可以用來處理。然而,正如您將要看到的,Android 提供不同的選擇。讓我們逐個(gè)看看,看看其優(yōu)點(diǎn)和缺點(diǎn)。
Android 網(wǎng)絡(luò)
通過網(wǎng)絡(luò)使用 Java 編程進(jìn)行調(diào)用是簡(jiǎn)單的,我們熟悉的 java.net 包含幾個(gè)執(zhí)行此操作的類。這些類大多數(shù)在 Android 中都可用,事實(shí)上,您可以使用像 java.net.URL 和 java.net.URLConnection 這樣的類,就像您在其他 Java 應(yīng)用程序中那樣。然而,Android 包括 pache HttpClient 庫,這是在 Android 上連接網(wǎng)絡(luò)的首選方法。即使您使用常用 Java 類,Android 實(shí)現(xiàn)仍然使用 HttpClient。清單 1 顯示了一個(gè)使用這個(gè)必不可少的庫的示例。(所有源代碼見 下載。)
出處:CSDN
責(zé)任編輯:bluehearts
上一頁 下一頁 享受Android應(yīng)用程序的Java技術(shù)盛宴 [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|