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!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

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

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...