【引子】DBP(DuerOS Bot Platform)一直致力于构建健康高效的DuerOS生态系统,调试是开发者在开发DuerOS技能中不可或缺的重要环节,DBP如何进一步提升DuerOS 安卓App 技能的调试效率呢?
温故知新,我们先回顾一下DuerOS的技能分类。根据不同的视角可以对DuerOS 目前支持的技能类型进行不同的分类,例如,从用户与技能的语音交互方式来看, 可以将技能分为这四种技能类型:
L1技能:只支持语音的打开和关闭
L2技能:在技能内支持有限的语音交互
L3技能:在技能内支持丰富的语音交互
L4技能:支持跨越技能的丰富语音交互
L1 与L2技能的区别在于是否有技能内的语音交互,L2与L3技能的区别在于技能内的语音交互是否丰富,L3与L4 技能的区别在于是否有技能的唤醒边界。
从技能的实现形态来看,可以简单地分为两种技能类型,一种是云技能,另一种是端技能。云技能和端技能的主要区别在于是否需要在智能语音设备上安装技能的客户端,需要安装或提供客户端软件的技能就是端技能,否则可以认为是云技能Android App 技能可以认为是典型的端技能。那么,如何将一款Android 的App 移植成为DuerOS的智能语音应用呢?可以参考《一个安卓App,如何成为DuerOS 上的技能应用呢?》一文, 文中介绍了App 技能的调试方法。
基于调试系统的APP技能调试
由于APP 技能处于Preview feature 阶段,所以只能在真机上技能技能调试。在初期,App的技能调试是基于调试系统的,即可需要在设备上安装Debug Rom。
真机调试开发环境的安装
创建好APP技能后,点击【测试验证】 → 点击【真机测试】→ 点击【新增设备SN】,添加自己的小度设备SN。
开发者在配置好设备SN之后,可以对真机设备说,“小度小度,打开技能开发助手”,在菜单中选择【升级为开发版ROM】,根据语音提示进行后续操作即可。
注意:如果以上操作都完成还是提示申请升级失败,请确认设备上的账号和DBP平台登录的账号是否一致,要确保使用相同的账号。
真机调试密钥的获取和使用
在开发环境安装成功之后, 需要下载开发环境的密钥本地。
在真机调试的时候,密钥的使用方法如下:
1)替换到设备本地的 ~/.android 目录中
2)执行命令重启adb:
adb kill-server
adb start-server
安装应用,在Debug模式下调试
在真机的调试环境和调试密钥都安装成功后, 就可以使用ADB 命令安装目标APP了。
在保持开发者账号和小度设备账号一致的前提下,在DBP平台开启技能调试模式的按钮,对设备说,“打开技能调试模式”。进入到技能调试模式后, 开发者就可以使用语音交互来调试APP 技能了。
这个调试流程主要的一个缺点是安装系统的Debug Rom较大,需要的下载时间较长。当然,这取决于开发者当前的网络环境, 有时候要花费几十分钟,影响了开发的效率。而且,在安装完Debug Rom 后, 往往需要重启设备,对开发调试同样造成的不便。
于是,DBP 提供了新的App 技能调试方法。
基于调试模式赋能的App 技能调试方式
基于调试模式赋能的App 技能调试方式取消了Debug Rom 的下载, 通过将目标设备的赋能ADB调试模式,即可在任何智能屏设备上调试App技能。当我们在手机上调试Android App 的时候, 需要在手机的系统设置中开启开发者模式。基于密钥的App 技能调试模式与之类似, 只不过要需要在DBP 平台进行云端配合才能完成调试模式的开启。
DBP 平台的调试模式配置
在创建好APP技能后,在DuerOS开发者平台,配置要使用adb调试的设备SN。进入到App技能的控制台,点击【测试验证】-->【真机调试】:
然后在右边找到:AdbKey调试模式,点击【新增设备SN】,在弹窗中添入小度设备的SN。在平台配置好设备SN后,才可以在设备上使用【技能开发助手】开启Adb调试模式。
开启Adb调试模式
如果小度设备已经完成了开发者账户的绑定,则对设备说,“小度小度,打开技能开发助手”,即可进入到技能开发助手中了 ——
点击【开启adb调试模式】, 即完成了调试模式的赋能。
在点击开启Adb调试模式时,不要一直点击,要等到页面刷新成功。如果重复点击的话,可能会被限制使用adb调试模式,大约要被禁用2个小时。
真机调试密钥的获取
成功开启Adb调试模式后,在平台添加设备SN处可以获取到AdbKey,key的使用说明在下载的压缩包内。
只有在开启ADB调试模式之后,才会显示下载adbkey的按钮,每个设备都会有一个独立的ADB Key,下载时需要注意。
安装应用,在Debug 模式下进行调试
在真机的调试环境和调试密钥都安装成功后, 就可以使用ADB 命令安装目标APP了。
在保持开发者账号和小度设备账号一致的前提下,在DBP平台的技能控制台开启技能调试模式的按钮,对设备说,“打开技能调试模式”。在进入到技能调试模式后, 开发者就可以使用语音交互来调试APP 技能了。
在使用调试模式赋能的时候,需要注意以下问题:
ADB Key有效期1个月,如果过期,请重新在DuerOS的开发者平台下载。
如果在平台添加了设备SN,在设备上打开技能开发开发助手时,提示:请先到开发者平台,真机调试页面配置设备序列号后,再来使用该技能。这种情况是因为您在平台登录的账号和设备上登录的账号不一致导致,使用设备上登录和平台相同的账号即可。
ADB调试模式是与账号和设备强绑定的,开启了ADB 调试模式的设备,如果更换了其他账号登录,ADB调试模式会被关闭,而且,登录原来的账号后也需要重新开启。
在Windows操作系统下,如果不能识别到设备,请检查设备usb驱动是否安装成功。
结束语
目前,ADB调试模式赋能的方式已经正式上线了,原有基于调试系统(debug rom)的方式将不再露出,开发者只需要将小度设备的端版本升级到sp45及以上版本即可。然而,这并不意味着基于调试系统的方式不可用了,因为对于一些深度合作的App,例如涉及到Android Framwork层的系统配合,基于调试系统(debug rom)的方式仍然是需要的, 遇到这样的情形, 需要开发者发邮件到dbp-service@baidu.com, DBP 平台的运营人员,经过确认后,会向开发者定向推送调试系统的。
简单地说,DBP 平台目前已经支持了两种App技能的调试方式:调试系统和调试模式赋能。调试模式赋能在1~2分钟左右即可让开发进入到技能调试状态,较大地提升了开发者的开发效率。
或许, 几十分钟或者十几分钟可能显得微不足道,但是,DBP 一直在努力,在努力为DuerOS的开发者们提供更好更高效的技能开发环境。