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呢?这是由于可穿戴设备和手机平板等设备太不一样了。

详细体如今。

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

2.  创建/启动android wear 模拟器

这个应该非常easy。仅仅需在模拟器界面选择AndroidWearRound/Square就可以。

创建完后,点击start就可以

Android Wear之android穿戴式设备应用开发平台-LMLPHP

3.  手机设备上安装android wear preivew程序

该程序事实上就是一个launcher,可穿戴式设备上的默认launcher就是这个。

该程序同一时候另一个后台service,该service负责接收系统的通知。然后在launcher上显示。对于可穿戴式设备。该service可以接收远程(手机)的通知,然后再在launcher上显示。

安装完后,按home键,会弹出选择框,然后选择android wear就在手机上进入android wear launcher。然后须要开启同意接收通知选项。

由于该应用处于preview的状态,google不希望将该应用开放,由于这里我就没有将该app上传了,感兴趣的可以在以下的网页注冊成为測试者来体验

有消息后就会有类似例如以下的显示:

4.  连接手机和模拟器

刚刚也提到了。模拟器是通过读取手机上的通知来显示的,自然须要有通信通道,对于模拟器来说,就是通过adb的tcp通道来的。

通过例如以下命令实现:

对于实际使用场景,智能手表等穿戴式设备通常是通过蓝牙或者Wifi-direct来和手机通信。

adb -d forward tcp:5601 tcp:5601

总结:

/********************************

* 本文来自博客  “爱踢门”

* 转载请标明出处:http://blog.csdn.net/itleaks

******************************************/

04-28 00:42