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

來源:互聯網
上載者:User

標籤:use   frame   tab   通知   tco   引導   過程   hid   modify   

          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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSVRsZWFrcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="520" height="520" >

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

       這個應該非常easy。僅僅需在模擬器介面選擇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.

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

                

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSVRsZWFrcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="200" height="300" >

4.  串連手機和模擬器

        剛剛也提到了。模擬器是通過讀取手機上的通知來顯示的,自然須要有通訊通道,對於模擬器來說,就是通過adb的tcp通道來的。

通過例如以下命令實現:

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

         

adb -d forward tcp:5601 tcp:5601

總結:

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

1)  建立跨裝置顯示互動標準。

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

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


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


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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.