Android Wear是Android操作系统的一个分支版本,专为智能手表等可穿戴式电脑设备所设计,由Google主导开发。
瞎扯扯
我们身处一个最好的时代,也是最坏的时代,智能硬件的普及,极大改善了人们的生活体验,以前只有在科幻电影中才可能出现的场景,也逐渐变为现实进入人类的生活。
在MOTO 360刚推出之时,刷新了我对手表的认识,Android Wear使得手表有了更多的可实现的功能,使得手表成为手机功能的延伸,某些功能的操作甚至不再需要手机,比如消息的阅读与回复,查看天气,导航、打车等等。
开发前准备
- Android Studio
- Android Wear手表或Android Wear模拟器
创建项目
Android Wear项目同时包含mobile、wear两部分,这里同时需要勾选Phone and Tablet、Wear,Minimum SDK这里都选API21。

wear部分默认选Add No Activity

由于我的Android Wear手表为圆形,这里就以圆形表盘为例

权限声明
表盘需要WAKE_LOCK
权限,在mobile和wear Module的manifest文件中声明权限。
1 2 3 4 5
| <manifest> <uses-permission android:name="android.permission.WAKE_LOCK" /> ... </manifest>
|
继承CanvasWatchFaceService类并实现相关方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public class MyWatchFaceService extends CanvasWatchFaceService { @Override public CanvasWatchFaceService.Engine onCreateEngine() { return new Engine(); }
private class Engine extends CanvasWatchFaceService.Engine { @Override public void onCreate(SurfaceHolder holder) { super.onCreate(holder); }
@Override public void onPropertiesChanged(Bundle properties) { super.onPropertiesChanged(properties); }
@Override public void onTimeTick() { super.onTimeTick(); }
@Override public void onAmbientModeChanged(boolean inAmbientMode) { super.onAmbientModeChanged(inAmbientMode); } @Override public void onDraw(Canvas canvas, Rect bounds) { }
@Override public void onVisibilityChanged(boolean visible) { super.onVisibilityChanged(visible); } } }
|
注册service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <service android:name=".MyWatchFaceService" android:label="@string/my_watch_faces" android:permission="android.permission.BIND_WALLPAPER"> <meta-data android:name="android.service.wallpaper" android:resource="@xml/watch_face" /> <meta-data android:name="com.google.android.wearable.watchface.preview" android:resource="@drawable/preview_smartisan" /> <meta-data android:name="com.google.android.clockwork.home.preview_circular" android:resource="@drawable/preview_smartisan" /> <meta-data android:name="com.google.android.wearable.watchface.companionConfigurationAction" android:value="com.example.android.wearable.watchface.CONFIG_ANALOG" /> <intent-filter> <action android:name="android.service.wallpaper.WallpaperService" /> <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> </intent-filter> </service>
|
实战-模仿锤子时钟
详细代码见smartisan_watchface

调试表盘
- 使用
assembleDebug
命令生成debug包
- 用
adb connect
命令连接手表进行调试
- 使用
adb instll
命令将表盘安装至手表
打包
- 使用
assembleRelease
命令生成release包
- 使用
adb instll
命令将表盘安装至手表