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