Android App 技能在DuerOS的调试方法

温故知新,我们先回顾一下DuerOS的技能分类。根据不同的视角可以对DuerOS 目前支持的技能类型进行不同的分类,例如,从用户与技能的语音交互方式来看, 可以将技能分为这四种技能类型:

  1. L1技能:只支持语音的打开和关闭
  2. L2技能:在技能内支持有限的语音交互
  3. L3技能:在技能内支持丰富的语音交互
  4. 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 技能了。

在使用调试模式赋能的时候,需要注意以下问题:

  1. ADB Key有效期1个月,如果过期,请重新在DuerOS的开发者平台下载。
  2. 如果在平台添加了设备SN,在设备上打开技能开发开发助手时,提示:请先到开发者平台,真机调试页面配置设备序列号后,再来使用该技能。这种情况是因为您在平台登录的账号和设备上登录的账号不一致导致,使用设备上登录和平台相同的账号即可。
  3. ADB调试模式是与账号和设备强绑定的,开启了ADB 调试模式的设备,如果更换了其他账号登录,ADB调试模式会被关闭,而且,登录原来的账号后也需要重新开启。
  4. 在Windows操作系统下,如果不能识别到设备,请检查设备usb驱动是否安装成功。

结束语
目前,ADB调试模式赋能的方式已经正式上线了,原有基于调试系统(debug rom)的方式将不再露出,开发者只需要将小度设备的端版本升级到sp45及以上版本即可。然而,这并不意味着基于调试系统的方式不可用了,因为对于一些深度合作的App,例如涉及到Android Framwork层的系统配合,基于调试系统(debug rom)的方式仍然是需要的, 遇到这样的情形, 需要开发者发邮件到dbp-service@baidu.com, DBP 平台的运营人员,经过确认后,会向开发者定向推送调试系统的。

简单地说,DBP 平台目前已经支持了两种App技能的调试方式:调试系统和调试模式赋能。调试模式赋能在1~2分钟左右即可让开发进入到技能调试状态,较大地提升了开发者的开发效率。

或许, 几十分钟或者十几分钟可能显得微不足道,但是,DBP 一直在努力,在努力为DuerOS的开发者们提供更好更高效的技能开发环境。

【关联阅读】

  • https://dueros.baidu.com/dbp

  • 谢谢...,DuerOS开放平台的2020

  • AI 语音交互开放平台的构建与演进

  • 智能语音应用开发之DPL2.0高级特性

  • 生动化你的表达——DuerOS中SSML应用

  • 从 JavaScript Bot SDK 看DuerOS的技能开发

  • 在校大学生能成为DuerOS 的独立开发者吗?

  • 面向接口/协议?看DuerOS的技能开发

  • 揭秘“语音交互”背后的AI硬核黑科技!

  • 百度AI开发者大会之DuerOS 回顾

  • 声如其闻,DuerOS中的声音播放

  • 放心用吧!浅谈DuerOS的安全性

  • 从JavaSDK看DuerOS技能开发

  • 《智能语音时代》的读书笔记

  • 调试DuerOS的智能语音技能

  • DuerOS的零编程技能实现

  • 智能音箱场景下性能优化

  • 语音交互设计的一点认知

  • DuerOS 走进初夏成都

  • 感知人工智能操作系统

  • 多模态交互之DPL 2.0

  • 企业赋能 AI服务生活

  • 感知自然语言理解

  • 再看语音交互设计

  • 聊聊“全双工”

  • 聊聊“异步”



原文链接:https://blog.csdn.net/wireless_com/article/details/113100712

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 2D寻路导航 NavMeshPlus解决方案

插件的github主页 h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding 这个插件是基于新版3D寻路导航制作的,所以你可能需要看一下这篇文章 新旧Navmash 寻路导航组件对比 附使用案例与实用教程链接-CSDN博客 这行代码agent.updateUpAxis false 一定要为代理单位…

客户端与微服务之间的桥梁---网关

当我们创建好了N多个微服务或者微服务的实例之后,每个服务暴露出不同的端口地址,一般对于客户端请求,只需要请求一个端口,要隔离客户端和微服务的直接关系,保证微服务的安全性和灵活性,避免敏感信息的泄露。…

@Excel若依导出异常/解决BusinessBaseEntity里面的字段不支持导出

今天发现所有实体类继承BusinessBaseEntity里面的这些通用字段不支持导出,debug时发现是这样: 导出效果 这里我把能查到的方法都汇总了,如果你也遇到这个异常,可以去逐步排查 1.先看库里有没有数据 2.看字段名是否对齐 3.所需要…

Flink系列之:学习理解通过状态快照实现容错

Flink系列之:学习理解通过状态快照实现容错 状态后端检查点存储状态快照状态快照如何工作?确保精确一次(exactly once)端到端精确一次 状态后端 由 Flink 管理的 keyed state 是一种分片的键/值存储,每个 keyed state…

大数据之文件服务器方案

