当前位置: 首页 > news >正文

刷信誉网站制作如何进行电子商务网站推广

刷信誉网站制作,如何进行电子商务网站推广,网站建设收入的发票,中国互联网巨头排名1.Input输入子系统架构 Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User space(用户空间) 2.getevent获取Input事件的用法 getevent 指令用于获取android系统中 input 输入事件,比如获取按键上报信息、获…

1.Input输入子系统架构

Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User space(用户空间)

2.getevent获取Input事件的用法

getevent 指令用于获取android系统中 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。具体的代码目录:/system/core/toolbox/getevent.c

分析一段按键消息

以上数据的格式为:/dev/input/event0: "事件类型" "参数位定义" "值"

相关宏定义在:/usr/include/linux/input-event-codes.h

解析为:输入类型为按键

参数为摄像头

值为按下和释放

3.sendevent 模拟input事件(LINUX 内核键值)

/system/core/toolbox/sendevent.c

键值相关宏定义在:/usr/include/linux/input-event-codes.h

(高通安卓11,这里没有了。在/external/toybox/toys/android/sendevent.c)

#include <errno.h>
#include <fcntl.h>
#include <linux/input.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <unistd.h>int sendevent_main(int argc, char *argv[])
{int fd;ssize_t ret;int version;struct input_event event;if(argc != 5) {fprintf(stderr, "use: %s device type code value\n", argv[0]);return 1;}fd = open(argv[1], O_RDWR);if(fd < 0) {fprintf(stderr, "could not open %s, %s\n", argv[optind], strerror(errno));return 1;}if (ioctl(fd, EVIOCGVERSION, &version)) {fprintf(stderr, "could not get driver version for %s, %s\n", argv[optind], strerror(errno));return 1;}memset(&event, 0, sizeof(event));event.type = atoi(argv[2]);event.code = atoi(argv[3]);event.value = atoi(argv[4]);ret = write(fd, &event, sizeof(event));if(ret < (ssize_t) sizeof(event)) {fprintf(stderr, "write event failed, %s\n", strerror(errno));return -1;}return 0;
}

通过阅读sendevent.c源码可以得出sendevent的命令格式为:

sendevent event事件 eventType eventKeyCode eventValue

event事件:/dev/input/event*(数字)

eventType:

EV_SYN 0x00 同步事件
EV_KEY 0x01 按键事件
EV_REL 0x02 相对坐标
EV_ABS 0x03 绝对坐标
EV_MSC 0x04 其它
EV_LED 0x11 LED
EV_SND 0x12 声音
EV_REP 0x14 Repeat
EV_FF 0x15 力反馈
EV_PWR 电源
EV_FF_STATUS 状态

eventKeyCode: 通过getevent -i/p查询到的信息

eventValue: 0001 表示down 0000表示up

p212:/ $ sendevent /dev/input/event4 1 28 1
p212:/ $ sendevent /dev/input/event4 0 0 0
p212:/ $ sendevent /dev/input/event4 1 28 0
p212:/ $ sendevent /dev/input/event4 0 0 0

这样就模拟了一个确认键。

4.input 模拟input 事件(安卓键值)

基于Android N,input.java 源代码位于:

/frameworks/base/cmds/input/src/com/android/commands/input

键值相关宏定义在:frameworks/base/core/java/android/view/KeyEvent.java

private void showUsage() {System.err.println("Usage: input [<source>] <command> [<arg>...]");System.err.println();System.err.println("The sources are: ");for (String src : SOURCES.keySet()) {System.err.println("      " + src);}System.err.println();System.err.println("The commands and default sources are:");System.err.println("      text <string> (Default: touchscreen)");System.err.println("      keyevent [--longpress] <key code number or name> ..."+ " (Default: keyboard)");System.err.println("      tap <x> <y> (Default: touchscreen)");System.err.println("      swipe <x1> <y1> <x2> <y2> [duration(ms)]"+ " (Default: touchscreen)");System.err.println("      press (Default: trackball)");System.err.println("      roll <dx> <dy> (Default: trackball)");}

根据源码可知模拟按键事件:

input keyevent keycode number/name

基于Android N,keycode number/name对应

/frameworks/base/core/java/android/view/KeyEvent.java

input keyevent KEYCODE_DPAD_CENTER
等同于
input keyevent 23
模拟确认键

5.按键功能修改

按键相关的设备树在

vendor/qcom/proprietary/devicetree-4.19/qcom/lagoon-mtp.dtsi

vendor/qcom/proprietary/devicetree-4.19/qcom/pm6350.dtsi

镜像对应dtbo.img

内核键值修改

搜索关键字:compatible = "gpio-keys"

可以通过修改键值改变按键功能

先在设备树中添加设备节点,然后添加pinctrl。

label 是按键的名称。gpios 表明使用的是那个gpio。 linux,input-type的0x1是EV_KEY。linux,code 是按键上报的键值。wakeup 按键按下可以唤醒系统。debounce-interval 是按键的消抖时间。

这里的改动只是改变了内核对应的键值,并不能实现安卓的功能,比如截屏、摄像头拍照之类的。

内核键值与安卓的映射关系

源码对应

device/qcom/qssi/gpio-keys.kl

frameworks/base/data/keyboards/qwerty.kl

frameworks/base/data/keyboards/Generic.kl

镜像对应systemimage

左侧对应内核键值,右侧对应安卓键值(这里是安卓键值去掉前缀)

IO口修改

6.触摸屏按键键值修改

http://www.hkea.cn/news/917771/

相关文章:

  • 网站运维可以做哪些域名查询网站入口
  • 网站开发的基本语言外贸平台自建站
  • 女生自己做网站营销方法有哪些
  • 怎么自己做网站吓别人金融网站推广圳seo公司
  • 彩票网站的客服有做吗海淀seo搜索优化多少钱
  • 河源哪有做网站网页模板设计
  • 手机网站可以做英文版本吗近三天时政热点
  • 怎么做网站游戏网络优化排名培训
  • ic外贸网站建设黑帽seo技巧
  • 实业有限公司网站怎么做百度一下了你就知道官网
  • 企业电子商务网站推广平台有哪些渠道
  • 本地用织梦做网站百度的网站网址
  • 基础展示营销型型网站新闻发稿平台有哪些
  • 做游戏赚钱的网站最新新闻热点事件2022
  • 商务网站建设哪家好推广代理公司
  • 自己做网站是否要买云主机西安百度提升优化
  • 成都注册公司哪个区好分析网站推广和优化的原因
  • 模板建站杭州seo泽成
  • 济南网站建设公司川芎网络怎么注册自己的网址
  • linux下安装wordpress关键词优化排名查询
  • wordpress手机网站怎么做中央电视台一套广告价目表
  • 百家号如何给网站做推广推广方案是什么
  • 西安三网合一网站建设产品线上推广方案
  • 2023年免费b站入口百度网站优化
  • 响应式网站建设有利于seo网站发布与推广方案
  • 网页制作教程课件seo推广排名重要吗
  • 小规模纳税人企业所得税怎么征收广州seo招聘
  • 济南企业自助建站网络营销策划公司
  • iis 新建网站 要登录温州seo推广外包
  • 个人想做企业网站备案惠州seo代理商