Android Wear 開發 (一)
Android Wear究竟是什麼?
Android Wear和手機是完全不同的設計理念:手機大多數情況下,都是使用者去操作,去觸發裡面的應用;而手錶則是“使用者被動”的,使用者越少感覺到你的存在,越是合理,而在某些場景下給予最合適的提醒,則是Android Wear最偉大的設計理念,這也是它想做到的。
Android Wear是智慧的通知欄!(個人理解)
在早上醒來的時候,給你推送早上的天氣、交通狀況。在你到達餐館的時候,給你推送大眾點評,美團購物券,為你精打細算。檢測到你的運動狀態,顯示計步器,心率狀況(Android Wear本身內建)。
Android Wear開發階段
產品需求方向的確定
很重要的是,產品要設計成什麼樣子?
1. 手機到手錶的資訊通知欄樣式優化 : 例如設定背景
2. 手機與手錶的智慧推送:例如通過手錶來尋找手機,或是將手機拍到的照片傳送給手錶
3. 自定義卡片樣式:保持卡片樣式的基礎上,對卡片內的佈局進行調整,新增動畫,點選等互動
4. 完全自定義介面,提供獨特的互動:可拋棄卡片樣式,使用WearAPI提供的新元件
5. 手錶錶盤:各種樣式,各種高大上
技術實現
以上4個點,是設計到不同方面,不同層次的技術。要想清楚後,使用最恰當的技術去實現之。以下列出針對上面的實現需要的技術點
1. 手錶通知優化:實現最簡單,是非常有效的提升應用在手錶上的顯示
2. 智慧推送:資料通訊,監控手錶的狀態,為介面展示提供更豐富的資料支援
3. 自定義卡片:保留官方提供的卡片流樣式,個性化修改卡片內容
4. 完全自定義介面:自己實現介面,需要處理多解析度問題,自由度高
5. 手錶錶盤:類似手機動態桌布的機制
開發平臺的搭建
Eclipse平臺的搭建
2. 下載必要的SDK版本:最低4.4W.2(API20),也可以是5.0以上。注意不是4.4.2(API 19)。詳情見截圖。
1. SDK Platform:你懂的
2. Samples for SDK:強烈推薦下載,因為部分API在官網的開發者指導文章中是沒有提及的,一些解決問題的思路,可以從SDKSamples中學習到。
3. 2個SystemImage:建議下載,要多解析度測試,還是需要模擬器的!另外,務必升級到最新版本,在開發過程中,遇到模擬器Bug:動態載入的View在手錶正常顯示,而模擬器失效,更新後即可。
4. Sources for Android SDK:你懂的
3. 升級AndroidSDK Tools:最低23.0.0
4. 下載依賴庫:
0. Google Support Library : 提供android.support.v4.app.NotificationCompat.WearableExtender:用於實現手錶卡片通知的適配
1. Google Play Services:提供com.google.android.gms.wearable:用於實現手機和Wear的資料傳輸功能
2. Google Repository : 提供android.support.wearable:實現Wear的自定義介面
5. 解壓Wear依賴庫:下載後的包在/sdk/extras/google/m2repository/com/google/android/support/wearable/1.0.0/wearable-1.0.0.aar。解壓到工作目錄下,並將裡面的classes.jar拷貝到libs目錄下。
6. 匯入Wear依賴庫:Eclipse匯入上一步解壓的工程,並工程屬性properties設定為Is Library.
建立Android Wear工程
ADT升級後,依然沒有出現以上畫面,因此,選擇了以下的方式。
2. Eclipse匯入模板工程
3. 模板匯入wearable-1.0.0依賴庫,解決也許找不到android.support.wearable包的問題。
注:ADT 自(23.0.2)這個版本開始就沒有Blank Wear Activity,所以得下載模板工程來開發。
建立模擬器
· Device:選擇方形/圓形的裝置
· Target:4.4w.2
· CPU/ABI:此處筆者選擇Android Wear Intel Atom(X86),因為本人的64位Ubuntu 14.04系統在選擇AndroidWear ARM(armeabi-v7a)時候會報錯,所以在不確定哪個映象會報錯的情況下,最好兩個都下載吧。
· Hardware keyboard present:手錶是沒有鍵盤輸入的,所以,這裡似乎沒用,不過語音輸入是否與之相關有待調查。
· Skin:選擇與Device對應的,AndroidWearSquare
· Use Host GPU:這個很關鍵,不勾選這個,在做Notification顯示自定義的Activity的時候會看到一片漆黑
Android Studio 平臺的搭建
在Android Studio中建立新的工程(包名,工程名你隨便起了),Next
同時建立手機專案和Wear專案
建立Phone端的頁面樣式
建立Wear端的頁面樣式
同時生成Phone和Wear專案(方便打包)
Wear的連線除錯
步驟是:
1. 手機端usb除錯開關
2. 在Android Wear手錶裝置上開啟藍芽除錯開關:
-->原生AndroidWear系統是:連點兩次主屏會顯示出wear選單或者長按手錶右側物理按鍵,滾動到底部點選設定,再滾動動到底部,如果也沒有開發者選項,就點選關於,再點選系統版本資訊七次,就會出現開發者選項。進入開發者選項,並開啟藍芽除錯開關。
-->Ticwear中文系統上是主屏上左劃出現選單,滾動選擇設定,滾動到底部,如果也沒有開發者選項,同樣,就點選關於,再點選系統版本資訊七次,就會出現開發者選項。進入開發者選項,並開啟藍芽除錯開關。
3. 開啟除錯會話:
1)手機USB資料線連線到電腦,在手機端開啟Android Wear應用(確保應 用已連線到手錶)。
2)點選介面右上的齒輪選單進入設定(Settings)
3)開啟“通過藍芽除錯”(Debuggingover Bluetooth)。你可以看到裝置連線狀態:
Host:disconnected
Target: connected
4)確保手機用USB資料線連線了電腦,並執行adb命令:
adb forward tcp:4444 localabstract:/adb-hub;
adb connect localhost:4444
你就可以看到剛才的連線狀態就變成了:
Host: connected
Target: connected
4. 除錯應用
如果執行adb devices命令,你的可穿戴裝置應該是顯示為localhost:4444。要執行任何adb命令,格式應該是類似這樣:
adb -s localhost:4444 <command>
如果沒有其他裝置通過TCP/IP連線(即沒有連線其他模擬器),你也可以使用簡化的命令:
adb -e <command>
例如:
adb -e logcat
adb -e shell
adb -e bugreport
注:其實第3步OK後用AndroidStudio直接跑起Wear程式即可,App即可會自動安裝到手錶上,稍微有點慢耐心等下就好。
Wear APP的正式開發
與手機端開發的一些不同
- 系統有個強制休眠時間。如果正在顯示介面,但使用者又沒有進行操作,裝置就會休眠。當再次喚醒後,會回到錶盤主頁而不是你之前的介面。如果你有東西需要持久化顯示,可以推送通知到資訊流中。
- android wear應用相對於手機應用來說,顯示尺寸和功能更小巧。可能是手機應用的子集,通常你可以先在手機上操作,然後將結果傳送到手錶。
- 使用者不需要直接下載應用到android wear裝置。你只需要將android wear應用繫結到android手機應用中。當用戶安裝了手機應用,系統會自動安裝android wear應用。可以出於開發目的,你依然可以安裝應用到android wear裝置中。
4. android wear應用可以訪問標準的AndroidAPIs。但不支援一下APIs:
Wear 通知的開發
為了建立一個手持裝置上的並且也能同時傳送給可穿戴裝置的Notification,需要使用NotificationCompat.Builder。當你使用這個類建立Notification之後,如何正確展示的工作就交由系統去完成,無論是在手持式裝置上還是可穿戴裝置上。
需要匯入的類(手機端)
importandroid.support.v4.app.NotificationCompat;
importandroid.support.v4.app.NotificationManagerCompat;
importandroid.support.v4.app.NotificationCompat.WearableExtender;
普通通知欄
- 手機:普通的通知欄在手機上的效果應該都不陌生,這裡就不展開說明
- 手錶:手錶端的效果是由2張卡片構成的,第一張是手機通知欄的資訊組成,第二張是點選開發手機應用,具體的效果與手機通知欄的點選事件一致,也就是說,如果通知欄沒有設定點選事件,那麼就不會有第二張卡片。另外,預設的背景色是由應用圖示所決定的,是取主要的顏色值
以上是最原始的通知欄效果,沒有進行手錶端適配處理的。(其實普通的通知欄你都不用做。。。。。。)
新增Wear擴充套件屬性的通知欄
擴充套件屬性
· 多張卡片:通知欄的多張內容展示
· 自定義動作按鈕:自定義Action按鈕的事件處理
· 設定背景:設定通知欄的背景色
· 堆疊多張卡片:通知欄卡片的堆疊
· 語音回覆:
Wear 上的UI開發
Android Wear apps使用者介面不同於在手機裝置上構建。需要遵循AndroidWear設計規範和UI模式,以確保應用通過針對可穿戴裝置而優化的一致使用者體驗。
UI模式主要通過以下方式實現:
- 卡片
- 倒計時和確認
- 長按消失
- 2d pickers
- 選擇列表
Wearable UI Library是Android SDk中Google Repository的一部分,提供幫助你實現這些模式的類,並可以建立同時適配執行在圓形和方形螢幕裝置上的佈局。
定義佈局
當建立android wear佈局的時候,要考慮裝置有兩種螢幕,方形和圓形。任何位於螢幕角落的內容都會被圓形螢幕裁剪掉。
Wearable UI Library提供兩種方式解決這個問題:
1、為圓形和方形螢幕的裝置定義兩套佈局。在執行時檢測裝置螢幕並渲染不同的佈局。
2、使用Wearable UILibrary中一種特殊的佈局來包住你的佈局。這個佈局會根據裝置螢幕來載入不同的佈局檔案。
典型的辦法是第一種,如果佈局簡單可以直接使用第二種。
為圓形和方形螢幕定義不同的佈局
Wearable UI Library中的WatchViewStub這個類可以讓你為圓形和方形螢幕定義不同的佈局。這個類會在執行時檢測螢幕形狀並渲染相應的佈局。
1、在你的activity佈局檔案中新增WatchViewStub元素
2、使用rectLayout屬性為方形螢幕指定佈局檔案
3、使用roundLayout屬性為圓形螢幕指定佈局檔案
- <android.support.wearable.view.WatchViewStub
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/watch_view_stub"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:rectLayout="@layout/rect_activity_wear"
- app:roundLayout="@layout/round_activity_wear">
- </android.support.wearable.view.WatchViewStub>
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_wear);
- }
- 訪問佈局控制元件
- 渲染布局檔案不是同步的,所以要設定一個回撥來監聽WatchViewStub渲染完成。
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_wear);
相關推薦
Android Wear 開發 (一)
Android Wear究竟是什麼? Android Wear和手機是完全不同的設計理念:手機大多數情況下,都是使用者去操作,去觸發裡面的應用;而手錶則是“使用者被動”的,使用者越少感覺到你的存在,越是合理,而在某些場景下給予最合適的提醒,則是Android W
Android NDK開發(一)CMake構建工具使用
一、Android studio中需要的外掛: CMake LLDB NDK 二、專案配置 ①build.gardle的配置 :多了兩個externalNativeBuild :def
Android WiFi開發 (一)掃描、連線、資訊
在平常開發中經常會涉及到wifi相關的內容,在此將之前所用到的整理一下,以免忘記。操作wifi的相關類,主要放在android.net.wifi包下面。使用wifi相關方法需要申請一些許可權: 申請許可權方式:在AndroidManifest.xml檔案中填寫<uses
一步一步學Android ROM開發(一)——修改現有ROM資原始檔
一,準備工作 1.一臺開發手機。 我推薦最好用G7,也是就HTC Desire那款(是不是有些廣告嫌疑。。。),這臺機各種ROM都很全,資料也多些,很容易刷到root,android版本也是最新的2.3.3. 2.Auto-sign簽名工具 這個是
Android NDK開發(一)環境搭建
關於ndk的開發流程,對於Windows環境下NDK的開發,如果使用的NDK是r7之前的版本,必須要安裝Cygwin才能使用NDK。而在NDKr7開始,Google的Windows版的NDK提供了一個ndk-build.cmd的指令碼,這樣,就可以直接利用這個
Android 網路開發(一) okHttp網路請求之快取控制Cache-Control
Cache-Control: Cache-Control指定請求和響應遵循的快取機制。在請求訊息或響應訊息中設定Cache-Control並不會修改另一個訊息處理過程中的快取處理過程。請求時的快取指令有下幾種: Public指示響應可被任何快取區快取。 Private指示對於單個
Android混合開發(一)——移動端與前端互動之JSBridge引入
一丶概述 最近轉前端,在做一個混合專案,Android + 前端Vue技術,Vue沒那麼快上手,先分享一下Android部分的經驗,後期會學習Flutter,和RN,邊學邊做邊分享 二丶效果演示 三丶JSBridge引入 1.什麼是JSBridge JSBrid
Android Native開發(一)JNI
JNI 是 Java Native Interface 的縮寫,即JAVA本地介面。 JNI 是 Java 的一部分,不是Android引入的。 首先介紹JNI在 JAVA 下的示例,再介紹如何在Android下使用。 eclipse建立Java Application
Android 資料庫開發(一)SQLite3概述
前言 SQLite是一款輕型的資料庫,是遵守ACID的關係型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域專案,設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在Android、iOS等
Android相機開發(一)之預覽拍照檢視圖片基本功能的實現
前言 接觸Android開發有一段時間了。一開始時純粹是出於自己的興趣,空閒時寫幾個小軟體自娛自樂。剛好暑假時老闆佈置的任務跟Android相關,所以這段時間又繼續進行了Android的開發學習。現在的Android開發水平僅屬於
android 快速開發(一)抽象類的使用:使業務邏輯更清晰
抽象類的使用:使業務邏輯更清晰 一、abstract修飾符 abstract修飾符可以用於類、方法、屬性、事件和索引指示器(indexer),表示其為抽象成員,抽象方法是沒有方法體的方法。 abstract 不可以和static、virtu
android的百度地圖開發(一)
one rst dir 還要 遠程服務 存儲 返回 src copy 1,註冊百度開發者賬號 2,申請key ,註意開發版SH和發布版的SH 獲取開發版SHA1: 輸入命令:keytool -list -v -keystore debug.keystore,回車輸入密鑰
一步一步學習Android TV/盒子開發(一)
寫在前面的話: 本人做了幾年的機頂盒和Android電視上的應用開發,寫這些文章只是為了讓初次接觸大屏開發的同學能夠快速上手。 TV端因為沒有觸控操作,只有遙控操作,所以焦點處理、控制以及按鍵監聽是其主要特點。 焦點處理 設定可獲取焦點 佈局中需要設定某個控制元件可獲取焦點需要加
android開發(一)
開始android歷程: 1、模擬器無法連線本地PC: 模擬器中可以連外網,但無法訪問本地PC上的IIS的API介面:報connect refused錯誤。 後試了很多方法,修改模擬器網址等,沒用。 &
【Android音視訊】Android Onvif-IPC開發(一)——在Android端搭建伺服器模擬Onvif-IP-Camera
Android端實現Onvif IPC開發: 本篇內容簡介: 本篇是上一文章移植失敗採取的第二方案,通過在android搭建service,模擬成一個onvif協議對接的IPC端,在這之前,首先需要明白,onvif裝置對接的流程或者說方式,接下來的文章內容
【Android音視訊】Android Onvif-IPC開發(一)——gSoap移植NDK嘗試
Android端實現Onvif IPC開發: 閱讀說明(必讀) 我在進行gSoap移植時暫時失敗了,而是採用方案二,在android端通過java搭建的server去模擬IPC,達到需求(實現Android端可供Onvif檢測的IPC),以下是我移植的步驟
Android開發(一)——Android-Studio 開發環境配置
第一步:下載Android-Studio 地址1:https://developer.android.com/studio/index.html?hl=zh-cn第二步:安裝JDK和配置環境變數 由於我下載Android-Studio的版本JDK需要在8.0版本以上,所以如果
Android studio中NDK開發(一)——使用CMake構建NDKDemo
一、前言 NDK可以支援使用C/C++來編寫Android程式,不但可以接入C/C++中優秀的庫資源,而且處理效率高,在音視訊方面有著廣泛的應用。本篇主要以CMake的方式來構建NDK,主要以最常規的方式建立一個NDKImportDemo,並對自動建立官方例子進行分析構建的過程以及CMakeLi
Android二維碼掃描開發(一):實現思路與原理
【 回覆“ 1024 ”,送你一個特別推送 】 現在二維碼已經非常普及了,那麼二維碼的掃描與處理也成為了Android開發中的一個必要技能。網上有很多關於Android中二維碼處理的帖子,大都是在講開源框架zxing用法,然後貼貼程式碼就完了,並沒有一個系統的分析和
Android 百度地圖開發(一)如何呼叫百度地圖介面和在專案中顯示百度地圖以及實現定位
二、下載百度地圖API庫 然後新增到專案中即可。 三、在專案清單AndroidMainifest.xml配置百度地圖API key和新增相關許可權 四、在專案呼叫百度地圖專案功能,這篇文章就首先講講顯示地圖和定位的功能 首先