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两项)

itleaks@Itleaks:~/android-sdk-linux/tools$ ./android

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

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" alt="">

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穿戴式设备应用开发平台的更多相关文章

  1. [nRF51822] 15、穿戴式设备上电量检测装置的设计及细节技术点(偏专业硬件文章)

    穿戴式 设备如智能手环.智能手表一般采用几百毫安时的锂离子电池来供电.因此,与之配套的充电电路.稳压电路和电池电量检测电路便必不可少!本文主要谈谈该类消费类电子内部电池电量检测的一般方法及其优缺点. ...

  2. 用铁电存储器FRAM让穿戴式设备更省电

    可穿戴设备应用中的显示屏消耗了大部分电池电力.解决方法之一是直接提高电池容量,但是大容量电池会加大尺寸和重量,对可穿戴设备不合适,尤其是在市场不断追求更小型化的新款产品时更是如此.更具挑战性的是电池技 ...

  3. 想做Android Wear开发?你得先搞明白这四件事

    手环和手表的腕上穿戴之争,随着Apple Watch发布和Android Wear不断完善而告一段落.尽管续航上略有缺陷,但手表以其类似手机可扩展的生态环境赢得了众多巨头的支持. Google曾透露, ...

  4. Android Wear和二维码

    这是一篇发布在Android官方开发者社区博客,15年年初的时候就看到了这篇文章,直到现在才有时间把它翻译下来. 这是一篇如何在Android Wear上面如何正确地展示二维码的文章,里面有许多的经验 ...

  5. 北京君正集成电路的Newton平台--穿戴式

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/hellomxj1/article/details/25324125   Newton1开发平台 • 很适合 ...

  6. 在线App开发平台——应用之星傻瓜式开发平台

    随着智能手机及APP应用程序的普及,越来越多的企业和个人意识到APP的营销价值,出于对技术的敬畏,很多企业下意识认为开发APP是一个有难度的技术活,所以很多时候有心无力,也担心APP的后续的技术支持. ...

  7. android wear开发之:创建可穿戴设备应用 - Creating Wearable Apps

    注:本文内容来自:https://developer.android.com/training/wearables/apps/index.html 翻译水平有限,如有疏漏,欢迎批评指教. 译:山人 创 ...

  8. android wear开发:为可穿戴设备创建一个通知 - Creating a Notification for Wearables

    注:本文内容来自:https://developer.android.com/training/wearables/notifications/creating.html 翻译水平有限,如有疏漏,欢迎 ...

  9. 下载编译 Android wear 源代码,尝试制作可穿戴设备功能

    体验 Android Wear 缘由: Android wear 代码公布已经非常久了.一直没有尝试,这里是个编译的过程和步骤,假设要尝试.本文假定读者已经有下载编译 Android  的经验,假设没 ...

随机推荐

  1. iOS应用笔记之git的本地使用

    什么是git (1)什么是git >git是一个 "分布式"的版本号控制工具 >git的作者是Linux之父:Linus Benedict Torvalds,当初开发g ...

  2. poj 2480 Longge's problem 积性函数性质+欧拉函数

    题意: 求f(n)=∑gcd(i, N) 1<=i <=N. 分析: f(n)是积性的数论上有证明(f(n)=sigma{1<=i<=N} gcd(i,N) = sigma{d ...

  3. [NowCoder]牛客OI周赛3

    A.地斗主 题意:\(4\times N\) 的地板,在上面铺 \(1\times 2\) 和 \(2\times 1\) 的地砖,求铺满方案数, \(N\le 10^9\) 原题..先把一列的状态压 ...

  4. POJ 1320 Street Numbers Pell方程

    http://poj.org/problem?id=1320 题意很简单,有序列 1,2,3...(a-1),a,(a+1)...b  要使以a为分界的 前缀和 和 后缀和 相等 求a,b 因为序列很 ...

  5. JS/CSS 各种操作信息提示效果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. 自定义Base 64加密

    一.前言 最近做软件需要一个功能,就是对文件进行加密.本来嘛,加密算法一堆一堆的,但是试了几个成熟的加密算法后发现对文件进行加密需要的时间很长,特别是上G的文件,这样客户是接受不了的.最后没办法了,好 ...

  7. Flume Sinks官网剖析(博主推荐)

    不多说,直接上干货! Flume Sources官网剖析(博主推荐) Flume Channels官网剖析(博主推荐) Flume Channel Selectors官网剖析(博主推荐) 一切来源于f ...

  8. cookie记住用户名密码

    <script src="js/jquery.cookie.js" type="text/javascript"></script> $ ...

  9. vue权限控制菜单显示的简单实现

    为了对于不同角色显示不同的菜单 思路1: 本地放一份完整的菜单数据,通过后台返回角色的菜单列表.两者对比,筛选需要显示的菜单数据绑定, 这里有个问题就是路由vue实例初始化就生成了,加载的全部,人为输 ...

  10. python基础--数值类型和序列类型

    Python中数值类型:int(整数),float(浮点数),True/False(布尔值,首字母必须大写) int:1    #任意整数 float:2.3   #小数 python赋值: a = ...