Android Wear之android穿戴式裝置應用開發平台

來源:互聯網
上載者:User

標籤:android   android wear   穿戴式裝置   google io大會   

          Android Wear於2014年03月19日發布,並有Moto 360和LG watch兩款產品。目前源碼還沒有開放,但是開發人員可以下載它的Image及對應的開發SDK,這樣開發人員通過模擬器可以進行前期開發。其實,Android Wear包含兩個部分,一部分是運行在穿戴式裝置上的作業系統,一部分是給手持功能(手機,平板)程式使用的SDK,該SDK的主要目的是為穿戴式裝置上應用開發提供了參考及規範,以引導使用者開發出可同小螢幕裝置協作操作的應用程式。這裡使用“協作操作”是因為使用者開發的這個程式永遠不會在可穿戴式裝置上運行,它只是定義UI介面,android wear的服務會將UI資訊傳遞給可穿戴式裝置,然後可穿戴式裝置利用自身的UI機制顯示出。從這個角度來看,Android wear的作用是在手持功能和可穿戴式裝置提供一套顯示標準,按照這個格式,就可實現跨裝置顯示。這個標準就是android的通知,當穿戴式裝置和手持功能串連後,手持功能的通知就會傳遞到穿戴式裝置,然後穿戴式裝置將通知以適合自身的操作的方式顯示處理,當然為了在穿戴式裝置上有更好的顯示,需要開發人員做少量的修改,這個就是SDK的作用。目前Android Wear的資訊還不夠多,接下來幾天的Google IO大會(6.25-6.27)上,Android Wear必將是熱點話題,會釋放更多資訊。


Android Wear推出原因

       我們知道,android自打一出世,就一直引導使用者一個程式同時支援不同螢幕裝置的應用,這也是res目錄下有layout, layout-land, layout-portrait, layout-sw600等目錄的原因,即是為了讓不同的裝置使用不同的layout達到裝置相容。那為啥到了穿戴式裝置上,android需要出一套獨立的SDK呢?這是因為穿戴式裝置和手機平板等裝置太不一樣了。具體體現在。

1)      螢幕太小,老的顯示模式不再適合

相比手機和平板,穿戴式裝置(手錶)的螢幕不是小,而是特別小。因而在這個螢幕上,應用基本上是顯示不出幾個view的,因而原來的那個複雜的layout檔案決定程式顯示架構的機制太複雜了,也用不上。

2)      輸入問題

我們知道,從PC切到手機,我們學會了從外接鍵盤切入軟鍵盤,並樂享其中。那穿戴式裝置呢?在手錶等小的可憐的裝置上彈出一個輸入鍵盤,估計使用者得拿放大鏡來輸入。

3)      裝置的非獨立性

我們知道,穿戴式裝置體積小,自然硬體就不夠強且配件也少(網路攝影機,上網模組等等),自然沒法做比較複雜的操作,因此穿戴式裝置往往需要藉助手持功能來幫組其完成任務,比如拍照,上網。


Android Wear重點模組分析
       顯示:

       螢幕小,因而盡量減少UI介面的元素,只顯示重要內容,並且盡量方便使用者互動。從這個角度來看,window8系統高瞻遠矚,卡片式的UI呈現天生適合任意解析度的顯示裝置。尤其是Metro案頭的程式動態訊息顯示,很適合穿戴式裝置。最開始的時候已經提到,穿戴式裝置的顯示主要就是通過顯示通知來實現的,採用通知這一機制本身就避免了上面的一些不足,達到顯示重點的目的,因為android的通知本身比較簡約,也適合小螢幕操作。除了這個之外,還有其他的一些改動。比如,android wear擴充並新增了一些通知對象,比如action,分頁顯示。

 

//普通的android裝置的notification對象NotificationCompat.Builder notificationBuilder =        new NotificationCompat.Builder(mContext)        .setContentTitle("New mail from " + sender.toString())        .setContentText(subject)        .setSmallIcon(R.drawable.new_mail);//帶action的notification,該action在可穿戴式裝置是以一個單獨的頁面顯示//的,使用者左滑即可進入action頁面,這個就是下面我們要提到的互動NotificationCompat.Builder notificationBuilder =        new NotificationCompat.Builder(this)        .setSmallIcon(R.drawable.ic_event)        .setContentTitle(eventTitle)        .setContentText(eventLocation)        .setContentIntent(viewPendingIntent)        .addAction(R.drawable.ic_map,                getString(R.string.map), mapPendingIntent);//下面的WearableNotifications是重點,這個就是專門針對可穿戴式裝置新增的//一類notification,這類notification允許有多個顯示頁面,使用者通過左右滑動//可以很自然的瀏覽更多內容Notification notification =        new WearableNotifications.Builder(notificationBuilder)        .setHintHideIcon(true)        .build();//下面notification的發送邏輯和普通裝置的notification是一樣的NotificationManagerCompat notificationManager =        NotificationManagerCompat.from(this);notificationManager.notify(notificationId, notification);

         當這個notification發送完後,wear介面上就會有如下顯示:

 

        互動:

        螢幕小,自然UI上沒法提供太多的選擇讓使用者去做,更沒有空間以軟鍵盤的方式輸入。因為,android wear上的互動往往比較專註,就是每個介面只做一件事,這樣可以簡化互動方式。這樣互動的模式可以簡化為顯示通知,使用者回複這一簡單的過程。同時使用者回複也必須方便,盡量減少使用者的手工輸入,因為android wear提供了常用的兩種,提供option列表和語音輸入兩種。同時android wear將這個回複的模式正常化了。這個互動在android wear叫做action,而輸入只是互動的一種方式,在android wear裡叫做RemoteInput,有remote字眼是因為往往這個輸入並不會直接發送出去了,而是會先發送到手持功能上(手機,平板),然後手持功能才真正發送。具體代碼邏輯如下:

        純語音的輸入:

RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)        .setLabel(replyLabel)        .build();

        帶預設文本選項及語音的輸入:

String replyLabel = getResources().getString(R.string.reply_label);String[] replyChoices = getResources().getStringArray(R.array.reply_choices);RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY)        .setLabel(replyLabel)        .setChoices(replyChoices)        .build();

         將輸入響應添加到通知中

Notification replyNotification =        new WearableNotifications.Builder(replyNotificationBuilder)        .addRemoteInputForContentIntent(remoteInput)        .build();

         

         多裝置串連

         由於多裝置互聯,資料轉送等都是系統Framework和底層問題,而不是直接和裝置的使用者打交道的,這個會在源碼開放後,我將單獨做一篇文章來分析。你可能會問了,為啥不開放,其實google目前正在彌補一個過錯,就是由於android過於開放導致android片段化,google對於android沒啥控制裡,國內廠商那就更加了。因而,在穿戴式裝置的android上,google估計肯定想統一介面,增強使用者體驗的一致性。


Android wear體驗環境搭建:
1.  下載SDK

1)      升級android-sdk-tool到22.6版本或者更高

2)      啟動SDK Manager,然後選擇如下勾選的內容:

然後選擇如下勾選的內容並下載(重點是AndroidWear ARM EABI v7a System Image和Android Support Library兩項)

[email protected]:~/android-sdk-linux/tools$ ./android


2.  建立/啟動android wear 模擬器

       這個應該很簡單,只需在模擬器介面選擇AndroidWearRound/Square即可。

        建立完後,點擊start即可


3.  手機裝置上安裝android wear preivew程式

        該程式其實就是一個launcher,可穿戴式裝置上的預設launcher就是這個。該程式同時還有一個後台service,該service負責接收系統的通知,然後在launcher上顯示。對於可穿戴式裝置,該service能夠接收遠程(手機)的通知,然後再在launcher上顯示。安裝完後,按home鍵,會彈出選擇框,然後選擇android wear就在手機上進入android wear launcher。然後需要開啟允許接收通知選項。由於該應用處於preview的狀態,google不希望將該應用開放,因為這裡我就沒有將該app上傳了,感興趣的可以在下面的網頁註冊成為測試者來體驗

http://developer.android.com/wear/preview/signup.html

Hello Developer,


Thank you for signing up for the Android Wear Developer Preview.


To begin developing on Android Wear, you’ll need the Preview Support library and the Android Wear Preview app for your mobile device. Follow these steps:


  • Download the Preview Support library and samples.

  • Opt-in to become a tester of the Android Wear Preview app in the Google Play Store. After opt-in, it could take up to 24 hours for the Android Wear Preview app to be accessible to you in Google Play. Make sure the opt-in user account is the same user signed in to Google Play.


Refer to the Android Wear DeveloperGet Started page for details. Since this is a preview release, please do not publicly distribute apps built with the Preview library.Also note that the APIs are potentially subject to change and you will need to modify your apps when they are released out of preview.

           有訊息後就會有類似如下的顯示:

                

4.  串連手機和模擬器

        剛剛也提到了,模擬器是通過讀取手機上的通知來顯示的,自然需要有通訊通道,對於模擬器來說,就是通過adb的tcp通道來的。通過如下命令實現:

         對於實際使用情境,智能手錶等穿戴式裝置一般是通過藍芽或者Wifi-direct來和手機通訊。

         

adb -d forward tcp:5601 tcp:5601

總結:

總的來說,android wear主要實現了兩點:

1)  建立跨裝置顯示互動標準。通知從手持功能按照一定的標準透傳到穿戴式裝置,穿戴式裝置根據通知資訊,然後顯示出來,使用者的響應然後再返回到手持功能。

2)  改造了androidnotification顯示機制,讓notification成為裝置顯示標準,並允許通知以適合穿戴式裝置顯示互動的方式顯示。


/********************************
* 本文來自部落格  “愛踢門”
* 轉載請標明出處:http://blog.csdn.net/itleaks
******************************************/


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.