美文网首页
记一次查看KeyEvent.keyCodeToString方法源

记一次查看KeyEvent.keyCodeToString方法源

作者: 军如令 | 来源:发表于2019-02-01 11:38 被阅读0次

今天在修改app的时候发现调用KeyEvent.keyCodeToString()返回结果和Google的标准不同,开始以为自己程序有问题,结果在我自己的设备上跑一次却发现返回结果符合标准。所以决定看看对应版本的源码到底发生了什么。

进入keyCodeToString()

发现它调用了native方法,

找它native的实现,因为KeyEvent的全名为

package android.view;

所以它方法名为 android.view.keyCodeToString,对应的c文件中的方法名字为android_view_keyCodeToString()

在/framework/base/core/jni/中可以找到对应的文件名 [包名]_[类名].cpp,即android_view_KeyEvent.cpp,

更详细可以自行查看https://blog.csdn.net/hp910315/article/details/51733410这篇博客

发现又调用了KeyEvent::getLabel(keyCode)方法,继续跟进,发现这个文件中没有我们要找的方法,查看它导入其它头文件,经过查找发现它在input/Input.h文件中

进入Input.h

发现这个方法又只出现过一次,查看文件首部

在<input/InputEventLabels.h有它的实现,进入

终于发现熟悉的身影,查看KEYCODES

发现居然多添加了一个SHIFT,简直SHIT,之后发现有人改了这一个地方,明明官方特意加了NOTE,都提醒说不能只改这一个地方啊,我哭了

以后一定注意代码规范,不要给后人挖坑

相关文章

  • 记一次查看KeyEvent.keyCodeToString方法源

    今天在修改app的时候发现调用KeyEvent.keyCodeToString()返回结果和Google的标准不同...

  • Rails Debug Ways

    查看方法的源文件 查看方法的源 查看 rake 的源 查看类的子孙类 Rails 里面设置Current的源码推荐...

  • MAC brew update镜像源切换

    一、查看当前Homebrew 镜像源 方法1 方法2 二、替换源 国内镜像地址 科大: https://mirro...

  • Linux CentOS 修改MySQL安装目录

    安装MySQL: 使用yum和Mysql官方源下载,安装方法参见:点此查看。(Mysql 5.7源) 修改Yum源...

  • 心得散记

    方法 1day 查看控件是否有代理方法和数据源 查看控件的属性是否有delegate属性,以及是否拥有dateSo...

  • 方法散记

    方法 day1 查看控件是否有代理方法和数据源 查看控件的属性是否有delegate属性,以及是否拥有dateSo...

  • hostname “upyun.gems.ruby-china.

    安装cocoapods时候出现错误如下: 解决方法如下: 查看当前ruby源列表 如果显示: 添加新的ruby源即...

  • npm换源 简单直接

    设置淘宝源 如果需要设置公司源 运行以下命令 查看源 查看当前的源

  • npm镜像源管理

    查看当前的源 npm get registry 方法一:使用NRM工具 nrm是npm的镜像源管理工具,使用这个就...

  • npm与yarn换源

    npm, yarn查看源和换源: // 查看npm当前镜像源npm config get registry // ...

网友评论

      本文标题:记一次查看KeyEvent.keyCodeToString方法源

      本文链接:https://www.haomeiwen.com/subject/amnrsqtx.html