關(guān)于我們
書單推薦
新書推薦
|
Android 7應(yīng)用程序開發(fā)教程
Android系統(tǒng)是目前最為流行的智能手機操作系統(tǒng)之一,面向Android系統(tǒng)的應(yīng)用開發(fā)是目前的技術(shù)熱點。本書針對Android SDK 7,結(jié)合全新的Android Studio開發(fā)環(huán)境,對Android應(yīng)用編程基礎(chǔ)知識進行講解,易于讀者理論聯(lián)系實踐,盡快掌握Android系統(tǒng)編程知識。
本書分為14章,使用Java開發(fā)語言,內(nèi)容主要包括Android 系統(tǒng)的發(fā)展歷史、系統(tǒng)架構(gòu)、應(yīng)用程序框架、界面開發(fā)、網(wǎng)絡(luò)訪問、多媒體應(yīng)用程序開發(fā)、數(shù)據(jù)存儲等。本書每一章都給出實例,使讀者進一步鞏固所學(xué)的知識,提高綜合實戰(zhàn)能力。 本書既適合熟悉Java編程的Android初學(xué)者和具有一定Android編程經(jīng)驗的用戶,也可供廣大計算機工作者和軟件開發(fā)者參考。
Android操作系統(tǒng)是目前非常流行、熱門的移動設(shè)備操作系統(tǒng)之一,與之伴隨的是Android平臺移動設(shè)備的廣泛使用和用戶對其運行的應(yīng)用程序需求的多元化,Android應(yīng)用開發(fā)技術(shù)已成為移動開發(fā)人員必備的技能。
本書在講解的過程中穿插大量的實例,希望借此幫助讀者更好地理解和掌握Android 7應(yīng)用開發(fā)技巧,并獲得編程能力的提高。 本書在編寫時綜合考慮了自學(xué)和教學(xué)兩方面需求,既適合高校教學(xué)、讀者自學(xué),亦適合有一定開發(fā)經(jīng)驗的程序員作為參考書使用。
自2007年5月Android開源手機平臺問世以來,已經(jīng)經(jīng)歷了10多年的發(fā)展。這期間,基于Android平臺的智能手機迅速占領(lǐng)市場,成為當(dāng)前最受歡迎的手機操作系統(tǒng)之一。隨之而來的是基于Android操作系統(tǒng)的應(yīng)用程序需求多元化,Android開發(fā)技術(shù)成為市場求職的新寵。
為了幫助國內(nèi)開發(fā)人員快速掌握Android開發(fā)技術(shù),獲取更好的就業(yè)機會,筆者基于Google公司2016年5月發(fā)布的Android SDK 7.0(API Level 24)編寫了本書,希望能夠幫助廣大讀者在Android開發(fā)的道路上入門并且獲得提高。本書在編寫時綜合考慮了自學(xué)和教學(xué)兩方面因素。本書不僅適合高校教學(xué),還適合學(xué)生自學(xué),同時也適合有一定開發(fā)經(jīng)驗的程序員作為參考書使用。 本書內(nèi)容 本書共分為14章,由淺入深地講解了Android開發(fā)的各個方面。本書在講解過程中穿插大量實例,希望借此幫助讀者更好地理解Android開發(fā)的過程,并獲得提高。 本書的前3章為基礎(chǔ)內(nèi)容,系統(tǒng)地介紹了Android系統(tǒng)的誕生和發(fā)展的過程、Android的系統(tǒng)框架、Android開發(fā)環(huán)境的搭建以及Android應(yīng)用程序的基本組件,并且著重講解了Android系統(tǒng)中人機交互的基本組件Activity的基本知識。 第4章講解了Android開發(fā)過程中界面開發(fā)相關(guān)的知識,包括在用戶界面設(shè)計過程中常用的布局和組件、Android N的多窗口和通知分組等新特性以及Android處理人機交互事件的方法。 第5章講解了Intent的基本知識,并利用Intent實現(xiàn)了電話和短信應(yīng)用程序開發(fā)功能。 第6章主要講解了Android系統(tǒng)下的多媒體開發(fā)技術(shù),實現(xiàn)了音頻和視頻的播放。通過Service和BroadcastReceiver實現(xiàn)了后臺音頻播放的相關(guān)功能,通過Android提供的硬件編程API實現(xiàn)了自己的錄像和拍照應(yīng)用程序。 第7章講解了Android系統(tǒng)提供的4種數(shù)據(jù)存儲方式,分別為SharedPreferences、文件存儲、數(shù)據(jù)庫存儲和ContentProvider;钣眠@些數(shù)據(jù)存儲方式,實現(xiàn)數(shù)據(jù)持久化,是應(yīng)用程序開發(fā)過程中不可回避的問題。 第8章講解了網(wǎng)絡(luò)編程的相關(guān)知識,包括HTTP編程、Socket編程、Bluetooth編程和WIFI編程等。 第9章解決了利用Google提供的Google Map API開發(fā)自己的位置服務(wù)應(yīng)用的方法。 第10章講解了Android SDK提供的繪圖API,包括2D繪圖和3D繪圖兩個方面。繪圖技術(shù)是動畫制作和游戲開發(fā)的重要技術(shù)。 第11章講解了Android系統(tǒng)應(yīng)用程序開發(fā)的國際化和本地化技術(shù),借助于該技術(shù),可以使開發(fā)人員開發(fā)的應(yīng)用程序不需要做任何修改就可以在全球任意地區(qū)正常運行。 第12章講解了Android 7提供的文本服務(wù),主要介紹如何使用系統(tǒng)提供的剪貼板功能。 第13章講解了Android 7的企業(yè)應(yīng)用開發(fā)技術(shù),包括設(shè)備管理API、文本語音API、TV應(yīng)用開發(fā)和可穿戴技術(shù)幾部分。 第14章講解了應(yīng)用程序發(fā)布的相關(guān)知識,包括應(yīng)用程序簽名的策略、簽名文件的生成、如何對應(yīng)用程序簽名以及如何發(fā)布到Google Play Store。正確地發(fā)布自己開發(fā)的應(yīng)用程序是利用Android技術(shù)賺取第一桶金的前提條件。 由于本書篇幅有限,不可能將Android SDK 7的相關(guān)知識全部講解,讀者可以參閱Android SDK文檔獲取更多信息。 配套示例源代碼下載 致謝 本書由李波主編,王博、孫憲麗、關(guān)穎、楊弘平、曾祥萍、代欽、衣云龍、呂海華、祝世東、夏炎、王瑋、王曉強、郭勝龍、林宏剛等也參與了本書的編寫,王祥鳳、史江萍、李豐鵬、孫士潔參與了本書的整理校對工作。在此,對在本書的編寫過程中提供幫助和支持的朋友表示感謝。由于編者水平有限,編寫時間倉促,書中難免有疏漏之處,懇請各位讀者批評指正。相關(guān)指導(dǎo)意見請發(fā)送至,在此編者表示衷心的感謝。 編者 2018年10月
李波,博士,畢業(yè)于中國科學(xué)院沈陽自動化研究所,沈陽工程學(xué)院信息學(xué)院講師,對虛擬現(xiàn)實、高性能計算、移動開發(fā)等技術(shù)有較深研究。出版圖書《JSP網(wǎng)絡(luò)編程學(xué)習(xí)筆記》《Android4.x從入門到精通》《UML2基礎(chǔ)、建模與設(shè)計實戰(zhàn)》《PowerDesigner16系統(tǒng)分析與建模實戰(zhàn)》等。
目 錄
第1章 Android系統(tǒng)概述 1 1.1 智能手機 1 1.1.1 什么是智能手機 1 1.1.2 智能手機操作系統(tǒng) 2 1.2 什么是Android 4 1.2.1 Android的歷史 4 1.2.2 Android的發(fā)展 5 1.2.3 Android的優(yōu)點 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)庫 8 1.3.4 Android運行環(huán)境 8 1.3.5 Linux內(nèi)核 9 1.4 Android 7新特性介紹 9 1.4.1 分屏顯示 9 1.4.2 全新的通知設(shè)計 9 1.4.3 基于配置文件的JIT/AOT 編譯 10 1.4.4 優(yōu)化的低電耗模式 10 1.4.5 Project Svelte:后臺優(yōu)化 10 1.4.6 Data Saver 11 1.4.7 Quick Settings Tile API 11 1.4.8 號碼屏蔽和來電過濾 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開發(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與真機的區(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擴展包 23 2.4 創(chuàng)建第一個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è)置斷點 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 啟動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ǔ)知識 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對App Widget進行更新 48 3.6 進程和線程 49 3.6.1 進程 49 3.6.2 線程 51 3.6.3 線程安全方法 54 3.6.4 進程間的通信 54 3.7 小結(jié) 54 3.8 習(xí)題 55 第4章 Android GUI開發(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組件實例 71 4.4.2 按鈕 73 4.4.3 文本框 75 4.4.4 編輯框 76 4.4.5 多項選擇按鈕 77 4.4.6 單項選擇按鈕組 81 4.4.7 下拉列表 84 4.4.8 自動完成文本 87 4.4.9 日期選擇器和時間選擇器 89 4.4.10 進度條 92 4.4.11 滾動視圖 95 4.4.12 拖動條 96 4.4.13 評價條 98 4.4.14 圖片視圖和圖片按鈕 101 4.4.15 圖片切換器和圖庫 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 對話框 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)聽器 139 4.10.2 回調(diào)事件響應(yīng) 140 4.10.3 界面事件響應(yīng)實例 140 4.10 小結(jié) 144 4.11 習(xí)題 144 第5章 電話和短信應(yīng)用程序開發(fā) 145 5.1 Intent 145 5.1.1 顯式Intent和隱式Intent 147 5.1.2 IntentFilter 147 5.2 撥號程序 148 5.3 短信程序 151 5.3.1 SMS簡介 151 5.3.2 接收短信 151 5.3.3 接收短信實例 151 5.3.4 發(fā)送短信 154 5.3.5 短信發(fā)送實例 154 5.4 照相機程序 157 5.5 小結(jié) 160 5.6 習(xí)題 160 第6章 多媒體開發(fā) 161 6.1 Service 161 6.1.1 Service的作用 161 6.1.2 Service的生命周期 161 6.1.3 啟動Service 162 6.2 BroadcastReceiver 163 6.3 音頻 166 6.3.1 Android N支持的音頻格式 166 6.3.2 音頻播放器 167 6.3.3 后臺播放音頻 170 6.3.4 錄音程序 173 6.3.5 后臺錄制音頻 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ù)存儲 203 7.1 SharedPreferences 203 7.1.1 SharedPreferences簡介 204 7.1.2 使用SharedPreferences 204 7.2 文件存儲 207 7.2.1 文件存儲方式簡介 207 7.2.2 使用文件存儲功能 208 7.3 SQLite 211 7.3.1 SQLite數(shù)據(jù)庫簡介 211 7.3.2 SQLite數(shù)據(jù)庫操作 212 7.3.3 SQLite數(shù)據(jù)庫操作實例 215 7.4 ContentProvider 223 7.4.1 ContentProvider簡介 223 7.4.2 UriMatcher 225 7.4.3 訪問系統(tǒng)提供的ContentProvider 225 7.4.4 自定義ContentProvider 228 7.4.5 訪問自定義ContentProvider 232 7.5 數(shù)據(jù)同步到云端 238 7.5.1 App Engine簡介 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ù)簡介 245 7.6.2 實現(xiàn)備份代理的步驟 245 7.6.3 通過BackupAgent實現(xiàn)備份與恢復(fù) 247 7.6.4 通過BackupAgentHelper實現(xiàn)備份與恢復(fù) 250 7.7 小結(jié) 253 7.8 習(xí)題 254 第8章 網(wǎng)絡(luò)編程 255 8.1 HTTP通信 255 8.1.1 訪問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簡介 268 8.2.2 Socket使用方法 269 8.2.3 Socket編程實例 271 8.3 Bluetooth通信 274 8.3.1 Bluetooth簡介 274 8.3.2 Android系統(tǒng)的藍牙通信功能 275 8.3.3 藍牙通信實例 279 8.4 WIFI通信 296 8.4.1 WIFI簡介 296 8.4.2 WIFI實例 296 8.4.3 WIFI Direct 301 8.4.4 創(chuàng)建WIFI Direct應(yīng)用程序的步驟 302 8.4.5 WIFI Direct編程實例 307 8.5 NFC 319 8.5.1 NFC簡介 319 8.5.2 Android NFC技術(shù) 319 8.5.3 使用前臺發(fā)布系統(tǒng) 321 8.6 USB 323 8.6.1 USB簡介 323 8.6.2 USB附件 324 8.6.3 USB主機 329 8.7 SIP 333 8.7.1 SIP簡介 333 8.7.2 相關(guān)API 333 8.7.3 Manifest文件配置 334 8.7.4 創(chuàng)建SipManager對象 335 8.7.5 注冊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簡介 347 9.2.2 申請Android Map API Key 348 9.2.3 使用Google Map顯示當(dāng)前位置 350 9.3 傳感器 354 9.3.1 Android傳感器簡介 354 9.3.2 標(biāo)識傳感器 356 9.3.3 傳感器事件處理 357 9.4 運動傳感器 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 磁場傳感器 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對象 366 10.1.2 使用自定義View繪圖 367 10.1.3 使用Bitmap繪圖 369 10.1.4 使用SurfaceView繪制靜態(tài)圖像 372 10.1.5 使用SurfaceView繪制動態(tài)圖像 375 10.2 Drawable 379 10.2.1 從資源文件中創(chuàng)建Drawable對象 379 10.2.2 從XML文件中創(chuàng)建Drawable對象 380 10.2.3 使用構(gòu)造方法創(chuàng)建Drawable對象 380 10.3 3D繪圖 381 10.3.1 OpenGL ES簡介 381 10.3.2 繪制3D圖像實例 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 使用動態(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 國際化與本地化 395 11.2 手機區(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ù)強制轉(zhuǎn)換為文本 409 12.4 復(fù)制到剪貼板 410 12.5 從剪貼板中粘貼 412 12.6 利用Content Provider復(fù)制復(fù)雜數(shù)據(jù) 415 12.7 設(shè)計有效的復(fù)制/粘貼功能 419 12.8 綜合實例 420 12.9 小結(jié) 428 第13章 企業(yè)應(yīng)用開發(fā) 429 13.1 設(shè)備管理API概述 429 13.1.1 設(shè)備管理工作過程 429 13.1.2 設(shè)備管理策略 430 13.2 開發(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 文本語音API 439 13.4 TV應(yīng)用 443 13.4.1 創(chuàng)建電視應(yīng)用項目 443 13.4.2 添加TV支持庫 445 13.4.3 建立TV應(yīng)用 446 13.4.4 運行TV應(yīng)用 446 13.4.5 TV應(yīng)用實例 447 13.5 可穿戴設(shè)備應(yīng)用 451 13.5.1 可穿戴設(shè)備應(yīng)用簡介 451 13.5.2 Android Wear項目搭建 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
你還可能感興趣
我要評論
|