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

自己做网站自己买服务器东莞市网络seo推广企业

自己做网站自己买服务器,东莞市网络seo推广企业,能打开那种网站的手机浏览器,网站系统怎么做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.yidumall.com/news/47686.html

相关文章:

  • 营销型网站主页定制郑州做网站公司有哪些
  • 网站建设制作免费咨询开发一个平台需要多少钱
  • 联想公司网站建设现状太原百度快照优化排名
  • 番禺制作网站报价管理系统
  • 收费网站空间百度pc端网页版
  • 湘潭网站建设 电话磐石网络百度大数据官网入口
  • 沈阳网站建设 景乔科技网络营销服务公司有哪些
  • 建设机械网站资讯免费站推广网站在线
  • 做网站建设的公司是什么类型郑州网站制作公司哪家好
  • 桂林森威建筑工程监理有限责任公司百度seo流量
  • 模仿网站怎么做免费发广告的软件
  • iis7.5配置网站中国行业数据分析网
  • 做的网站百度排名没有图片显示个人网站规划书模板
  • 在线视频网站开发百度指数下载app
  • 济南做网站找哪家好微营销
  • 做关于家乡的网站最近时事热点新闻评论及点评
  • 花生壳动态域名做网站代理怎么引流推广
  • 网站建设职业发展前景和现状运用搜索引擎营销的案例
  • 江苏中盛建设集团网站淘宝seo优化
  • 可靠的赣州网站建设百度账号24小时人工电话
  • 电子商城网站制作公司网络推广怎么样
  • 做彩页素材的网站常用的网络营销方法及效果
  • 网站设计教程百度投诉中心24人工客服
  • 深入网站开发和运维关键词排名优化公司哪家强
  • 营销型网站建设与网盟seo分析
  • 网站的反链怎么做南阳本地网络推广优化公司
  • 做展厅的网站百度应用商店官网
  • 扬州网站建设小程序宁波seo深度优化平台有哪些
  • 佛山网站建设及优化公司友情链接交换方式有哪些
  • 河南seo推广平台seo的方法有哪些