關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
Android 7應(yīng)用程序開(kāi)發(fā)教程
Android系統(tǒng)是目前最為流行的智能手機(jī)操作系統(tǒng)之一,面向Android系統(tǒng)的應(yīng)用開(kāi)發(fā)是目前的技術(shù)熱點(diǎn)。本書(shū)針對(duì)Android SDK 7,結(jié)合全新的Android Studio開(kāi)發(fā)環(huán)境,對(duì)Android應(yīng)用編程基礎(chǔ)知識(shí)進(jìn)行講解,易于讀者理論聯(lián)系實(shí)踐,盡快掌握Android系統(tǒng)編程知識(shí)。
本書(shū)分為14章,使用Java開(kāi)發(fā)語(yǔ)言,內(nèi)容主要包括Android 系統(tǒng)的發(fā)展歷史、系統(tǒng)架構(gòu)、應(yīng)用程序框架、界面開(kāi)發(fā)、網(wǎng)絡(luò)訪問(wèn)、多媒體應(yīng)用程序開(kāi)發(fā)、數(shù)據(jù)存儲(chǔ)等。本書(shū)每一章都給出實(shí)例,使讀者進(jìn)一步鞏固所學(xué)的知識(shí),提高綜合實(shí)戰(zhàn)能力。 本書(shū)既適合熟悉Java編程的Android初學(xué)者和具有一定Android編程經(jīng)驗(yàn)的用戶,也可供廣大計(jì)算機(jī)工作者和軟件開(kāi)發(fā)者參考。
Android操作系統(tǒng)是目前非常流行、熱門的移動(dòng)設(shè)備操作系統(tǒng)之一,與之伴隨的是Android平臺(tái)移動(dòng)設(shè)備的廣泛使用和用戶對(duì)其運(yùn)行的應(yīng)用程序需求的多元化,Android應(yīng)用開(kāi)發(fā)技術(shù)已成為移動(dòng)開(kāi)發(fā)人員必備的技能。
本書(shū)在講解的過(guò)程中穿插大量的實(shí)例,希望借此幫助讀者更好地理解和掌握Android 7應(yīng)用開(kāi)發(fā)技巧,并獲得編程能力的提高。 本書(shū)在編寫時(shí)綜合考慮了自學(xué)和教學(xué)兩方面需求,既適合高校教學(xué)、讀者自學(xué),亦適合有一定開(kāi)發(fā)經(jīng)驗(yàn)的程序員作為參考書(shū)使用。
自2007年5月Android開(kāi)源手機(jī)平臺(tái)問(wèn)世以來(lái),已經(jīng)經(jīng)歷了10多年的發(fā)展。這期間,基于Android平臺(tái)的智能手機(jī)迅速占領(lǐng)市場(chǎng),成為當(dāng)前最受歡迎的手機(jī)操作系統(tǒng)之一。隨之而來(lái)的是基于Android操作系統(tǒng)的應(yīng)用程序需求多元化,Android開(kāi)發(fā)技術(shù)成為市場(chǎng)求職的新寵。
為了幫助國(guó)內(nèi)開(kāi)發(fā)人員快速掌握Android開(kāi)發(fā)技術(shù),獲取更好的就業(yè)機(jī)會(huì),筆者基于Google公司2016年5月發(fā)布的Android SDK 7.0(API Level 24)編寫了本書(shū),希望能夠幫助廣大讀者在Android開(kāi)發(fā)的道路上入門并且獲得提高。本書(shū)在編寫時(shí)綜合考慮了自學(xué)和教學(xué)兩方面因素。本書(shū)不僅適合高校教學(xué),還適合學(xué)生自學(xué),同時(shí)也適合有一定開(kāi)發(fā)經(jīng)驗(yàn)的程序員作為參考書(shū)使用。 本書(shū)內(nèi)容 本書(shū)共分為14章,由淺入深地講解了Android開(kāi)發(fā)的各個(gè)方面。本書(shū)在講解過(guò)程中穿插大量實(shí)例,希望借此幫助讀者更好地理解Android開(kāi)發(fā)的過(guò)程,并獲得提高。 本書(shū)的前3章為基礎(chǔ)內(nèi)容,系統(tǒng)地介紹了Android系統(tǒng)的誕生和發(fā)展的過(guò)程、Android的系統(tǒng)框架、Android開(kāi)發(fā)環(huán)境的搭建以及Android應(yīng)用程序的基本組件,并且著重講解了Android系統(tǒng)中人機(jī)交互的基本組件Activity的基本知識(shí)。 第4章講解了Android開(kāi)發(fā)過(guò)程中界面開(kāi)發(fā)相關(guān)的知識(shí),包括在用戶界面設(shè)計(jì)過(guò)程中常用的布局和組件、Android N的多窗口和通知分組等新特性以及Android處理人機(jī)交互事件的方法。 第5章講解了Intent的基本知識(shí),并利用Intent實(shí)現(xiàn)了電話和短信應(yīng)用程序開(kāi)發(fā)功能。 第6章主要講解了Android系統(tǒng)下的多媒體開(kāi)發(fā)技術(shù),實(shí)現(xiàn)了音頻和視頻的播放。通過(guò)Service和BroadcastReceiver實(shí)現(xiàn)了后臺(tái)音頻播放的相關(guān)功能,通過(guò)Android提供的硬件編程API實(shí)現(xiàn)了自己的錄像和拍照應(yīng)用程序。 第7章講解了Android系統(tǒng)提供的4種數(shù)據(jù)存儲(chǔ)方式,分別為SharedPreferences、文件存儲(chǔ)、數(shù)據(jù)庫(kù)存儲(chǔ)和ContentProvider�;钣眠@些數(shù)據(jù)存儲(chǔ)方式,實(shí)現(xiàn)數(shù)據(jù)持久化,是應(yīng)用程序開(kāi)發(fā)過(guò)程中不可回避的問(wèn)題。 第8章講解了網(wǎng)絡(luò)編程的相關(guān)知識(shí),包括HTTP編程、Socket編程、Bluetooth編程和WIFI編程等。 第9章解決了利用Google提供的Google Map API開(kāi)發(fā)自己的位置服務(wù)應(yīng)用的方法。 第10章講解了Android SDK提供的繪圖API,包括2D繪圖和3D繪圖兩個(gè)方面。繪圖技術(shù)是動(dòng)畫(huà)制作和游戲開(kāi)發(fā)的重要技術(shù)。 第11章講解了Android系統(tǒng)應(yīng)用程序開(kāi)發(fā)的國(guó)際化和本地化技術(shù),借助于該技術(shù),可以使開(kāi)發(fā)人員開(kāi)發(fā)的應(yīng)用程序不需要做任何修改就可以在全球任意地區(qū)正常運(yùn)行。 第12章講解了Android 7提供的文本服務(wù),主要介紹如何使用系統(tǒng)提供的剪貼板功能。 第13章講解了Android 7的企業(yè)應(yīng)用開(kāi)發(fā)技術(shù),包括設(shè)備管理API、文本語(yǔ)音API、TV應(yīng)用開(kāi)發(fā)和可穿戴技術(shù)幾部分。 第14章講解了應(yīng)用程序發(fā)布的相關(guān)知識(shí),包括應(yīng)用程序簽名的策略、簽名文件的生成、如何對(duì)應(yīng)用程序簽名以及如何發(fā)布到Google Play Store。正確地發(fā)布自己開(kāi)發(fā)的應(yīng)用程序是利用Android技術(shù)賺取第一桶金的前提條件。 由于本書(shū)篇幅有限,不可能將Android SDK 7的相關(guān)知識(shí)全部講解,讀者可以參閱Android SDK文檔獲取更多信息。 配套示例源代碼下載 致謝 本書(shū)由李波主編,王博、孫憲麗、關(guān)穎、楊弘平、曾祥萍、代欽、衣云龍、呂海華、祝世東、夏炎、王瑋、王曉強(qiáng)、郭勝龍、林宏剛等也參與了本書(shū)的編寫,王祥鳳、史江萍、李豐鵬、孫士潔參與了本書(shū)的整理校對(duì)工作。在此,對(duì)在本書(shū)的編寫過(guò)程中提供幫助和支持的朋友表示感謝。由于編者水平有限,編寫時(shí)間倉(cāng)促,書(shū)中難免有疏漏之處,懇請(qǐng)各位讀者批評(píng)指正。相關(guān)指導(dǎo)意見(jiàn)請(qǐng)發(fā)送至,在此編者表示衷心的感謝。 編者 2018年10月
李波,博士,畢業(yè)于中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所,沈陽(yáng)工程學(xué)院信息學(xué)院講師,對(duì)虛擬現(xiàn)實(shí)、高性能計(jì)算、移動(dòng)開(kāi)發(fā)等技術(shù)有較深研究。出版圖書(shū)《JSP網(wǎng)絡(luò)編程學(xué)習(xí)筆記》《Android4.x從入門到精通》《UML2基礎(chǔ)、建模與設(shè)計(jì)實(shí)戰(zhàn)》《PowerDesigner16系統(tǒng)分析與建模實(shí)戰(zhàn)》等。
目 錄
第1章 Android系統(tǒng)概述 1 1.1 智能手機(jī) 1 1.1.1 什么是智能手機(jī) 1 1.1.2 智能手機(jī)操作系統(tǒng) 2 1.2 什么是Android 4 1.2.1 Android的歷史 4 1.2.2 Android的發(fā)展 5 1.2.3 Android的優(yōu)點(diǎn) 6 1.3 Android系統(tǒng)架構(gòu) 7 1.3.1 應(yīng)用程序?qū)?nbsp; 7 1.3.2 應(yīng)用程序框架層 7 1.3.3 系統(tǒng)庫(kù) 8 1.3.4 Android運(yùn)行環(huán)境 8 1.3.5 Linux內(nèi)核 9 1.4 Android 7新特性介紹 9 1.4.1 分屏顯示 9 1.4.2 全新的通知設(shè)計(jì) 9 1.4.3 基于配置文件的JIT/AOT 編譯 10 1.4.4 優(yōu)化的低電耗模式 10 1.4.5 Project Svelte:后臺(tái)優(yōu)化 10 1.4.6 Data Saver 11 1.4.7 Quick Settings Tile API 11 1.4.8 號(hào)碼屏蔽和來(lái)電過(guò)濾 11 1.4.9 OpenGL ES 3.2 API支持 12 1.4.10 密鑰認(rèn)證 12 1.5 小結(jié) 12 1.6 習(xí)題 12 第2章 搭建Android開(kāi)發(fā)環(huán)境 13 2.1 系統(tǒng)需求 13 2.2 軟件安裝 13 2.2.1 JDK的安裝 13 2.2.2 Android Studio 14 2.2.3 創(chuàng)建AVD 17 2.2.4 AVD與真機(jī)的區(qū)別 19 2.3 Android SDK介紹 20 2.3.1 Android SDK目錄結(jié)構(gòu) 20 2.3.2 Android.jar 22 2.3.3 Android API核心包 22 2.3.4 Android API擴(kuò)展包 23 2.4 創(chuàng)建第一個(gè)Android應(yīng)用程序 23 2.4.1 創(chuàng)建HelloWold工程 23 2.4.2 相關(guān)代碼 26 2.4.3 工程文件結(jié)構(gòu)解析 29 2.5 調(diào)試程序 31 2.5.1 設(shè)置斷點(diǎn) 31 2.5.2 調(diào)試 31 2.6 小結(jié) 32 2.7 習(xí)題 32 第3章 Android應(yīng)用程序結(jié)構(gòu) 33 3.1 應(yīng)用程序基本組成 33 3.1.1 Activity 33 3.1.2 Service 34 3.1.3 BroadcastReceiver 34 3.1.4 ContentProvider 34 3.1.5 Intent 34 3.2 Activity 35 3.2.1 Activity的生命周期 35 3.2.2 Activity的創(chuàng)建 37 3.2.3 啟動(dòng)Activity 38 3.2.4 關(guān)閉Activity 38 3.2.5 Activity數(shù)據(jù)傳遞 39 3.3 資源 40 3.4 Manifest文件 40 3.5 App Widgets 43 3.5.1 基礎(chǔ)知識(shí) 43 3.5.2 在Manifest文件中聲明App Widget 44 3.5.3 增加AppWidgetProviderInfo元數(shù)據(jù) 44 3.5.4 創(chuàng)建App Widget布局 45 3.5.5 為App Widget添加邊界 45 3.5.6 使用AppWidgetProvider類 46 3.5.7 接收App Widget的廣播 48 3.5.8 創(chuàng)建App Widget的配置Activity 48 3.5.9 使用配置Activity對(duì)App Widget進(jìn)行更新 48 3.6 進(jìn)程和線程 49 3.6.1 進(jìn)程 49 3.6.2 線程 51 3.6.3 線程安全方法 54 3.6.4 進(jìn)程間的通信 54 3.7 小結(jié) 54 3.8 習(xí)題 55 第4章 Android GUI開(kāi)發(fā) 56 4.1 View和ViewGroup 56 4.2 使用XML定義視圖 57 4.3 布局 60 4.3.1 FrameLayout 60 4.3.2 LinearLayout 61 4.3.3 RelativeLayout 64 4.3.4 TableLayout 66 4.3.5 AbsoluteLayout 68 4.3.6 WebView 70 4.4 常用Widget組件 71 4.4.1 創(chuàng)建Widget組件實(shí)例 71 4.4.2 按鈕 73 4.4.3 文本框 75 4.4.4 編輯框 76 4.4.5 多項(xiàng)選擇按鈕 77 4.4.6 單項(xiàng)選擇按鈕組 81 4.4.7 下拉列表 84 4.4.8 自動(dòng)完成文本 87 4.4.9 日期選擇器和時(shí)間選擇器 89 4.4.10 進(jìn)度條 92 4.4.11 滾動(dòng)視圖 95 4.4.12 拖動(dòng)條 96 4.4.13 評(píng)價(jià)條 98 4.4.14 圖片視圖和圖片按鈕 101 4.4.15 圖片切換器和圖庫(kù) 104 4.4.16 網(wǎng)格視圖 108 4.4.17 標(biāo)簽 110 4.5 Menu和ActionBar 113 4.5.1 Options Menu 114 4.5.2 Context Menu 117 4.5.3 SubMenu 118 4.6 Bitmap 120 4.7 對(duì)話框 123 4.7.1 AlertDialog 123 4.7.2 ProgressDialog 125 4.8 Toast和Notification 127 4.8.1 Toast 127 4.8.2 Notification 128 4.8.3 Notification Group 131 4.9 多窗口模式 136 4.10 界面事件響應(yīng) 139 4.10.1 事件監(jiān)聽(tīng)器 139 4.10.2 回調(diào)事件響應(yīng) 140 4.10.3 界面事件響應(yīng)實(shí)例 140 4.10 小結(jié) 144 4.11 習(xí)題 144 第5章 電話和短信應(yīng)用程序開(kāi)發(fā) 145 5.1 Intent 145 5.1.1 顯式Intent和隱式Intent 147 5.1.2 IntentFilter 147 5.2 撥號(hào)程序 148 5.3 短信程序 151 5.3.1 SMS簡(jiǎn)介 151 5.3.2 接收短信 151 5.3.3 接收短信實(shí)例 151 5.3.4 發(fā)送短信 154 5.3.5 短信發(fā)送實(shí)例 154 5.4 照相機(jī)程序 157 5.5 小結(jié) 160 5.6 習(xí)題 160 第6章 多媒體開(kāi)發(fā) 161 6.1 Service 161 6.1.1 Service的作用 161 6.1.2 Service的生命周期 161 6.1.3 啟動(dòng)Service 162 6.2 BroadcastReceiver 163 6.3 音頻 166 6.3.1 Android N支持的音頻格式 166 6.3.2 音頻播放器 167 6.3.3 后臺(tái)播放音頻 170 6.3.4 錄音程序 173 6.3.5 后臺(tái)錄制音頻 179 6.4 視頻 182 6.4.1 Android N 支持的視頻文件 182 6.4.2 視頻播放器 182 6.4.3 拍照程序 189 6.4.4 錄制視頻 195 6.5 小結(jié) 202 6.6 習(xí)題 202 第7章 數(shù)據(jù)存儲(chǔ) 203 7.1 SharedPreferences 203 7.1.1 SharedPreferences簡(jiǎn)介 204 7.1.2 使用SharedPreferences 204 7.2 文件存儲(chǔ) 207 7.2.1 文件存儲(chǔ)方式簡(jiǎn)介 207 7.2.2 使用文件存儲(chǔ)功能 208 7.3 SQLite 211 7.3.1 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介 211 7.3.2 SQLite數(shù)據(jù)庫(kù)操作 212 7.3.3 SQLite數(shù)據(jù)庫(kù)操作實(shí)例 215 7.4 ContentProvider 223 7.4.1 ContentProvider簡(jiǎn)介 223 7.4.2 UriMatcher 225 7.4.3 訪問(wèn)系統(tǒng)提供的ContentProvider 225 7.4.4 自定義ContentProvider 228 7.4.5 訪問(wèn)自定義ContentProvider 232 7.5 數(shù)據(jù)同步到云端 238 7.5.1 App Engine簡(jiǎn)介 238 7.5.2 創(chuàng)建可相互通信的Android和App Engine應(yīng)用程序 239 7.6 數(shù)據(jù)備份與恢復(fù) 245 7.6.1 Android數(shù)據(jù)備份與恢復(fù)簡(jiǎn)介 245 7.6.2 實(shí)現(xiàn)備份代理的步驟 245 7.6.3 通過(guò)BackupAgent實(shí)現(xiàn)備份與恢復(fù) 247 7.6.4 通過(guò)BackupAgentHelper實(shí)現(xiàn)備份與恢復(fù) 250 7.7 小結(jié) 253 7.8 習(xí)題 254 第8章 網(wǎng)絡(luò)編程 255 8.1 HTTP通信 255 8.1.1 訪問(wèn)URL指定資源 258 8.1.2 使用Get方式獲取網(wǎng)絡(luò)服務(wù) 262 8.1.3 使用POST方式獲取網(wǎng)絡(luò)服務(wù) 265 8.2 Socket通信 268 8.2.1 Socket簡(jiǎn)介 268 8.2.2 Socket使用方法 269 8.2.3 Socket編程實(shí)例 271 8.3 Bluetooth通信 274 8.3.1 Bluetooth簡(jiǎn)介 274 8.3.2 Android系統(tǒng)的藍(lán)牙通信功能 275 8.3.3 藍(lán)牙通信實(shí)例 279 8.4 WIFI通信 296 8.4.1 WIFI簡(jiǎn)介 296 8.4.2 WIFI實(shí)例 296 8.4.3 WIFI Direct 301 8.4.4 創(chuàng)建WIFI Direct應(yīng)用程序的步驟 302 8.4.5 WIFI Direct編程實(shí)例 307 8.5 NFC 319 8.5.1 NFC簡(jiǎn)介 319 8.5.2 Android NFC技術(shù) 319 8.5.3 使用前臺(tái)發(fā)布系統(tǒng) 321 8.6 USB 323 8.6.1 USB簡(jiǎn)介 323 8.6.2 USB附件 324 8.6.3 USB主機(jī) 329 8.7 SIP 333 8.7.1 SIP簡(jiǎn)介 333 8.7.2 相關(guān)API 333 8.7.3 Manifest文件配置 334 8.7.4 創(chuàng)建SipManager對(duì)象 335 8.7.5 注冊(cè)SIP服務(wù)器 335 8.7.6 撥打音頻電話 336 8.7.7 接收呼叫 337 8.8 小結(jié) 339 8.9 習(xí)題 339 第9章 智能傳感器 340 9.1 獲取位置信息 340 9.1.1 LocationManager介紹 341 9.1.2 LocationProvider介紹 341 9.1.3 使用GPS獲取當(dāng)前位置信息 344 9.2 使用Google地圖服務(wù) 347 9.2.1 Google Map API簡(jiǎn)介 347 9.2.2 申請(qǐng)Android Map API Key 348 9.2.3 使用Google Map顯示當(dāng)前位置 350 9.3 傳感器 354 9.3.1 Android傳感器簡(jiǎn)介 354 9.3.2 標(biāo)識(shí)傳感器 356 9.3.3 傳感器事件處理 357 9.4 運(yùn)動(dòng)傳感器 358 9.4.1 加速度傳感器 359 9.4.2 重力傳感器 359 9.4.3 陀螺儀 359 9.4.4 線性加速度傳感器 361 9.4.5 旋轉(zhuǎn)向量傳感器 361 9.5 位置傳感器 361 9.5.1 磁場(chǎng)傳感器 361 9.5.2 方位傳感器 362 9.5.3 距離傳感器 363 9.6 環(huán)境傳感器 364 9.7 小結(jié) 365 9.8 習(xí)題 365 第10章 繪圖 366 10.1 2D繪圖 366 10.1.1 獲取Canvas對(duì)象 366 10.1.2 使用自定義View繪圖 367 10.1.3 使用Bitmap繪圖 369 10.1.4 使用SurfaceView繪制靜態(tài)圖像 372 10.1.5 使用SurfaceView繪制動(dòng)態(tài)圖像 375 10.2 Drawable 379 10.2.1 從資源文件中創(chuàng)建Drawable對(duì)象 379 10.2.2 從XML文件中創(chuàng)建Drawable對(duì)象 380 10.2.3 使用構(gòu)造方法創(chuàng)建Drawable對(duì)象 380 10.3 3D繪圖 381 10.3.1 OpenGL ES簡(jiǎn)介 381 10.3.2 繪制3D圖像實(shí)例 381 10.4 硬件加速 385 10.4.1 啟用硬件加速 385 10.4.2 Android繪圖模型 386 10.5 RenderScript 388 10.5.1 RenderScript綜述 388 10.5.2 使用動(dòng)態(tài)分配的內(nèi)存 389 10.5.3 使用靜態(tài)分配的內(nèi)存 391 10.6 小結(jié) 394 10.7 習(xí)題 394 第11章 App的本地化 395 11.1 國(guó)際化與本地化 395 11.2 手機(jī)區(qū)域設(shè)置 396 11.3 未本地化的應(yīng)用程序 397 11.4 本地化的應(yīng)用程序 400 11.5 小結(jié) 406 11.6 習(xí)題 406 第12章 文本與輸入 407 12.1 剪貼板框架 407 12.2 剪貼板類 408 12.3 將剪貼板內(nèi)的數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為文本 409 12.4 復(fù)制到剪貼板 410 12.5 從剪貼板中粘貼 412 12.6 利用Content Provider復(fù)制復(fù)雜數(shù)據(jù) 415 12.7 設(shè)計(jì)有效的復(fù)制/粘貼功能 419 12.8 綜合實(shí)例 420 12.9 小結(jié) 428 第13章 企業(yè)應(yīng)用開(kāi)發(fā) 429 13.1 設(shè)備管理API概述 429 13.1.1 設(shè)備管理工作過(guò)程 429 13.1.2 設(shè)備管理策略 430 13.2 開(kāi)發(fā)設(shè)備管理API應(yīng)用 431 13.2.1 創(chuàng)建程序代碼 432 13.2.2 DeviceAdminReceiver的子類 434 13.2.3 啟用程序 435 13.2.4 管理策略 436 13.3 文本語(yǔ)音API 439 13.4 TV應(yīng)用 443 13.4.1 創(chuàng)建電視應(yīng)用項(xiàng)目 443 13.4.2 添加TV支持庫(kù) 445 13.4.3 建立TV應(yīng)用 446 13.4.4 運(yùn)行TV應(yīng)用 446 13.4.5 TV應(yīng)用實(shí)例 447 13.5 可穿戴設(shè)備應(yīng)用 451 13.5.1 可穿戴設(shè)備應(yīng)用簡(jiǎn)介 451 13.5.2 Android Wear項(xiàng)目搭建 452 13.6 小結(jié) 457 第14章 應(yīng)用程序發(fā)布 458 14.1 應(yīng)用程序發(fā)布的步驟 458 14.2 為什么要為應(yīng)用程序簽名 459 14.3 Android的簽名策略 460 14.4 導(dǎo)出未簽名應(yīng)用程序 461 14.5 生成簽名文件 462 14.5.1 使用Android Studio 462 14.5.2 使用keytool命令 463 14.6 為應(yīng)用程序簽名 465 14.6.1 使用Android Studio 465 14.6.2 使用jarsigner命令 466 14.7 使用zipalign工具優(yōu)化應(yīng)用程序 467 14.8 發(fā)布到Google Play Store 468 14.9 小結(jié) 469 14.10 習(xí)題 469
你還可能感興趣
我要評(píng)論
|