linux/input.h中有定义,这个文件还定义了标准按键的编码等
struct input_event {
struct timeval time; //按键时间
__u16 type; //类型,在下面有定义
__u16 code; //要模拟成什么按键
__s32 value;//是按下还是释放
};
type:
EV_SYN:同步
EV_KEY:键盘
EV_REL:相对坐标
EV_ABS:绝对坐标
EV_MSC:其它
code:
事件的代码.如果事件的类型代码是EV_KEY,该代码code为设备键盘代码.代码植0~127为键盘上的按键代码,0x110~0x116
为鼠标上按键代码,其中0x110(BTN_ LEFT)为鼠标左键,0x111(BTN_RIGHT)为鼠标右键,0x112(BTN_ MIDDLE)为鼠标中键.其
它代码含义请参看include/linux/input.h文件. 如果事件的类型代码是EV_REL,code值表示轨迹的类型.如指示鼠标
的X轴方向REL_X(代码为0x00),指示鼠标的Y轴方向REL_Y(代码 为0x01),指示鼠标中轮子方向REL_WHEEL(代码为0x08).
value:
事件的值.如果事件的类型代码是EV_KEY,当按键按下时值为1,松开时值为0;如果事件的类型代码是EV_ REL,
value的正数值和负数值分别代表两个不同方向的值.
linux将事件上报到android后,要经过转换才能使用。
映射文件 /system/usr/keylayout/*.kl
android log:
D/dalvikvm( 1554): GC_CONCURRENT freed 253K, 23% free 3196K/4103K, paused 2ms+2ms
D/dalvikvm:表示由dalvikvm输出的调试信息,括号后的数字1554代表dalvikvm所在进程的pid。
GC_CONCURRENT:表示触发垃圾收集的原因,有以下几种:
GC_MALLOC, 内存分配失败时触发
GC_CONCURRENT,当分配的对象大小超过384K时触发
GC_EXPLICIT,对垃圾收集的显式调用(System.gc)
GC_EXTERNAL_ALLOC,外部内存分配失败时触发
freed 253K:表示本次垃圾收集释放了253K的内存。
23% free 3196K/4103K:其中3196K表示当前内存总量,4103K表示可用内存,23%表示可用内存占总内存的比例。
external 0K/0K:表示可用外部内存/外部内存总量 。
paused 2ms+2ms:第一个时间值表示markrootset的时间,第二个时间值表示第二次mark的时间。如果触发原因不是GC_CONCURRENT,这一行为单个时间值,表示垃圾收集的耗
时时间。
android系统有一些工具,软代码路径:
system\core\toolbox\
Android学习系列:
http://www.cnblogs.com/qianxudetianxia/tag/Android%E5%AD%A6%E4%B9%A0%E7%B3%BB%E5%88%97/