本書詳細(xì)介紹構(gòu)建可穿戴應(yīng)用的基礎(chǔ)知識,以及構(gòu)建AndroidWear應(yīng)用程序必備的各種工具、平臺、庫、SDK和技術(shù)。本書共12章。第1章概述可穿戴計(jì)算;第2章對在AndroidStudioIDE中進(jìn)行AndroidWear開發(fā)進(jìn)行的設(shè)置進(jìn)行介紹;第3~10章以開發(fā)一個(gè)面向智能手表的待辦事項(xiàng)應(yīng)用程序?yàn)橹骶,全面介紹AndroidWear項(xiàng)目開發(fā)中所涉及的程序框架、用戶界面、數(shù)據(jù)同步、消息提示、語音交互、傳感器與手勢跟蹤以及表盤設(shè)計(jì)等方面的知識;第11章介紹AndroidWear的一些高級特性以及AndroidWear2.0的一些新增功能;第12章則介紹AndroidWear應(yīng)用程序的測試和發(fā)布。
Preface?前 言本書面向的讀者是在移動、桌面或Web平臺上為可穿戴設(shè)備開發(fā)應(yīng)用程序(即所謂可穿戴應(yīng)用程序)的開發(fā)人員。此外,還有一種可能就是你的應(yīng)用程序已經(jīng)在Google Play應(yīng)用商店中占有一席之地,目前正想為你已完成的Android應(yīng)用程序添加Android Wear。
本書的主要目的是讓你對構(gòu)建設(shè)計(jì)良好、運(yùn)行可靠的Android Wear應(yīng)用程序過程中所涉及的思想體系、思維過程、開發(fā)細(xì)節(jié)以及方法論有深入的理解。本書將介紹可穿戴計(jì)算范式的優(yōu)缺點(diǎn),希望通過這種做法為你構(gòu)建滿足現(xiàn)實(shí)世界用例需求的可穿戴設(shè)備應(yīng)用程序奠定堅(jiān)實(shí)的基礎(chǔ)。
我們將按照從基礎(chǔ)到中級再到高級的順序循序漸進(jìn)地研究眾多具有不同復(fù)雜程度的概念和特性。每章自帶示例代碼的目的是讓你通過實(shí)踐掌握構(gòu)建Android Wear應(yīng)用程序必需的工具、庫、SDK和其他相關(guān)技術(shù)的知識。
通讀本書各章后,你有望達(dá)成以下目標(biāo):
理解可穿戴計(jì)算技術(shù);針對使用Android Studio構(gòu)建Android Wear應(yīng)用程序設(shè)置開發(fā)環(huán)境;逐步熟練掌握Android Wear SDK和API;理解Android Wear應(yīng)用程序開發(fā)相關(guān)的常用UI模式和用戶體驗(yàn)(UX)原則;使用可穿戴設(shè)備的形狀因子(圓形或方形);利用Android可穿戴設(shè)備上的傳感器;開發(fā)Android Wear示例程序來鞏固所學(xué)概念;在Android移動(手持設(shè)備)應(yīng)用程序和Android Wear應(yīng)用程序之間進(jìn)行通信;學(xué)會如何把Android Wear應(yīng)用程序發(fā)布到Google Play應(yīng)用商店。
本書主要內(nèi)容第1章從總體上介紹可穿戴計(jì)算的基礎(chǔ)知識以及該技術(shù)的演化過程。該章還討論移動計(jì)算、普適計(jì)算和云計(jì)算。
第2章將關(guān)注點(diǎn)放在開發(fā)環(huán)境的設(shè)置上,內(nèi)容囊括從IDE的安裝到針對Android Wear開發(fā)必需的SDK和庫的討論。
第3章指導(dǎo)讀者從零開始使用Android Studio一步步地開發(fā)一個(gè)名為Today的Android Wear應(yīng)用程序。
第4章使用Android Wear SDK中的UI組件對Today應(yīng)用程序進(jìn)行拓展,并利用自定義布局創(chuàng)建自定義UI組件。
第5章介紹伙伴手持設(shè)備應(yīng)用程序必需的一些概念,包括將手持設(shè)備和Android Wear模擬器進(jìn)行配對的步驟,由此擴(kuò)展可穿戴設(shè)備應(yīng)用程序的開發(fā)環(huán)境。Today應(yīng)用程序進(jìn)一步展示了這些概念。
第6章討論Android Wear中的通知,并用一個(gè)On This Day活動(Activity)來拓展Today應(yīng)用程序,以此演示Android Wear通知API的使用。
第7章討論Wear API提供的語音功能,我們將定義一個(gè)語音動作啟動應(yīng)用程序。該章還介紹一些傳感器并討論如何利用它們跟蹤數(shù)據(jù)。
第8章介紹一些Android Wear UI空間的核心設(shè)計(jì)原則,并討論幾個(gè)常用的Wear UI模式。我們還以一種用戶友好的顯示版式對On This Day活動進(jìn)行了增強(qiáng)。
第9章從概念上對原質(zhì)化設(shè)計(jì)進(jìn)行了討論,并涉及幾個(gè)對于可穿戴設(shè)備應(yīng)用程序設(shè)計(jì)和開發(fā)而言特有的核心原則。我們通過對之前章節(jié)中的Todo應(yīng)用程序進(jìn)行擴(kuò)展來加深理解,這些擴(kuò)展包括集成導(dǎo)航抽屜以便在待辦事項(xiàng)類別之間進(jìn)行切換、查看待辦事項(xiàng)以及針對每種類別執(zhí)行特定的動作。
第10章介紹表盤的概念。在對輔助開發(fā)表盤的Android Wear API進(jìn)行簡短介紹之后,我們開發(fā)了一個(gè)簡單的交互式表盤。
第11章介紹與讓應(yīng)用程序始終在線相關(guān)的設(shè)計(jì)理念和API特性。我們創(chuàng)建了一個(gè)活動來演示W(wǎng)ear API提供的始終在線功能。此外,我們還探討了通過藍(lán)牙連接來調(diào)試可穿戴設(shè)備應(yīng)用程序。
第12章討論可用于測試Android Wear應(yīng)用程序的工具以及如何進(jìn)行UI的自動化測試。最后,我們通過一步步的說明來為發(fā)布應(yīng)用程序做好準(zhǔn)備。
閱讀本書要做的準(zhǔn)備為了實(shí)踐書中的代碼以及自行進(jìn)行應(yīng)用程序開發(fā),你必須準(zhǔn)備好下列工具:
Android Studio v2(或更高版本);JDK v7(或更高版本);Git版本控制;具有適當(dāng)硬件配置的開發(fā)系統(tǒng),例如開發(fā)應(yīng)用程序所需的高速CPU和大容量RAM。
本書讀者對象本書面向的讀者對象是致力于Web、桌面或移動程序開發(fā)并希望接觸Android Wear平臺,渴望掌握開發(fā)Android Wear應(yīng)用程序必需知識的Java開發(fā)人員。
本書約定在本書中,你會看到幾種用于區(qū)分不同類別信息的文本風(fēng)格,下面是這些風(fēng)格的示例及其含義的解釋。
代碼塊如下所示:
表示警告或重要提示。
表示小貼士和小技巧。
下載示例代碼本書源代碼可以從華章官網(wǎng)www.hzbook.com下載。
About the Author?作者簡介Siddique Hameed是一位務(wù)實(shí)的技術(shù)專家,目前致力于Simplify Commerce項(xiàng)目(https://simplify.com),該項(xiàng)目是針對MasterCard的一個(gè)支付網(wǎng)關(guān)平臺。在豐富多彩的職業(yè)生涯中,他一直為世界500強(qiáng)公司在各個(gè)行業(yè)領(lǐng)域的初創(chuàng)階段開發(fā)軟件,這些領(lǐng)域囊括了金融、商業(yè)、社交媒體、電信、生物信息、出版和保險(xiǎn)。
他對技術(shù)、軟件以及兩者對日常生活的影響充滿熱情,是開源軟件文化的忠實(shí)擁躉,并且為眾多開源項(xiàng)目做出了積極的貢獻(xiàn)。有時(shí)他會就技術(shù)事件、聚會和黑客馬拉松選手發(fā)表一些言論。他喜歡為孩子和成人講授編程、技術(shù)和軟件開發(fā)知識,并且義務(wù)從事 “編程女孩”“Code.org”和“STEM教育計(jì)劃”(科學(xué)、技術(shù)、工程和數(shù)學(xué))等項(xiàng)目。
閑暇時(shí),他喜歡旅游、擺弄樹莓派以及自己
目 錄?Contents
譯者序
前 言
作者簡介
第1章 可穿戴計(jì)算概述 1
1.1 演化 1
1.2 摩爾定律 3
1.3 普適計(jì)算 4
1.4 移動遇上可穿戴 5
1.5 初識Android Wear 5
1.6 本章小結(jié) 6
第2章 設(shè)置開發(fā)環(huán)境 7
2.1 Android Studio 7
2.2 安裝 8
2.3 Git和GitHub 8
2.4 Gradle 9
2.5 Android SKD包 10
2.6 Android虛擬設(shè)備 12
2.7 創(chuàng)建框架應(yīng)用程序 15
2.8 本章小結(jié) 19
第3章 開發(fā)Android Wear應(yīng)用程序 21
3.1 框架應(yīng)用程序 22
3.2 Android清單文件 22
3.3 Gradle構(gòu)建文件 23
3.4 應(yīng)用程序中的活動組件 25
3.5 創(chuàng)建Android Wear應(yīng)用程序 27
3.6 本章小結(jié) 33
第4章 開發(fā)手表用戶界面 35
4.1 可穿戴設(shè)備用戶界面 36
4.2 Android清單文件 36
4.3 TodayActivity活動 37
4.4 主活動布局文件 39
4.5 WearableListItemLayout組件 40
4.6 DayOfYearActivity類 43
4.7 本章小結(jié) 46
第5章 同步數(shù)據(jù) 47
5.1 什么是伙伴應(yīng)用程序 48
5.2 設(shè)置Android Wear虛擬設(shè)備 49
5.3 重溫Today應(yīng)用程序 55
5.3.1 新版Today應(yīng)用程序的功能范疇 59
5.3.2 可穿戴設(shè)備數(shù)據(jù)層API 59
5.3.3 GoogleApiClient類 61
5.3.4 Volley庫 61
5.3.5 JSoup庫 61
5.3.6 構(gòu)建腳本 61
5.3.7 伙伴應(yīng)用程序的Android清單文件 62
5.3.8 TodayMobileActivity類 63
5.3.9 可穿戴設(shè)備應(yīng)用程序的Android清單文件 65
5.3.10 OnThisDayActivity類 66
5.3.11 HandheldListenerService類 68
5.4 消息沒有發(fā)送到可穿戴設(shè)備應(yīng)用程序嗎 71
5.5 本章小結(jié) 71
第6章 上下文通知 73
6.1 接收通知 73
6.2 具有待辦事項(xiàng)通知的Today應(yīng)用程序 76
6.2.1 地理圍欄 76
6.2.2 模擬GPS 76
6.2.3 可穿戴設(shè)備和移動應(yīng)用程序中的build.gradle文件 77
6.2.4 手持設(shè)備應(yīng)用程序的Android清單文件 77
6.2.5 TodoMobileActivity類 79
6.3 待辦事項(xiàng)列表視圖 83
6.4 添加待辦事項(xiàng) 84
6.4.1 模擬位置 85
6.4.2 用FakeGPS應(yīng)用程序模擬位置 85
6.4.3 GeofenceTransitionIntentService類 87
6.4.4 手持設(shè)備應(yīng)用程序通知 89
6.4.5 可穿戴設(shè)備應(yīng)用程序通知 90
6.5 本章小結(jié) 91
第7章 語音交互、傳感器和跟蹤 93
7.1 語音功能 93
7.1.1 系統(tǒng)提供的語音動作 94
7.1.2 應(yīng)用程序提供的語音動作 95
7.2 新特性——通過語音命令添加待辦事項(xiàng) 95
7.3 可穿戴設(shè)備應(yīng)用程序中的AddTodoItem活動 97
7.4 處理語音輸入 98
7.5 手持設(shè)備應(yīng)用程序 100
7.6 運(yùn)動傳感器 101
7.6.1 陀螺儀 102
7.6.2 加速計(jì) 103
7.7 新特性——行走跟蹤 103
7.8 本章小結(jié) 106
第8章 創(chuàng)建自定義用戶界面 107
8.1 Android Wear用戶界面設(shè)計(jì) 107
8.2 常見的UI模式 108
8.2.1 卡片 108
8.2.2 選擇列表 110
8.3 重溫OnThisDay活動 110
8.3.1 OnThisDayActivity活動 111
8.3.2 活動布局 112
8.4 本章小結(jié) 115
第9章 原質(zhì)化設(shè)計(jì) 117
9.1 上手原質(zhì)化設(shè)計(jì) 117
9.1.1 與世界交互 118
9.1.2 可視化語言 121
9.2 待辦事項(xiàng)菜單 122
9.2.1 TodosActivity類 123
9.2.2 TodoItemTypeFragment類 125
9.2.3 NavigationAdapter類 126
9.2.4 導(dǎo)航項(xiàng) 127
9.2.5 WearableDrawerLayout類 127
9.2.6 菜單項(xiàng) 128
9.2.7 菜單監(jiān)聽器 129
9.2.8 切換待辦事項(xiàng)類型 130
9.3 本章小結(jié) 132
第10章 表盤 133
10.1 報(bào)時(shí) 133
10.1.1 什么是表盤 134
10.1.2 設(shè)計(jì)時(shí)的考慮因素 134
10.1.3 實(shí)現(xiàn)時(shí)的考慮因素 135
10.1.4 表盤服務(wù) 135
10.1.5 交互式表盤 136
10.1.6 性能考慮因素 137
10.2 制作表盤 138
10.3 TodayWatchFace服務(wù) 139
10.4 TodayWatchFaceService類 141
10.5 onTimeTick方法 142
10.6 繪制表盤 142
10.7 環(huán)境光模式 144
10.8 定制表盤 145
10.9 本章小結(jié) 147
第11章 高級特性和概念 149
11.1 讓手表一直運(yùn)行 149
11.2 屏幕常亮的步進(jìn)計(jì)數(shù)器 151
11.3 調(diào)試可穿戴設(shè)備應(yīng)用程序 156
11.4 未來之路——Android Wear 2.0述評 163
11.4.1 表盤的復(fù)合顯示 163
11.4.2 導(dǎo)航和動作抽屜 164
11.4.3 消息風(fēng)格的擴(kuò)展通知 164
11.4.4 輸入法框架 164
11.4.5 遠(yuǎn)程輸入和智能回復(fù) 165
11.4.6 手腕姿態(tài) 165
11.4.7 橋接模式 165
11.4.8 可獨(dú)立運(yùn)行的可穿戴設(shè)備 166
11.5 本章小結(jié) 166
第12章 把應(yīng)用程序發(fā)布到Google Play 167
12.1 測試 167
12.1.1 測試需求 168
12.1.2 單元測試類型 168
12.1.3 用戶界面的自動化測試 169
12.1.4 測試API 169
12.1.5 人的參與 172
12.2 發(fā)布應(yīng)用程序 172
12.2.1 打包 173
12.2.2 發(fā)布和選擇進(jìn)入 176
12.3 本章小結(jié) 180