CN108121607A - 事件的上报方法及上报系统 - Google Patents
事件的上报方法及上报系统 Download PDFInfo
- Publication number
- CN108121607A CN108121607A CN201611062061.6A CN201611062061A CN108121607A CN 108121607 A CN108121607 A CN 108121607A CN 201611062061 A CN201611062061 A CN 201611062061A CN 108121607 A CN108121607 A CN 108121607A
- Authority
- CN
- China
- Prior art keywords
- event
- application
- kernel
- consumer
- intent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种事件的上报方法及上报系统,上报方法包括:建立内核进程与用户进程之间的通信,建立用户进程与应用进程之间的通信;内核进程获取待上报的事件;内核进程将所述事件发送至用户进程;用户进程将接收到的事件发送至应用进程;应用进程将接收到的事件转换成Intent组件;将所述Intent组件广播至注册过所述Intent组件的应用程序中。应用进程接收到事件消息后,把事件转换成Android应用程序中的Intent组件,再通过广播的方式把intent组件广播到注册过该intent组件的应用程序中,从而为应用开发提供统一的接口,降低应用开发的难度,增强应用程序的代码复用和可移植性。
Description
技术领域
本发明涉及Android广播技术领域,尤其涉及一种事件的上报方法及上报系统。
背景技术
随着移动互联网的普及,物理按键被广泛使用于各种移动便携设备。基于Android操作系统(谷歌开发的操作系统)进行开发,可以使用Android按键输入子系统来满足大部分的功能需求和开发。但是在实际使用中,有可能需要上报对按键特性的描述(如按键事件来自于旋钮、方向盘按键或者面板等),虽然现有的Android按键输入子系统可以实现,但是改动十分繁琐,牵一发而动全身。
Android按键输入子系统是处理器响应中断信号后把按键事件(类型、键码、按下或弹起)上报到Linux(一套免费使用和自由传播的操作系统)输入子系统,Android框架读取按键事件后经过键码映射后分发到上层。额外添加按键特性的话,改动的代码包括驱动层、框架层和应用层,工作量繁琐,没有良好的扩展性。
除了按键事件,像传感器检测、GPIO电平跳变等信号的检测也同样存在扩展性差的问题。
发明内容
本发明所要解决的技术问题是:提供一种事件的上报方法及上报系统,能够增强应用程序的代码复用和可移植性,提高事件上报的可扩展性。
为了解决上述技术问题,本发明采用的技术方案为:
一种事件的上报方法,包括:
建立内核进程与用户进程之间的通信,建立用户进程与应用进程之间的通信;
内核进程获取待上报的事件;
内核进程将所述事件发送至用户进程;
用户进程将接收到的事件发送至应用进程;
应用进程将接收到的事件转换成Intent组件;
将所述Intent组件广播至注册过所述Intent组件的应用程序中。
本发明提供的另一个技术方案为:
一种事件的上报系统,包括:
通信建立模块,用于建立内核进程与用户进程之间的通信,建立用户进程与应用进程之间的通信;
内核进程,用于获取待上报的事件;以及将所述事件发送至用户进程;
用户进程,用于将接收到的事件发送至应用进程;
应用进程,用于将接收到的事件转换成Intent组件;将所述Intent组件广播至注册过所述Intent组件的应用程序中。
本发明的有益效果在于:通过内核进程获取到事件,再通过用户进程将获取到的事件发送至应用进程,应用进程接收到事件消息后,把事件转换成Android应用程序中的Intent组件,再通过广播的方式把intent组件广播到注册过该intent组件的应用程序中,从而为应用开发提供统一的接口,降低应用开发的难度,增强应用程序的代码复用和可移植性。
附图说明
图1为本发明实施例的事件的上报方法的流程示意图;
图2为本发明实施例的事件的上报系统的结构示意图;
图3为本发明实施例一的事件的上报方法的流程示意图。
标号说明:
1、通信建立模块;2、内核进程;3、用户进程;4、应用进程。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:应用进程将待上报的时间转换成intent组件,再通过广播的方式把Intent组件广播到注册过该Intent组件的应用程序中。
本发明涉及的技术术语解释:
请参照图1,本发明提供:
一种事件的上报方法,包括:
建立内核进程与用户进程之间的通信,建立用户进程与应用进程之间的通信;
内核进程获取待上报的事件;
内核进程将所述事件发送至用户进程;
用户进程将接收到的事件发送至应用进程;
应用进程将接收到的事件转换成Intent组件;
将所述Intent组件广播至注册过所述Intent组件的应用程序中。
进一步的,所述事件为按键事件,内核进程获取待上报的事件具体为:
按键中断后,内核进程获取按键事件的键值、操作类型和按键来源。
从上述描述可知,内核进程获取按键事件即获取键值(即按键键码)、操作类型和按键来源等属性,其中操作类型可以是按下、弹起等。上述事件不仅限于按键事件,还可以为传感器信号检测、GPIO电平跳边等信号的检测等事件。
进一步的,内核进程将所述事件发送至用户进程,具体为:
内核进程将所述事件按照预设的规则和格式发送至用户进程。
进一步的,应用进程将接收到的事件转换成Intent组件,具体为:
应用进程将接收到的事件按照预设的规则和格式转换成Intent组件。
从上述描述可知,内核进程按照预设的规则和格式将事件转换成规定的字符串,应用进程按照预设的规则和格式将事件转换成Intent组件,为应用开发提供相应的接口,从而实现增强广播机制的可扩展性和功能性。
进一步的,内核进程与用户进程之间通过netlink机制通信,用户进程与应用进程之间通过localsocket套接字通信。
从上述描述可知,netlink是用于实现用户进程与内核进程通信的一种特殊的进程间通信方式;localsocket(Android对Linux中Socket(套接字)进行了封装,采用JNI(实现了计算机编程语言Java和其他语言的通信方式)调用实现用户进程与应用进程之间的通信。当然,内核进程与用户进程、用户进程与应用进程之间也可以采用其他现有的能够实现相同效果的通信方式进行通信。
请参照图2,本发明的另一个技术方案为:
一种对应上述事件的上报方法的上报系统,包括:
通信建立模块1,用于建立内核进程2与用户进程3之间的通信,建立用户进程3与应用进程4之间的通信;
内核进程2,用于获取待上报的事件;以及将所述事件发送至用户进程3;
用户进程3,用于将接收到的事件发送至应用进程4;
应用进程4,用于将接收到的事件转换成Intent组件;将所述Intent组件广播至注册过所述Intent组件的应用程序中。
进一步的,所述事件为按键事件,内核进程2获取待上报的事件具体为:
按键中断后,内核进程2获取按键事件的键值、操作类型和按键来源。
进一步的,内核进程2将所述事件发送至用户进程3,具体为:
内核进程2将所述事件按照预设的规则和格式发送至用户进程3。
进一步的,应用进程4将接收到的事件转换成Intent组件,具体为:
应用进程4将接收到的事件按照预设的规则和格式转换成Intent组件。
进一步的,通信建立模块1采用netlink机制建立内核进程2与用户进程3之间的通信,采用localsocket套接字建立用户进程3与应用进程4之间的通信。
请参照图3,本发明的实施例一为:
一种按键事件的上报方法,包括:
通过netlink机制建立Linux下内核进程与用户进程之间的通信,通过localsocket套接字建立用户进程与应用进程之间的通信;
按键中断后,内核进程获取按键的事件的按键键码、按下/弹起、按键来源等属性;
内核进程将获取的按键键码、按下/弹起、按键来源等属性按照预设的规则和格式转换成字符串后发送至用户进程;
用户进程将接收到的包含有按键键码、按下/弹起、按键来源等属性的字符串发送至应用进程;
应用进程将接收到的包含有按键键码、按下/弹起、按键来源等属性的字符串转换成Android应用程序中的Intent组件;
将所述Intent组件广播至注册过所述Intent组件的应用程序中。
Intent组件是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件。Intent组件本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙述其所期望的服务、动作、与动作有关的数据等,指明了请求的操作名称以及作为操作对象的数据的URI和其它一些信息。比如说,它可以承载对一个activity的请求,让它为用户显示一张图片,或者让用户编辑一些文本。而对于广播接收器而言,Intent对象指明了声明的行为。比如,它可以对所有感兴趣的对象声明照相按钮被按下。Android则根据此Intent对象之叙述,负责配对,找出相配的组件,然后将Intent对象传递给所找到的组件。把事件封装为Intent组件后,就可以通过广播的方式将事件上报给Android应用程序。
本实施例的按键事件的上报方法,当需要添加按键特性时,经应用进程转换后的Intent组件中包含有增加的特性,如Intent组件中包含有Android标准的按键键码、按键按下或弹起和增加的按键来源,应用程序通过广播接收的方式从该Intent组件获取到按键键码、按键按下或弹起和增加的按键来源,也就是获取到按键事件后根据不同的需求编写不同的代码程序,相比传统的事件上报方法,无需进行复杂的代码改动,具有良好的扩展性。
如果需要实现对传感器、GPIO电平跳变等信号的检测,只需把要检测的信号转换成所规定的字符串定义即可。
请参照图2,本发明的实施例二为:
一种与实施例一的按键事件的上报方法对应的上报系统,包括:
通信建立模块1,用于通过netlink机制建立Linux下内核进程2与用户进程3之间的通信,通过localsocket套接字建立用户进程3与应用进程4之间的通信;
内核进程2,用于按键中断后,获取按键的事件的按键键码、按下/弹起、按键来源等属性;将获取的按键键码、按下/弹起、按键来源等属性按照预设的规则和格式转换成字符串后发送至用户进程3;
用户进程3,用于将接收到的包含有按键键码、按下/弹起、按键来源等属性的字符串发送至应用进程4;
应用进程4,用于将接收到的包含有按键键码、按下/弹起、按键来源等属性的字符串转换成Android应用程序中的Intent组件;将所述Intent组件广播至注册过所述Intent组件的应用程序中。
综上所述,本发明提供的事件的上报方法及上报系统,通过Intent组件为应用开发提供相应的接口,采用广播的方式实现事件上报,不仅能够支持事件的上报功能,也增强了对事件特性的描述,能够有效地降低事件特性修改带来的代码修改量,提高了可扩展性和可塑性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种事件的上报方法,其特征在于,包括:
建立内核进程与用户进程之间的通信,建立用户进程与应用进程之间的通信;
内核进程获取待上报的事件;
内核进程将所述事件发送至用户进程;
用户进程将接收到的事件发送至应用进程;
应用进程将接收到的事件转换成Intent组件;
将所述Intent组件广播至注册过所述Intent组件的应用程序中。
2.根据权利要求1所述的事件的上报方法,其特征在于,所述事件为按键事件,内核进程获取待上报的事件具体为:
按键中断后,内核进程获取按键事件的键值、操作类型和按键来源。
3.根据权利要求1所述的事件的上报方法,其特征在于,内核进程将所述事件发送至用户进程,具体为:
内核进程将所述事件按照预设的规则和格式发送至用户进程。
4.根据权利要求1所述的事件的上报方法,其特征在于,应用进程将接收到的事件转换成Intent组件,具体为:
应用进程将接收到的事件按照预设的规则和格式转换成Intent组件。
5.根据权利要求1所述的事件的上报方法,其特征在于,内核进程与用户进程之间通过netlink机制通信,用户进程与应用进程之间通过localsocket套接字通信。
6.一种事件的上报系统,其特征在于,包括:
通信建立模块,用于建立内核进程与用户进程之间的通信,建立用户进程与应用进程之间的通信;
内核进程,用于获取待上报的事件;以及将所述事件发送至用户进程;
用户进程,用于将接收到的事件发送至应用进程;
应用进程,用于将接收到的事件转换成Intent组件;将所述Intent组件广播至注册过所述Intent组件的应用程序中。
7.根据权利要求6所述的事件的上报系统,其特征在于,所述事件为按键事件,内核进程获取待上报的事件具体为:
按键中断后,内核进程获取按键事件的键值、操作类型和按键来源。
8.根据权利要求6所述的事件的上报系统,其特征在于,内核进程将所述事件发送至用户进程,具体为:
内核进程将所述事件按照预设的规则和格式发送至用户进程。
9.根据权利要求6所述的事件的上报系统,其特征在于,应用进程将接收到的事件转换成Intent组件,具体为:
应用进程将接收到的事件按照预设的规则和格式转换成Intent组件。
10.根据权利要求6所述的事件的上报系统,其特征在于,通信建立模块采用netlink机制建立内核进程与用户进程之间的通信,采用localsocket套接字建立用户进程与应用进程之间的通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611062061.6A CN108121607A (zh) | 2016-11-28 | 2016-11-28 | 事件的上报方法及上报系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611062061.6A CN108121607A (zh) | 2016-11-28 | 2016-11-28 | 事件的上报方法及上报系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108121607A true CN108121607A (zh) | 2018-06-05 |
Family
ID=62224538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611062061.6A Pending CN108121607A (zh) | 2016-11-28 | 2016-11-28 | 事件的上报方法及上报系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121607A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782416A (zh) * | 2020-06-08 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据上报方法、装置、系统、终端及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102216889A (zh) * | 2011-06-21 | 2011-10-12 | 华为终端有限公司 | 触屏设备的控制方法和触屏设备 |
US20120084793A1 (en) * | 2010-10-01 | 2012-04-05 | Imerj, Llc | Cross-environment event notification |
CN103019653A (zh) * | 2012-11-27 | 2013-04-03 | 康佳集团股份有限公司 | 一种基于linux系统的内核消息分发方法 |
CN103514030A (zh) * | 2012-07-24 | 2014-01-15 | Tcl集团股份有限公司 | Android系统的事件收集上报系统及其收集上报方法 |
US20140068779A1 (en) * | 2012-09-06 | 2014-03-06 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
CN103634636A (zh) * | 2013-11-13 | 2014-03-12 | Tcl集团股份有限公司 | 一种Android智能电视的应用快捷操控方法和系统 |
CN104038698A (zh) * | 2014-06-25 | 2014-09-10 | 深圳市中兴移动通信有限公司 | 后台拍摄方法和拍摄装置 |
CN105721938A (zh) * | 2016-02-01 | 2016-06-29 | 浪潮软件集团有限公司 | 一种按键监听的方法及机顶盒 |
-
2016
- 2016-11-28 CN CN201611062061.6A patent/CN108121607A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084793A1 (en) * | 2010-10-01 | 2012-04-05 | Imerj, Llc | Cross-environment event notification |
CN102216889A (zh) * | 2011-06-21 | 2011-10-12 | 华为终端有限公司 | 触屏设备的控制方法和触屏设备 |
CN103514030A (zh) * | 2012-07-24 | 2014-01-15 | Tcl集团股份有限公司 | Android系统的事件收集上报系统及其收集上报方法 |
US20140068779A1 (en) * | 2012-09-06 | 2014-03-06 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
CN103019653A (zh) * | 2012-11-27 | 2013-04-03 | 康佳集团股份有限公司 | 一种基于linux系统的内核消息分发方法 |
CN103634636A (zh) * | 2013-11-13 | 2014-03-12 | Tcl集团股份有限公司 | 一种Android智能电视的应用快捷操控方法和系统 |
CN104038698A (zh) * | 2014-06-25 | 2014-09-10 | 深圳市中兴移动通信有限公司 | 后台拍摄方法和拍摄装置 |
CN105721938A (zh) * | 2016-02-01 | 2016-06-29 | 浪潮软件集团有限公司 | 一种按键监听的方法及机顶盒 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782416A (zh) * | 2020-06-08 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据上报方法、装置、系统、终端及计算机可读存储介质 |
CN111782416B (zh) * | 2020-06-08 | 2024-05-31 | Oppo广东移动通信有限公司 | 数据上报方法、装置、系统、终端及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103702223B (zh) | 将hbbtv界面和用户界面进行融合的方法及装置 | |
CN102802068A (zh) | 智能电视遥控方法及系统 | |
CN112231017B (zh) | 在Linux上兼容运行Android运行环境的虚拟键鼠方法与装置 | |
CN112882772B (zh) | 移动终端应用界面的配置方法、移动终端及存储介质 | |
CN110069177A (zh) | 电子装置、应用程序操作引导方法及存储介质 | |
WO2019100898A1 (zh) | 一种输入操作处理方法、处理装置及计算机可读存储介质 | |
CN109471667A (zh) | 电脑与手机一体化智能交互方法 | |
CN113613064B (zh) | 视频处理方法、装置、存储介质及终端 | |
CN109716735A (zh) | 用于在于一个或多个应用平台上执行的隔离的应用之间共享应用数据的系统和方法 | |
CN106855772A (zh) | 一种信息展示方法及装置 | |
CN107577542A (zh) | 日志信息上报方法、装置、存储介质及移动终端 | |
CN113672290B (zh) | 一种文件打开方法及设备 | |
CN108121607A (zh) | 事件的上报方法及上报系统 | |
CN109550232A (zh) | 触控设备及其响应方法、装置 | |
CN114371844B (zh) | App开发平台、app开发方法及电子设备 | |
CN105940642B (zh) | 一种信息显示的方法、终端、服务器 | |
CN106302591A (zh) | 一种数据传输方法、智能终端及数据传输系统 | |
CN110795154B (zh) | 跨平台设备驱动方法、装置、设备及计算机可读存储介质 | |
CN117687808A (zh) | 一种输入设备的事件处理方法和装置 | |
CN107621999A (zh) | 日志信息上报方法、装置、存储介质及移动终端 | |
US20080033687A1 (en) | Analyzing apparatus | |
CN114650332A (zh) | 信息处理方法、电子设备及系统 | |
CN109361816A (zh) | 基于形态信息的按键控制方法及终端 | |
CN109542303A (zh) | 触控设备及其响应方法、装置 | |
CN118260742A (zh) | 一种跨系统信息处理方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180605 |