土曼手表时钟插件开发文档 (开发中,暂不开放) - tomoon/sdk GitHub Wiki
一 为什么要用插件开发
插件式开发是指,只要提供一个主应用程序,此应用程序可以安装和调用其他插件式的功能模块,当应用程序需要增加功能时,不需要升级应用程序,而是通过安装新功能模块的插件。
时钟利用插件开发,便可以独立于土曼手机系统,用户想要换时钟时,只要下载插件,不用升级手表系统。
二 设计建议
由于土曼手表与手机在硬件上跟智能手机有一定的区别,所以对于时钟插件开发者,有一下两点建议:
1.由于手表属于穿戴式设备,其电池续航能力还尚达不到智能手机的水平,所以时钟按分钟来刷新,以降低时钟的功耗
2.土曼手表采用黑白eink屏幕,刷新率每秒4帧,所以尽量不要做复杂动画,以免影响实际效果
三 静态插件
简单的插件不需要编程,提供配置文件,土曼模拟器和手表解析配置文件来提供时钟功能。建议纯黑纯白的图片,可以在黑色边缘做水墨淡化的效果, PNG格式,可以设定透明,方便合成表盘指针,插件统一将所有资源打包成zip文件提供给土曼。配置文件名字是clock.cfg。
1.通用配置参数
- bg=0使用系统定义时钟背景;bg=1 白色背景,缺省bg=0, bg=文件路径,表示使用自己的背景图片
- 使用系统的时间制式(12/24小时制)
- filename_clock_dial是表盘图片,可以同时使用bg和filename_clock_dial,也可以只用filename_clock_dial。模拟时钟放表盘,数字时钟放“ :”或其他表盘。
2.模拟时钟
- 时针、分针 <= 241241, (做成正方形,指向十二点位置,以正方形中心点旋转指针,建议图片做成奇数点像素大小,如2525,这样中心点位于正中心,旋转不会有偏差)
- 坐标centerX, centerY,默认放置于屏幕中间
[ANALOG_CLOCK]
clock_type=0
bg=0
filename_clock_dial=/sdcard/.tomoon/skin/analog_clock_1/tm_ring_dial.png
filename_clock_hour=/sdcard/.tomoon/skin/analog_clock_1/tm_ring_hour.png
filename_clock_min=/sdcard/.tomoon/skin/analog_clock_1/tm_ring_min.png
center_x=120
center_y=160
- 数字时钟:
- 数字 0~9;
- 坐标四个数字(例如 08:20 )的左上角起始坐标值;
[DIGITAL_CLOCK]
clock_type=1
bg=/sdcard/.tomoon/skin/digital_clock_1/clock_bg_mj_3.jpg
filename_digital_dial=/sdcard/.tomoon/skin/digital_clock_1/small_greendot.png
filename_digital_0=/sdcard/.tomoon/skin/digital_clock_1/small_green0.png
filename_digital_1=/sdcard/.tomoon/skin/digital_clock_1/small_green1.png
filename_digital_2=/sdcard/.tomoon/skin/digital_clock_1/small_green2.png
filename_digital_3=/sdcard/.tomoon/skin/digital_clock_1/small_green3.png
filename_digital_4=/sdcard/.tomoon/skin/digital_clock_1/small_green4.png
filename_digital_5=/sdcard/.tomoon/skin/digital_clock_1/small_green5.png
filename_digital_6=/sdcard/.tomoon/skin/digital_clock_1/small_green6.png
filename_digital_7=/sdcard/.tomoon/skin/digital_clock_1/small_green7.png
filename_digital_8=/sdcard/.tomoon/skin/digital_clock_1/small_green8.png
filename_digital_9=/sdcard/.tomoon/skin/digital_clock_1/small_green9.png
package_name=com.example
update_service_name=com.example.MyService
start_x_dial=100
start_y_dial=120
start_x_h1=10
start_y_h1=120
start_x_h2=60
start_y_h2=120
start_x_m1=130
start_y_m1=120
start_x_m2=180
start_y_m2=120
四 资源图片及配置文件存放路径
/sdcard/.tomoon/skin/your_path/*.png,配置也放在和资源文件相同路径下,可以直接上传zip文件,预览程序会解压到在此路径并寻找所有clock.cfg文件,如需更新图片可以直接替换此路径下的图片。 安装 PreviewApk : https://github.com/tomoon/sdk/blob/master/UpdateBackgroundServicesDemo/TMClockPreview.apk 即可预览生成时钟效果。 将资源文件push 到sdcard如下路径: adb push analog_clock_1.zip /sdcard/.tomoon/skin/ 资源文件: analog_clock_1.zip link: link:https://github.com/tomoon/sdk/blob/master/UpdateBackgroundServicesDemo/analog_clock_1.zip
五 动态插件
可以提供APK,以android的service的方式,在后台修改背景图片,提供动态的功能, APK和其他文件一起打包成zip, 或者自己安装,需要在clock.cfg文件中指定包名 package_name=com.example 和Service名称update_service_name=com.example.MyService,并且将该服务设置成可以外部启动:android:exported="true"; 该服务可以提供更新时钟背景功能,测试app每分钟以startService方式调用一次该服务,真实的的手表会在启动时钟前调用。为了省电,目前仅在系统休眠前读取图片信息,休眠期间不更新,所以后台service不用起alarm service update图片。 Demo https://github.com/tomoon/sdk/tree/master/UpdateBackgroundServicesDemo
digital_clock_1.zip link: link:https://github.com/tomoon/sdk/blob/master/UpdateBackgroundServicesDemo/digital_clock_1.zip
<service
android:name="com.example.MyService"
android:enabled="true"
android:exported="true" />
6.联系我们
在时钟插件开发的过程中出现任何的问题,发邮件至[email protected]