大数据文件服务器方案 一,文件服务器常用框架 二,文件服务器常用框架的实现技术 文件服务器常用框架 文件服务器是一种专门用于存储、管理和共享文件的服务器,其常用框架的实现技术涉及多个方面,以下是一些主要的实现技术及其详…

车载总线系列 --- CAN FD简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

Oracle与SQL Server的语法区别

1)日期和日期转换函数。 SQL: SELECT A.*, CASE WHEN NVL(PAA009,) OR PAA009 >Convert(Varchar(10), SYSDATE,120) THEN Y ELSE N END AS ActiveUser FROM POWPAA A WHERE PAA001admin or PAA002admin Oracle: SELECT A.*, CASE WHEN NVL(PAA009,) or PAA009&…

在培训班学网络安全有用吗

在当今数字化时代,网络安全问题日益凸显,成为了企业和个人关注的焦点。随着对网络安全人才需求的不断增长,各种网络安全培训班也如雨后春笋般涌现。然而,在培训班学网络安全真的有用吗? 一、网络安全的重要性与挑战 1. 信息时代的…

【C++、数据结构】哈希表——散列表(一)(概念/总结)

「前言」 🌈个人主页: 代码探秘者 🌈C语言专栏:C语言 🌈C专栏: C / STL使用以及模拟实现 🌈数据结构专栏: 数据结构 / 十大排序算法 🌈Linux专栏: Linux系统编…

求逻辑地址的页号和物理地址

逻辑地址空间按字编址 -->逻辑地址长度为:log2(逻辑地址空间) 页的大小 --> 页内偏移量占log(页的大小) 逻辑页号页内偏移量逻辑地址长度 因此假如一个逻辑地址空间为64kb,页的大小为1kb,逻辑地址为17CAH,求逻辑地址页号…

ETLCloud怎么样?深度解析其在数据管理中的表现

在BI或数据大屏等数据分析工具中,经常需要从多个业务系统中提取原始数据,然后对数据进行清洗、处理,以获取高质量、有效且干净的数据以供后续的BI进行数据统计和分析使用,从高质量的实现企业数据的价值变现。 然而,在…

【数据库系统概论】第3章 关系数据库标准语言SQL(一)数据查询(超详细)

目录 一、单表查询 1. 简单的数据查询 (1)选择表中若干列 (2)选择表中若干行(元祖) 2. 聚合函数与分组查询 聚集函数 GROUP BY分组查询 二、联接查询 1、连接概述 2. 内联接(INNER JO…

【Effective C++】阅读笔记3

1. 成员变量声明为Private 建议将成员变量声明为Private,然后再public中提供调用该数据的接口 设置成Private的原因分析 类内成员变量被声明为Private,那么就可以外部代码直接访问或者修改内部数据通过公共接口获取内部数据,这样可以减少对外…

我在命令行下学日语

同一个动作重复 300 遍,肌肉就会有记忆,重复 600 遍,脊柱就会有记忆,学完五十音图不熟练,经常遗忘或者要好几秒才想得起来一个怎么办?没关系,我做了个命令行下的小游戏 KanaQuiz 来帮助你记忆&a…

c++:vector

一、vector是什么? 1.1 vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是…

一键切换暗黑模式,这些代码片段你不可错过

文章目录 前言正文1.多主题切换2.使用 SASS 实现轻松深色模式3.动画切换浅色与深色模式4.纯 CSS 主题切换5.GitHub 风格的深色模式切换6.持久深色模式7.基本 Vue 响应式切换8.创意灯泡切换 总结 前言 如今,许多网站设计师都会为用户提供浅色和深色模式的选择。这不…

雷军救WPS“三次”,WPS注入新生力量,不再“抄袭”微软

救WPS“三次” 1989年,求伯君用128万行代码编写出了WPS1.0,宣告了中国自主办公时代的开启。 那时候,雷军还在武汉大学深造,他早就把求伯君当成了自己的榜样,这一来二去的,雷军和WPS之间也就结下了不解之缘…

[MySQL#10] 索引底层(1) | Page | 页目录

目录 1. 初识索引 2. 认识磁盘 3. MySQL与磁盘交互基本单位 4. 索引的理解 1. 重谈Page 2. 为什么IO交互要用Page 3. 有主键的表插入数据时的排序 4. 单个Page与多个Page 4.1 单个Page 4.2 多个Page 目录 单Page目录 多Page目录 在看本文之前,可以回顾…

sklearn 实现随机森林分类器 - python 实现

python sklearn 实现随机森林分类器 from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris # 加载数据集 irisload_iris() x,yiris.data,iris.target print("x y shape:",x.shape,y.shape) # 创建并训练模型 model Random…

Altium Designer使用技巧(二)

一、创建类 1、按DC键,打开对象类。 2、右键添加一个类。命名为PWR。 3、将所有的电源类,全部添加到新创建的类中,从非成员类中点选到成员类中。 4、右下角点panes ,点PCB。 5、然后在左边单击PWR,点连接,可显示或…