位置: 编程技术 - 正文

Android系统上的键盘监控(android系统介绍)

编辑:rootadmin
键盘监控

推荐整理分享Android系统上的键盘监控(android系统介绍),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android系统手机有哪些,android 系统app,android系统介绍,android系统有什么用,手机的android系统,android系统在手机哪里找,android 系统app,android系统在手机哪里找,内容如对您有帮助,希望把文章链接给更多的朋友!

键盘监控,顾名思义是在应用软件在运行时,用户在设备上的一举一动都将被详细记录下来,更多的实在使用者毫无觉察的情况下将屏幕内容以图片的形式、按键内容以文本文档的形式保存在指定的文件夹或发送到指定的邮箱。键盘监控,包括物理按键与软键盘的监控,通常监控的事件有:点击,长按,滑动等,这些时间在Android上表现出来的都是一系列的KeyEvent。

为了实现键盘的监控,从新开发一个输入法是不现实的,一般的操作就是在系统的输入法机制中添加接口回调。我们知道,再应用程序中拿到按键的回调一般是监听onKeyDown的接口,如下所示:

开发者就可以根据回调方法中的参数, keyCode与KeyEvent来判断具体事件。但是,由于事件的回调机制在其的沙箱中运行,在其他应用中是无法拿到当前应用事件回调的。

那么我们就从上到下,具体的看看事件的传递机制。如下图所示,用户点击后,软键盘或物理按键的输入驱动就会产生一个中断,且向/dev/input/event*中写入一个相应的信号量。Android操作系统则会循环的读取其中的事件,再分发给WindowManagerServer。由WindowManagerServer根据事件的来源分发到各个不同的ViewGroup与View中,从而产生不同的OnClick、OnKeyDown和OnTouch等事件。

这个时候很自然的想到,黑客们希望做键盘监控,一定会向Linux底层增加自定义的事件。这里我们使用的是Linux中的getevent获得/dev/input/eventX设备汇报的事件,这个命令还会输出所有event设备的基本信息。包括触屏、按键、耳机插入等等。其基本用法如下:

键入getevent后,我们能够看到设备中的一些列输入硬件驱动信息,同样下面会出现很多输入指令信号,通常情况下,这些信号量都在刷屏,如下图所示:

这些信号量的表示我们无法直接看懂,输入getevent –l加入Label我们能够看到一些添加的标签,如下所示:

Android系统上的键盘监控(android系统介绍)

其实这些Lable已经在其input.h头文件中定义好,其中type的定义如下:

一般来说,常用的是EV_KEY、EV_REL、EV_ABS、EV_SYN,分别对应键盘按键、相对坐标、绝对坐标、同步事件。EV_SYN则表示一组完整事件已经完成,需要处理,EV_SYN的code定义事件分发的类型。

在触摸事件上的几个常见的Label说明如下表所示:

标签名 说明 ABS_X 对应触摸屏的X坐标 ABS_Y 对应触摸屏的Y坐标 ABS_PRESSURE 压力值,一般触摸屏也只是区分是否有按下去,按下去的话值会大于多少,没有按的话值小于多少。 ABS_TOOL_WIDTH 触摸工具的宽度 ABS_MT_POSITION_X 接触面的形心的X坐标值 ABS_MT_POSITION_Y 接触面的形心的Y坐标值 ABS_MT_TOUCH_MAJOR 触摸手指大小 ABS_MT_WIDTH_MAJOR 触摸面积大小

了解了这些Label的含义我们再看看信号量就简单多了,如我们列举几个常见的事件与信号,如下表所示:

操作 输出信号 按下电源键 /dev/input/event0: EV_KEY KEY_POWER DOWN /dev/input/event0: EV_SYN SYN_REPORT /dev/input/event0: EV_KEY KEY_POWER UP /dev/input/event0: EV_SYN SYN_REPORT 音量键下 /dev/input/event8: EV_KEY KEY_VOLUMEDOWN DOWN/dev/input/event8: EV_SYN SYN_REPORT /dev/input/event8: EV_KEY KEY_VOLUMEDOWN UP/dev/input/event8: EV_SYN SYN_REPORT 音量键上 /dev/input/event8: EV_KEY KEY_VOLUMEUP DOWN/dev/input/event8: EV_SYN SYN_REPORT /dev/input/event8: EV_KEY KEY_VOLUMEUP UP/dev/input/event8: EV_SYN SYN_REPORT 按下物理按键“1” /dev/input/event0: EV_KEY KEY_1 DOWN/dev/input/event0: EV_KEY KEY_1 UP 按下物理按键“q” /dev/input/event0: EV_KEY KEY_Q DOWN/dev/input/event0: EV_KEY KEY_Q UP 按下软键盘上的“q”字母 /dev/input/event0: EV_ABS ABS_X b/dev/input/event0: EV_ABS ABS_Y d5/dev/input/event0: EV_KEY BTN_TOUCH DOWN/dev/input/event0: EV_SYN SYN_REPORT /dev/input/event0: EV_KEY BTN_TOUCH UP/dev/input/event0: EV_SYN SYN_REPORT 按下软件键盘上的的“1”按键 /dev/input/event0: EV_ABS ABS_X /dev/input/event0: EV_ABS ABS_Y d7/dev/input/event0: EV_KEY BTN_TOUCH DOWN/dev/input/event0: EV_SYN SYN_REPORT /dev/input/event0: EV_KEY BTN_TOUCH UP/dev/input/event0: EV_SYN SYN_REPORT

