Android 4.0触摸屏消息(writing)

  次阅读 来源:互联网(转载协议) 2015-09-29 10:39 我要评论(0)

“消息”一词最早出现于《易经》:“日中则昃,月盈则食,天地盈虚,与时消息。“意思是说,太阳到了中午就要逐渐西斜,月亮圆了就逐渐亏缺,天地间的事物,或丰盈或虚弱,都随着时间的推移而变化,有时消减,有时滋长。由此可见,中国古代就把客观世界的变化,把它们的发生、发展和结局,把它们的枯荣、聚散、沉涪升降、兴衰、动静、得失等等变化中的事实称之为”消息“。----------摘自度娘。

因此,在此处我们所要学习的消息也是有这样的一种产生,发展和结束的过程。而产生就是指当硬件接受到人的触摸的情况之下,通过中断将消息上报,从而我们能够通过上层的线程得到这个消息,而具体是如何处理的都将通过线程内部或者线程间的调用完成,最后通过分发线程将消息分发出去供消费者去消耗。

在深入学习之前我们先要思考如下几个问题:

1 消息是如何让系统得到的?

2 消息是如何被系统读取和处理的?

3 应用程序开发者是如何利用消息的?

1首先kernel中我们会使用下面的函数来上报事件。(linux/input.h)

设置:

1227unsigned long evbit[BITS_TO_LONGS(EV_CNT)];

1228unsigned long keybit[BITS_TO_LONGS(KEY_CNT)];

1229unsigned long relbit[BITS_TO_LONGS(REL_CNT)];

1230unsigned long absbit[BITS_TO_LONGS(ABS_CNT)];

上报:

1474 static inline void input_report_key(struct input_dev *dev, unsigned int code, int value)

1475 {

1476input_event(dev, EV_KEY, code, !!value);

1477 }

1478

1479 static inline void input_report_rel(struct input_dev *dev, unsigned int code, int value)

1480 {

1481input_event(dev, EV_REL, code, value);

1482 }

1483

1484 static inline void input_report_abs(struct input_dev *dev, unsigned int code, int value)

1485 {

1486input_event(dev, EV_ABS, code, value);

1487 }

其中调用的input_event函数如下:

347 void input_event(struct input_dev *dev,

348unsigned int type, unsigned int code, int value)

349 {

350unsigned long flags;

351

352if (is_event_supported(type, dev->evbit, EV_MAX)) {

353

354spin_lock_irqsave(&dev->event_lock, flags);

355add_input_randomness(type, code, value);

356input_handle_event(dev, type, code, value);

357spin_unlock_irqrestore(&dev->event_lock, flags);

358}

359 }

360 EXPORT_SYMBOL(input_event);

此处的input_handle_event()会调用到input_pass_event()函数

77 static void input_pass_event(struct input_dev *dev,

78unsigned int type, unsigned int code, int value)

79 {

80struct input_handler *handler;

81struct input_handle *handle;

82

83rcu_read_lock();

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...