hook 输入法 android,安卓输入法输入性能评测流程

本文介绍了安卓输入法的自动化评测流程,包括模拟键入操作,实时读取输入法反馈并记录数据,以及对数据进行分析。在键入操作阶段,模拟用户输入拼音串和格式化符号;实时反馈环节通过hook系统日志判断输入法性能,如首选按键率;数据分析阶段则评估输入法的性能并定位问题,为优化提供依据。整个过程旨在模拟真实使用环境,提升输入法效率。
摘要由CSDN通过智能技术生成

在我们的安卓版按键率评测的自动化处理整体流程主要包括三步,模仿键入操作,实时读取输入法的反馈与数据存储,以及数据分析。整个自动化处理的流程模拟人的真实操作环境,并能通过读取输入法的实时反馈判断输入法的命中情况并存储处理日志,从而分析输入法的输入准确率等性能,并辅助定位问题,为后续输入法的改进提供建议。

一.键入操作

1033218424766350f1cf60366451a4b9.png

第一步模仿键入操作。中文拼音输入法用户的主要输入包括拼音串与格式化符号。拼音输入法分9键和26键两种。上图给出评测中所用的数据集的样例。

以上样本中,左侧是9键的评测集,右侧是26键的评测集的部分数据。评测样本中包括,格式化字符“&”,“#”与“*”,分别表示着联想,一句输入结束与删除上一个汉字。

二.读取实时反馈与数据记录

第二部分为读取输入法的实时反馈与数据记录。获取输入法的实时反馈,可以判断候选是否达到预期的命中效果。如是否首选命中,首屏是否命中,并进行按键率,如首选按键率,联想按键率等的数据统计。

获取输入法的实时反馈的流程步骤是:

首先完成一次按键输入,在我们的项目中,主要借助于MotionEvent事件模拟手指的按下与抬起操作。

b4c7425726bd1e821eeaaa39badd3cf5.png

如上所示,首先定义了两个MotionEvent,最终借助于google提供的基础测试类Instrumentation实现这个touch操作。

接着获取系统打印事件的日志。这一部分主要通过hook方法获取Android系统的实时反馈。小编公众号中曾做过介绍。感兴趣的读者可前往查看。

然后是分析日志,定位相应候选,判断候选是否命中等。对于判断候选来说,首先确定候选的位置。我们可以看到,常见输入法的候选位置在首屏上基本上“行位置”是固定的。我们可以根据这一点,首先定位到候选的行坐标位置,继而根据该坐标值,在hook得到的系统日志文件中进行分析,定位到该次输入的候选。继而可以判断本次输入的候选是否命中测试样本的汉字。如对于首选命中率来说,我们只需要判断本次的候选的第一位是否命中即可。另外,候选的“行位置”存在着一定的变化性,这一部分具体做相应处理即可。

数据记录部分主要记录处理过程中获取的处理结果。如对于首选按键率来说需要判断并统计的项为是否首选命中。数据记录部分还需要记录下输入法处理的日志,如每一次输入产生的候选。这部分内容可以用于后续的错误分析与对输入法的改进。

三.数据分析

85f22106ef8bd66a9273413d71903c7c.png

501260a2e10266cf67ff66f4f18be45a.png

第三步结果分析的部分,即对上一步中获取的实时反馈进行分析。如,对于首选按键率来说。首选率为首选命中个数/有效输入样本数。首屏命中率则为首屏命中数/有效候选数。结果与日志文件如上图所示。

通过对按键率等的分析可以比较我们的产品与其它输入法的输入性能。通过对日志文件的分析,可以定位到问题所在。例如我们的评测过程中就曾发现过某个测试版本二三元词库不生效的问题。

评测过程中,需要根据日志文件分析评测是否有效。对于不同输入法来说,需要人为配置键盘位置。

欢迎交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值