从上表中,我们发现要是按下的是物理按键,其输入出来的信息我们很容易读懂,如果按下的是软键盘中的按键,给出的信号信息就是一些位置坐标信息。我们无法直接读懂,当然,我们可以根据这些位置坐标信息,再拿到Android设备的屏幕尺寸,计算比例也能够直接获得按键的具体内容。

当然,输出条件不会是想我们表格中的这么规范,中间会夹杂则各式各样的信息,有些可能是你不关心的。这里我们把一些无关的信号量过滤去掉了。实际查看上对应信息条件比较多,大家可以将Android设备连接如自己的电脑进行调试,这里我们就不做一一的解释了。

预防键盘监控

所以,为了安全起见,很多对于输入安全要求比较高的应用软件,除了自定义输入法进行安全输入以外,还需要将键盘上的各个字母数字位置随机打乱,防止黑客们在截获了位置信息后进行按键计算。这个也就是我们常在一些软件中看到打乱的键盘原因,打乱键盘效果如下图所示:

getevent是一个系统级命令,需要在Root情况下才可以使用。这里我们对getevent作为阐述,的主要目的就是告诉大家,在Root后的Android设备中,我们可以使用对Linux底层信号做读取的方式,对设备进行键盘监控。当然,更可以使用sendevent命令,模拟发送事件,这里我们不做阐述了。

/* * @author zhoushengtao(周圣韬) * @since 年1月日 上午:: * @weixin stchou_zst * @blog * @交流学习QQ群: * @私人QQ: /

Android中 view的双缓冲技术 view实现双缓冲技术当要绘制的数据量比较大,绘图时间比较长时,重复绘图会出现闪烁现象,引起闪烁现象的主要原因是视觉反差比较大。使用双缓冲

Android摄像头照相机技术-android学习之旅(八) 简介AndroidSDK支持Android设备内置的照相机。从Android2.3开始支持多个摄像头(主要指前置摄像头和后置摄像头)。通过照片相可以拍照和录像。需要考虑

Android之指南针学习 点我下载源码5月日更新到V5版:

标签: android系统介绍

本文链接地址:https://www.jiuchutong.com/biancheng/376589.html 转载请保留说明!

上一篇:[置顶] android UI(内容)更新的方法之handler、runOnUiThread()([置顶]游戏名:chivalry2)

下一篇:Android中 view的双缓冲技术(android view详解)

  • 新购车辆车船税多少钱
  • 进项税额转出影响城建税吗
  • 修缮服务开票项目一览表
  • 虚拟货币会计分录
  • 增值税 附表三
  • 税控盘减免税额转出会计分录
  • 企业所得税纳税人包括哪些类型
  • 公司分红是按股权比例分配吗
  • 申请生育津贴需要提供什么材料
  • 资金账簿印花税每年都要交吗?
  • 销售应税消费品应交的消费税
  • 折价购入股权
  • 存货进口关税会计处理怎么做?
  • 转让土地及地上建筑物
  • 全额抵减税控盘分录
  • 低价股权转让是利空还是利好
  • 存货营业外支出包括哪些
  • 城建税如何做会计分录
  • 房地产企业的土地使用税起始时间
  • 企业公车私用如何处理
  • 会计人士必知建筑业主要成本会计分录一览
  • 不能抵扣的进项税怎么做账
  • 一般纳税人年审证明
  • 小微企业的特点及经营模式举例
  • 海关新增成交方式exw条款,如何退税?
  • 资本公积转增资本个人股东是否纳税
  • 普通发票也属于增值税发票吗
  • 取得失控发票
  • 软件开发过程rup
  • 商贸企业零部件出口退税政策
  • 电脑右下角弹出网页没有×怎么关闭
  • 旧房转让土地增值税计算案例
  • PHP:zip_entry_read()的用法_Zip函数
  • 年末结转利润分配账户的借方余额表示
  • php 文件系统
  • php是面向对象语言吗
  • 使用php进行mysql数据库编程的基本步骤
  • tar 压缩命令tar
  • 命令行文本编辑
  • 研发费用算期间费用吗
  • 个人垫款公司将款支付个人算是资金回流吗
  • 购进固定资产的进项税计入成本吗
  • 网上学电脑哪个软件好
  • 销售鸡蛋免税怎么交税
  • 加计扣除进项税额是什么意思
  • 出售固定资产不能作为企业的收入
  • 销项负数会计分录怎么写
  • 受托加工的物资属于资产吗
  • 将自产的应税消费品用于连续生产非应税消费品
  • 纳税人可以享受六项专项附加扣除
  • 确认销售收入时不影响应收账款入账金额的是
  • 定额转查账征收
  • 开发成本属于哪一类科目
  • 成本法下被投资单位其他综合收益变动
  • 700元打8折怎么算
  • 厂房违建如何处理
  • 公司委托银行付款的账务处理
  • 建筑材料租赁公司
  • 营改增后税率表
  • 收到红字增值税发票哪里查
  • 登记会计账簿的注意事项
  • 无票收入怎么报增值税
  • win7系统快捷键关机
  • 删除windows用户密码
  • win7记事本可以保存的格式
  • 新版itunes怎么导入音乐
  • win8电脑设置打不开怎么办
  • linux系统有哪几个
  • unity粒子制作ui特效
  • bat批处理脚本教程
  • node.js如何运行
  • 批处理中copy怎么用
  • JavaScript正则表达
  • 移动端web开发需要学什么
  • [置顶]bilinovel
  • 12366纳税服务热线接收税收违法行政行为举报管理办法
  • 大米可以抵扣增值税吗
  • 朝阳区地方税务局电话
  • 扣缴个人所得税客户端操作流程
  • 环保税申报操作手册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设