CN102819452B - 一种从android系统获取数据的方法 - Google Patents
一种从android系统获取数据的方法 Download PDFInfo
- Publication number
- CN102819452B CN102819452B CN201210243110.1A CN201210243110A CN102819452B CN 102819452 B CN102819452 B CN 102819452B CN 201210243110 A CN201210243110 A CN 201210243110A CN 102819452 B CN102819452 B CN 102819452B
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- application
- service layer
- administration
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明适用于电子设备中间件技术领域,提供了一种基于android系统的中间件装置,所述装置包括应用管理层、应用服务层以及基本库层;所述应用管理层与上层应用以及所述应用服务层连接;所述应用服务层与所述应用管理层以及所述基本库层连接;所述基本库层与所述应用服务层以及安卓(android)系统连接。本发明实施例通过提供电子设备平台上的特殊开发环境,使得上层应用开发者能够开发出更多具有优势的应用,加快电子设备应用的开发速度。
Description
技术领域
本发明属于电子设备中间件技术领域,尤其涉及一种从android系统获取数据的方法。
背景技术
随着互联网电视的发展,安卓(android)系统在电子设备(如电视)平台上的广泛使用,越来越多基于Android操作系统的优秀应用出现在电子设备平台上,影视、音乐,教育、娱乐等各式各样的内容应用被集成到了电子设备系统中,越来越多的开发者也加入到开发电子设备平台的应用中来。
然而由于原生的android操作系统,无法提供电子设备平台上的特殊开发环境,开发者在开发过程中会遇到无法获取平台信息,无法使用平台的特殊输入设备,因此导致一些优秀的应用在电子设备平台上的开发遇到这样那样的瓶颈,不利于应用开发者的开发。在此背景下,需要电子设备平台提供一套定制的中间件系统,为应用开发者提供电子设备平台的开发环境。
发明内容
本发明实施例提供了一种从android系统获取数据的方法,旨在解决原生的android操作系统,无法提供电子设备平台上的特殊开发环境的问题。
本发明实施例是这样实现的,一种从android系统获取数据的方法,所述方法包括下述步骤:
步骤a:在接收上层应用发送的数据获取指令后,在应用管理层创建一个管理层对象,所述管理层对象申请绑定应用服务层的服务层对象;
步骤b:android系统启动绑定程序,应用服务层接收消息后,创建与所述管理层对象绑定的服务层对象;
步骤c:在所述服务层对象与所述管理层对象绑定成功后,发送绑定成功消息给所述应用管理层;
步骤d:所述应用管理层注册一广播对象,作为接收应用服务层消息的对象;
步骤e:所述管理层对象封装接收的上层应用发送的数据获取指令,并将封装后的数据获取指令发送给应用服务层;
步骤f:所述管理层对象调用与所述管理层对象绑定的服务层对象对应的接口;
步骤g:所述服务层对象通过JAVA本地调用JNI调用基本库层接口,并通过所述基本库层接口从android系统获取与所述数据获取指令对应的数据;
步骤h:所述服务层对象将获取的数据广播给所述应用管理层注册的广播对象;
步骤i:管理层对象从所述应用管理层注册的广播对象获取数据,并将获取的数据返回给上层应用。
本发明实施例通过提供电子设备平台上的特殊开发环境,使得上层应用开发者能够开发出更多具有优势的应用,加快电子设备应用的开发速度。
附图说明
图1是本发明第一实施例提供的一种基于android系统的中间件装置与上层应用、android系统通信的结构;
图2是本发明第一实施例提供的应用管理层11的一种结构;
图3是本发明第一实施例提供的应用服务层12的一种结构;
图4是本发明第一实施例提供的包括服务器的基于android系统的中间件装置的结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过基于android系统的中间件装置1中的应用管理层11、应用服务层12以及基本库层13,为上层应用开发者提供包括平台信息,统一的用户系统管理,平台特殊设备的控制接口等系列的、统一的系统平台数据接口。
本发明实施例提供了一种:一种基于android系统的中间件装置。
所述装置包括:应用管理层、应用服务层以及基本库层;
所述应用管理层与上层应用以及所述应用服务层连接,用于接收所述上层应用的输入数据,并将接收的所述上层应用的输入数据发送给所述应用服务层,以及用于接收所述应用服务层返回的数据,并将接收的所述应用服务层返回的数据发送给所述上层应用;
所述应用服务层与所述应用管理层以及所述基本库层连接,用于接收所述应用管理层发送的数据,并将接收的所述应用管理层发送的数据发送给所述基本库层,以及,用于接收所述基本库层发送的数据发送给所述应用管理层;
所述基本库层与所述应用服务层以及安卓(android)系统连接,用于接收所述应用服务层发送的数据,以及,用于获取所述android系统的数据,并将获取的所述android系统的数据发送给所述应用服务层。
本发明实施例通过提供电子设备平台上的特殊开发环境,使得上层应用开发者能够开发出更多具有优势的应用,加快电子设备应用的开发速度。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种基于android系统的中间件装置与上层应用、android系统通信的结构,为了便于说明,仅示出了与本实施例相关的部分。
该基于android系统的中间件装置可以用于通过有线或者无线网络连接服务器的各种信息处理电子设备,比如计算机,电视机,机顶盒等。该基于android系统的中间件装置1包括:应用管理层11、应用服务层12以及基本库层13。
所述应用管理层11与上层应用14以及所述应用服务层12连接,用于接收所述上层应用14的输入数据,并将接收的所述上层应用14的输入数据发送给所述应用服务层12,以及用于接收所述应用服务层12返回的数据,并将接收的所述应用服务层12返回的数据发送给所述上层应用14;所述应用服务层12与所述应用管理层11以及所述基本库层13连接,用于接收所述应用管理层11发送的数据,并将接收的所述应用管理层11发送的数据发送给所述基本库层13,以及,用于接收所述基本库层13发送的数据发送给所述应用管理层11;所述基本库层13与所述应用服务层12以及android系统15连接,用于接收所述应用服务层12发送的数据,以及,用于获取所述android系统15的数据,并将获取的所述android系统15的数据发送给所述应用服务层12。
在本发明实施例中,通过基于android系统的中间件装置1中的应用管理层11、应用服务层12以及基本库层13,为上层应用开发者提供包括平台信息,统一的用户系统管理,平台特殊设备的控制接口等系列的、统一的系统平台数据接口,通过提供电子设备平台上的特殊开发环境,使得上层应用开发者能够开发出更多具有优势的应用,加快电子设备应用的开发速度。
作为一优选实施例,图2示出了应用管理层11的一种结构,在图2中,所述应用管理层11包括:
管理层接口管理模块111,用于对上层应用14提供应用程序编程接口(Application Programming Interface,API)接口,并对所述API接口进行开、关管理;
本实施例中,该API接口为对外发布的接口,是上层应用14与基于android系统的中间件装置1进行交互的渠道。管理层接口管理模块111除了提供API接口,还管理提供的API接口,比如管理API接口打开或者关闭某些功能。
应用数据封装模块112,用于创建管理层对象,并在创建的管理层对象中将所述上层应用的输入数据封装为应用服务层可识别的数据;
本实施例中,在应用管理层11与应用服务层12进行通讯的时候,需要对输入该应用服务层12的数据进行一层封装,封装为应用服务层12的接口可以识别的类型数据。
服务层接口定义模块113,用于将所述应用管理层11与所述应用服务层12连接的接口定义为所述应用服务层12可识别的接口,并通过编译后生成可调用所述应用服务层12的进程的接口;
本实施例中,由于与应用服务层12的通讯属于进程间通讯,需要使用进程间通讯(Inter-Process Communication,ipc)的通讯技术,因此要将接口定义成应用服务层12可以识别的接口。
广播对象注册模块114,用于注册广播对象,以便接收应用服务层12发送的数据。
作为一优选实施例,
所述应用服务层12可识别的数据为Parcelable类型数据。
作为一优选实施例,
所述可调用所述应用服务层12的进程的接口为使用android系统的Android接口描述语言(Android Interface Definition Language,AIDL)接口定义技术定义的AIDL接口,并通过java系统将所述定义的AIDL接口编译后生成的进程间通讯(ipc)接口。
在本发明实施例中,应用管理层11主要实现以下功能:(1)对上层应用14提供API接口;(2)对上层应用14的API接口进行管理;(3)封装上层应用14的输入数据;(4)定义与应用服务层12的通讯接口。(5)接收应用服务层12返回的数据。(6)将数据返回给上层应用14:通过handler句柄将数据返回上层应用14。
作为一优选实施例,图3示出了应用服务层12的一种结构,在图3中,该应用服务层12包括:
服务层接口管理模块121,用于接收所述服务层接口定义模块113发送的配置管理请求,并根据所述配置管理请求确定需打开或者关闭的服务;
服务层对象创建模块122,用于实例化将与所述应用数据封装模块112创建的管理层对象进行绑定的服务层对象,并定义实例化的服务层对象的功能接口;
本实施例中,由于当应用管理层11创建了管理层对象之后,该管理层对象会申请绑定一个应用服务层的服务层对象,因此服务层对象创建模块122将根据应用管理层11的申请,判断需实例化何种服务层对象,并定义实例化的服务层对象的功能接口。
服务数据封装模块123,用于封装基本库层13发送的数据,并通知所述广播对象注册模块114获取封装的数据。
本实施例中,服务数据封装模块123从基本库层13获取数据之后,封装获取的数据,这样,应用管理层11首先需要将服务数据封装模块123发送的封装后的数据解析出来,才能发送给上层应用14。
作为一优选实施例,所述服务数据封装模块123将基本库层13发送的数据封装在广播(broadcast)的目的(intent)对象中,并通过broadcast通知所述广播对象注册模块获取封装的数据。
作为一优选实施例,图4示出了包括服务器16的基于android系统的中间件装置的结构,在图4中:
所述应用服务层12与服务器16连接,用于将应用管理层11发送的数据发送给所述服务器16,或者用于从所述服务器16获取数据。
本实施例中,应用服务层12与服务器16连接,这样,服务层对象可以选择通过JAVA本地调用(Java Native Interface,JNI)调用基本库层13接口获取数据,或者直接启动线程从服务器16获取数据,具体执行哪种方法视应用服务层12需要完成的功能而定。其中,JNI是一套方便java与c/c++等语言进行相互调用的接口设计。
作为一优选实施例,所述装置包括:
对象回收单元,用于在退出上层应用时,取消管理层对象对服务层对象的绑定,以及注销已注册的广播对象。
本实施例中,及时取消管理层对象对服务层对象的绑定,以及注销已注册的广播对象,有利于节约内存空间。
作为一优选实施例,所述应用服务层12包括:
数据库,用于临时存放上层应用访问过的数据。
本实施例中,考虑到某些数据在特定时间内并不会发生变化,因此,在应用服务层12设计一数据库,用于临时存放上层应用11访问过的数据,这样数据只需要获取一次,就可以不再从android系统15和服务器16获取,这样的方式可以提高数据的访问效率,提高系统的运行效率。
实施例二:
为了更清楚地说明本发明实施例提供的基于android系统的中间件装置,下面介绍一下该基于android系统的中间件装置的运行原理:
当某个上层应用需要调用android系统功能或者从android系统获取数据时,会通过以下步骤实现:
(一)、注册对象:
步骤11:创建一个管理层对象;
步骤12:管理层对象申请绑定服务层对象。
步骤13:android系统启动绑定程序,应用服务层接收消息后,创建对应的服务层对象。
步骤14:完成绑定后发送绑定成功消息给应用管理层。
步骤15:应用管理层注册一广播对象,作为接收应用服务层消息的对象。
(二)、调用API接口:
步骤21:封装输入数据。数据必须封装成Parcelable类型的数据,才能够传递到应用服务层,实现跨进程的数据传输。
步骤22:调用管理层对象提供的API接口。
步骤23:管理层对象通过AIDL定义的接口调用服务层对象的对应接口。此部分通过AIDL接口定义,实现跨进程的接口调用,这样可以实现多个应用调用同一个服务接口。
步骤24:服务层对象可以选择通过JNI调用基本库层接口,或者直接启动线程从服务器获取数据。具体执行哪种方法视服务层需要完成的功能而定。
步骤25:基本库层调用android系统执行指令或者获取数据。完成后通过JNI或者回调函数通知应用服务层。
步骤26:应用服务层完成调用后,通过广播发送完成调用消息给应用管理层。
步骤27:管理层对象接收到广播消息后,将数据或者调用结果返回给上层应用。
(三)、对象回收:在退出上层应用时,需要进行对象回收的动作:
取消对服务层对象的绑定以及注销已注册的广播对象。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种从android系统获取数据的方法,其特征在于,所述方法包括下述步骤:
步骤a:在接收上层应用发送的数据获取指令后,在应用管理层创建一个管理层对象,所述管理层对象申请绑定应用服务层的服务层对象;
步骤b:android系统启动绑定程序,应用服务层接收消息后,创建与所述管理层对象绑定的服务层对象;
步骤c:在所述服务层对象与所述管理层对象绑定成功后,发送绑定成功消息给所述应用管理层;
步骤d:所述应用管理层注册一广播对象,作为接收应用服务层消息的对象;
步骤e:所述管理层对象封装接收的上层应用发送的数据获取指令,并将封装后的数据获取指令发送给应用服务层;
步骤f:所述管理层对象调用与所述管理层对象绑定的服务层对象对应的接口;
步骤g:所述服务层对象通过JAVA本地调用JNI调用基本库层接口,并通过所述基本库层接口从android系统获取与所述数据获取指令对应的数据;
步骤h:所述服务层对象将获取的数据广播给所述应用管理层注册的广播对象;
步骤i:管理层对象从所述应用管理层注册的广播对象获取数据,并将获取的数据返回给上层应用。
2.如权利要求1所述的方法,其特征在于,在所述管理层对象从所述应用管理层注册的广播对象获取数据,并将获取的数据返回给上层应用的步骤之后,包括下述步骤:
取消对服务层对象的绑定以及注销已注册的广播对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210243110.1A CN102819452B (zh) | 2012-07-13 | 2012-07-13 | 一种从android系统获取数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210243110.1A CN102819452B (zh) | 2012-07-13 | 2012-07-13 | 一种从android系统获取数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819452A CN102819452A (zh) | 2012-12-12 |
CN102819452B true CN102819452B (zh) | 2015-02-18 |
Family
ID=47303577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210243110.1A Active CN102819452B (zh) | 2012-07-13 | 2012-07-13 | 一种从android系统获取数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819452B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412752B (zh) * | 2013-08-09 | 2017-08-25 | Tcl集团股份有限公司 | 一种事件广播适配服务方法及系统 |
CN106469089A (zh) * | 2015-08-21 | 2017-03-01 | 百度在线网络技术(北京)有限公司 | 用于使得终端上的非系统应用实现系统级别接口调用的方法及装置、终端 |
CN105701406B (zh) * | 2015-12-31 | 2018-09-07 | 深圳市证通电子股份有限公司 | 安卓平台运行传统支付应用的方法 |
CN105592161A (zh) * | 2016-01-18 | 2016-05-18 | 深圳维爱特科技有限公司 | 采集终端设备数据的方法及终端设备 |
CN106792196B (zh) * | 2016-12-26 | 2020-11-03 | 深圳Tcl新技术有限公司 | 电视机主界面显示方法和装置 |
CN108664491A (zh) * | 2017-03-29 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 数据传输方法、装置和终端设备 |
CN106990996B (zh) * | 2017-04-06 | 2021-02-02 | 青岛海信移动通信技术股份有限公司 | 应用程序调用框架层接口的方法及装置 |
CN110634230B (zh) * | 2019-09-06 | 2021-12-07 | 深圳市智莱科技股份有限公司 | 一种自动售卖机的应用程序与硬件设备信息交互的方法 |
CN111105521A (zh) * | 2019-11-21 | 2020-05-05 | 视联动力信息技术股份有限公司 | 一种数据读取方法和装置 |
CN116260859B (zh) * | 2023-01-03 | 2024-05-24 | 重庆长安汽车股份有限公司 | 一种数据配置系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373428A (zh) * | 2007-08-24 | 2009-02-25 | 上海全成通信技术有限公司 | 中间件的整合系统 |
CN101719960A (zh) * | 2009-12-01 | 2010-06-02 | 中国电信股份有限公司 | 通信装置和cdma终端 |
CN101930366A (zh) * | 2010-08-27 | 2010-12-29 | 武汉天喻信息产业股份有限公司 | 一种基于浏览器的手机中间件 |
-
2012
- 2012-07-13 CN CN201210243110.1A patent/CN102819452B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373428A (zh) * | 2007-08-24 | 2009-02-25 | 上海全成通信技术有限公司 | 中间件的整合系统 |
CN101719960A (zh) * | 2009-12-01 | 2010-06-02 | 中国电信股份有限公司 | 通信装置和cdma终端 |
CN101930366A (zh) * | 2010-08-27 | 2010-12-29 | 武汉天喻信息产业股份有限公司 | 一种基于浏览器的手机中间件 |
Also Published As
Publication number | Publication date |
---|---|
CN102819452A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819452B (zh) | 一种从android系统获取数据的方法 | |
US10831987B2 (en) | Computer program product provisioned to non-transitory computer storage of a wireless mobile device | |
CN111158818B (zh) | 一种页面渲染方法和装置 | |
CN101826987B (zh) | 一种基于融合开放网络的混合服务支撑系统及方法 | |
CN102209111B (zh) | 云计算移动网络终端设备开放性跨平台系统 | |
WO2015035908A1 (zh) | 一种智能电视操作系统 | |
Wu et al. | Porting mobile web application engine to the android platform | |
CN111158690B (zh) | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 | |
CN101593127A (zh) | 一种数字电视中间件系统的跨平台Jave虚拟机 | |
CN112882709B (zh) | 基于容器引擎系统的渲染方法、装置、设备以及存储介质 | |
CN112181542A (zh) | 功能调用方法、装置、电子设备及存储介质 | |
CN103268230A (zh) | 用于构建可拓展服务的云计算信息管理平台的方法 | |
CN111857658A (zh) | 一种渲染动态组件的方法、装置、介质和电子设备 | |
CN106406836A (zh) | 面向电力系统分析的软件平台及其运行和分布式开发方法 | |
CN102722377B (zh) | 基于ace框架的网络视频应用处理系统 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN103631645A (zh) | 一种基于数字医疗的数字家庭中间件系统 | |
CN103870280A (zh) | 基于flex与jsp的网页无缝结合处理方法 | |
CN107491330A (zh) | 一种提高嵌入式浏览器运行速度的方法 | |
CN104063229A (zh) | 一种数字家庭中间件系统 | |
CN109492354A (zh) | 一种混淆代码的方法、装置及系统 | |
CN110750296A (zh) | 一种应用处理方法及装置 | |
US8572561B1 (en) | Multiple java ME MIDlet execution in single-instance CLDC JVM | |
CN117056317B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
Fernandes et al. | Architectural pattern for native android applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 2306, east block, Skyworth semiconductor design building, 18 Gaoxin South 4th Road, high tech Zone community, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Kukai Network Technology Co.,Ltd. Address before: Room 803, block a, Skyworth building, Gaoxin South 1st Road, Nanshan District, Shenzhen, Guangdong 518000 Patentee before: Shenzhen Coocaa Network Technology Co.,Ltd. |
|
CP03 | Change of name, title or address |