# 注意事项

# 1 内存

# 1.1 内存要求

不得超过35M,CPU使用超过90%的时间段不超过总体的10%。

# 1.2 内存使用原则

  • 单个应用可使用的最大内存为48M,超过将报内存溢出

  • 慎用native下的内存分配,防止内存泄漏。

  • 禁止在native申请大内存来规避48M的内存限制。

  • 图片尽量使用适配的大小,资源缓存使用适当。

  • 尽量减少后台服务独立进程运行的方式。

  • 复用系统自带的资源。

  • 避免在onDraw方法里面执行对象的创建。

  • 优化布局层次,减少内存消耗, 确保View不会过度绘制。

# 2. 功耗优化

# 2.1 基础要求

  • 慎用唤醒锁,特殊需求使用后一定要记得释放。

  • 对于需要请求网络的服务一定要注意检测网络的状况,避免不停的重试工作。

  • 后台服务合并或减少必要的唤醒工作。

  • 避免屏幕常亮的情形,要有常亮时间限制。

  • 尽量减少日志打印。

  • 避免静态广播监听。

# 2.2 功耗优化

  • 小电池设备,需要尽可能的降低使用功耗和待机功耗。

  • 应用内待机,无网络请求等唤醒操作。

  • 禁止后台长连接,禁止保活。

  • 禁止空闲应用访问摄像头、麦克风和传感器。

  • 禁止无故持锁,干扰系统休眠。

# 2.3 功耗建议

  • 背景色尽量以深色为主。

  • 尽量减少动画。

  • 音效不要一直播放,即使是音量0,也有几十毫安的电流。

  • 网络数据交互尽可能在时间上对齐。比如有两个请求,一个是0s时刻请求,另一个是5s时刻请求,如果能够将这两个请求都在0s时刻请求,网络方面的功耗会降低一半。

# 3. 安装包大小

  • 手表ROM达4G及以上机型:安装包大小不超过30M,安装后空间占用不超过40M。

  • 手表ROM为512M机型:安装包大小不超过10M,安装后空间占用不超过15M。

# 4. 不允许热更新

所有新特性都需要经过小天才应用商店审核,不允许热更新。

# 5. 存储规范

  • 要求应用卸载后,能完全删除与该应用相关数据。

  • 第三方应用存储只能在/sdcard/Android/data/第三方包名/或/data/data/包名目录下。

  • 第三方需自行处理数据被删除后的事宜,如下载音乐被删除,播放列表就不要显示等。

  • 用户清理空间时,手表将删除/sdcard/Android/data/包名/和data/data/包名下目录。

  • 原则上用户清理空间后,第三方应用所占空间大小应和初始安装一致。

# 6. 流量使用

流量消耗作为用户较为关注的使用问题,需支持流量使用提醒和管控。

# 6.1 流量使用提醒与限制

  • 用户第一次使用流量,必须Toast提醒。

  • 断网时,需暂停播放音频,来网时不允许继续播放,依然维持在暂停状态。

  • 常播音频原则上尽量缓存,快速切音频的时,需主动调用mediaPlayer的stop,取消上一音频的缓冲,减少流量消耗。

# 6.2 流量开关

小天才家长端APP当前可控制手表单个应用的流量开关,应用需重点关注流量禁用时的使用体验。

  • 流量开关相关文件

见附件 流量开关java文件

  • 代码判断当前是否被禁用

注意: 调用下面代码之前,请先判断当前手表的网络是否是数据流量网络,如果是WiFi的情况下,不要调用!!!否则可能会出现不对的逻辑。

NetworkPolicyForApp networkPolicyForApp = new NetworkPolicyForApp(context);
boolean isDisabled = networkPolicyForApp.isMobileTrafficDisabled("packageName");

# 7. 音频焦点冲突

# 7.1 有声音播放的APP应正确处理音频焦点的获得与失去

开始播放前获取音频焦点,失去音频焦点暂停播放。

# 7.2 音频播放先后顺序

  • 手表不允许音频同时播放。

  • 音频播放遵循先后顺序,后面申请音频焦点,前面的主动暂停。

# 7.3 音频缓冲问题

异步缓冲现在容易anr,优先使用同步缓冲的方法,开启子线程同步缓冲即可。

Last Updated: 2021/4/13 上午8:46:29