CN103425225B - 便携数据设备操作系统中的应用程序装置及其运行方法 - Google Patents

便携数据设备操作系统中的应用程序装置及其运行方法 Download PDF

Info

Publication number
CN103425225B
CN103425225B CN201210151198.4A CN201210151198A CN103425225B CN 103425225 B CN103425225 B CN 103425225B CN 201210151198 A CN201210151198 A CN 201210151198A CN 103425225 B CN103425225 B CN 103425225B
Authority
CN
China
Prior art keywords
interface
interface logic
network service
thread
logic process
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
Application number
CN201210151198.4A
Other languages
English (en)
Other versions
CN103425225A (zh
Inventor
张伟藏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210151198.4A priority Critical patent/CN103425225B/zh
Publication of CN103425225A publication Critical patent/CN103425225A/zh
Application granted granted Critical
Publication of CN103425225B publication Critical patent/CN103425225B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种便携数据设备操作系统中的应用程序装置及其运行方法,包括:网络服务进程模块在收到对应用程序的启动指令后,启动网络服务进程运行应用程序的网络服务层;界面逻辑进程模块在收到对应用程序的启动指令后,启动界面逻辑进程运行应用程序的界面逻辑层;在收到退出界面的指令后,结束所述界面逻辑进程;在收到显示界面的指令后,重新启动所述界面逻辑进程并显示界面;所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信。利用本发明,可以节省应用程序对设备资源的占用,提高应用程序运行的稳定性。

Description

便携数据设备操作系统中的应用程序装置及其运行方法
技术领域
本发明涉及便携数据设备技术领域,尤其涉及一种便携数据设备操作系统中的应用程序装置及其运行方法。
背景技术
目前便携数据设备被应用得越来越广泛。所谓便携数据设备,是指具有数据计算处理能力的便携式数码设备,例如智能手机、个人数字助(PDA,Personal Digital Assistant)、手持计算机(Pocket PC),平板电脑等。通常,这些便携数据设备上都安装有操作系统,例如常见的便携操作系统有:安卓(Android)操作系统、塞班(Symbian)操作系统、Windows mobile操作系统、以及苹果iPhone OS操作系统等等。基于便携数据设备的操作系统,可以运行各种应用程序(APP,Application),这些应用程序有操作系统自带的,但大部分应用程序都是独立于操作系统的第三方应用程序。
现有技术中,便携数据设备中的应用程序通常是运行在一个进程中。例如在Andriod操作系统中,通常包括四大组件,分别是:活动(Activity)组件,用于表现功能;服务(Service)组件,用于在后台运行服务,不提供界面呈现;广播接收器(BroadcastReceiver),用于接收广播;内容提供商(ContentProvider)组件,用于支持在多个应用中存储和读取数据,相当于数据库。一个Andriod操作系统中的应用程序,就是包括相应的所述组件,使各个组件在同一个进程中相互运作,从而实现一个应用程序的具体功能。当需要退出当前界面时,只是退出所有的Activity组件,而保留Service组件继续运行,用于后台联网、接收消息通知等功能。
现有技术的缺陷是:
现有的这种在单进程中运行应用程序的方案,在界面开启、跳转后需要调用全局资源,例如包括图像缓存、数据库资源(如数据库引用和文件句柄等)、文件资源(如XML文件资源)、各种维系程序运行的全局变量等等资源;但是在退出界面后,所述全局资源并不需要继续调用,需要将这些全局资源进行释放,然而在单进程中,全局资源通常释放不彻底,从而浪费了大量的设备资源(如内存资源,计算资源等),并进而导致耗电量很高,对于内存不足的设备,很容易因为进程所占用的内存过大被强制关闭。尤其是利用java语言等不支持释放资源的编程语言编写的应用程序,由于编程语言本身不支持释放资源的操作,因此在退出界面后更会造成对设备资源和电量的浪费。同时,界面逻辑层的可能出现的缺陷将会影响整个进程,包括网络层的等核心功能,导致应用程序运行不稳定。
发明内容
有鉴于此,本发明的主要目的在于提供一种便携数据设备操作系统中的应用程序装置及其运行方法,以节省应用程序对设备资源的占用,提高应用程序运行的稳定性。
本发明的技术方案是这样实现的:
一种便携数据设备操作系统中的应用程序装置,包括:
网络服务进程模块,用于在收到对应用程序的启动指令后,启动网络服务进程运行应用程序的网络服务层;
界面逻辑进程模块,用于在收到对应用程序的启动指令后,启动界面逻辑进程运行应用程序的界面逻辑层;在收到退出界面的指令后,结束所述界面逻辑进程;在收到显示界面的指令后,重新启动所述界面逻辑进程并显示界面;
所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信。
一种便携数据设备操作系统中应用程序的运行方法,包括:
在收到对应用程序的启动指令后,采用双进程在所述操作系统中运行所述应用程序,其中应用程序的界面逻辑层运行在界面逻辑进程中,应用程序的网络服务层运行在网络服务进程中,所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信;
当收到退出界面的指令后,结束所述界面逻辑进程,保留所述网络服务进行在后台继续运行;
当收到显示界面的指令后,重新启动所述界面逻辑进程,显示界面。
与现有技术相比,本发明由于将界面逻辑层和网络服务层分别运行在两个进程中,当应用程序需要退出界面时,则将运行界面逻辑层的进程完全结束,只保留运行网络服务层的进程在后台运行,由于运行界面逻辑层的进程被完全杀掉(即结束),因此可以完全释放掉界面逻辑层所调用的全局资源,这样可以大大节省应用程序对设备资源的占用,其中不但节省了大量的内存资源,而且还节省了所述全局资源需要占用的运算资源,进而节省了电力,降低了应用程序对设备的耗电量。同时,由于界面逻辑层和网络服务层分别运行在两个进程中,界面逻辑层和网络服务层中各自的设计缺陷不会影响到对方,因此使得整个应用程序的稳定性得到了提高。
附图说明
图1为本发明所述便携数据设备操作系统中的应用程序装置的一种组成示意图;
图2为本发明所述便携数据设备操作系统中应用程序运行方法的一种流程示意图;
图3为本发明所述界面逻辑进程和网络服务进程通过AIDL接口进行通信的一种流程示意图;
图4为本发明一种实施例中所述网络服务进程回调界面逻辑进程时的回调函数的一段代码示意图;
图5为本发明一种实施例中所述界面逻辑进程调用网络服务进程的调用函数的一段代码示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明所述便携数据设备操作系统中的应用程序装置的一种组成示意图。该应用程序装置用于执行本发明所述的方法,参见图1,该应用程序装置100包括:
网络服务进程模块101,用于在收到对应用程序的启动指令后,启动网络服务进程运行应用程序的网络服务层,该网络服务层例如包括网络收发及接收消息通知等功能;
界面逻辑进程模块102,用于在收到对应用程序的启动指令后,启动界面逻辑进程运行应用程序的界面逻辑层;在收到退出界面的指令后,结束所述界面逻辑进程;在收到显示界面的指令后,重新启动所述界面逻辑进程并显示界面;
所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信。
本发明中,所述网络服务进程模块101和界面逻辑进程模块102需要在操作系统的注册表中注册应用程序的启动指令,该启动指令是同一个指令,当操作系统收到该启动指令后,则会通知所述网络服务进程模块101和界面逻辑进程模块102分别启动应用程序的网络服务层和应用程序的界面逻辑层,从而使得应用程序开始运行,此时,应用程序的界面在便携数据设备的前端显示。所述界面逻辑进程在运行过程中,一旦收到退出界面的指令,则结束当前运行的界面逻辑进程。所述界面逻辑进程模块102还需要在操作系统的注册表中注册显示界面的指令,当界面逻辑进程被结束后,一旦操作系统收到所述显示界面的指令,则会通知所述界面逻辑进程模块102重新启动所述界面逻辑进程并在便携数据设备的前端显示界面,从而利用两个进程完成应用程序前台界面的显示和退出。
本发明中,只要所述便携数据设备的操作系统具有进程间的通信接口,就可以使用本发明的方案来构建和运行其中的应用程序。例如对于某些便携数据设备操作系统,所述进程间的通信接口为远程过程调用协议(RPC)接口。PRC接口允许一个方法在本地进程调用,在远程(即在其它进程中)执行,结果返回给调用者。这意味着将方法调用及其附带的数据分解为操作系统可以理解的形式,将其由本地进程和地址空间传送到远程进程和地址空间中,在远程重新装配并执行该调用,返回值沿着相反的方向传递。在安卓Andriod操作系统中,所述RPC接口为通过Android接口描述语言(AIDL,Android Interface Definition Language)执行的AIDL接口。
为了防止所述网络服务进程和界面逻辑进程间的死锁,在本发明的一种实施例中,所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信时,具体可以为:所述界面逻辑进程使用阻塞同步方式调用网络服务进程;所述网络服务进程使用非阻塞异步方式回调界面逻辑进程,将调用结果返回给界面逻辑进程。
图2为本发明所述便携数据设备操作系统中应用程序运行方法的一种流程示意图。参见图2,该方法主要包括:
201、在收到对应用程序的启动指令后,采用双进程在所述操作系统中运行所述应用程序,其中应用程序的界面逻辑层运行在界面逻辑进程中,应用程序的网络服务层运行在网络服务进程中,所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信;
202、当收到退出界面的指令后,结束所述界面逻辑进程,保留所述网络服务进行在后台继续运行;
203、当收到显示界面的指令后,重新启动所述界面逻辑进程,显示界面。
本发明中,只要所述便携数据设备的操作系统具有进程间的通信接口,就可以使用本发明的方法来构建和运行其中的应用程序。例如对于某些便携数据设备操作系统,所述进程间的通信接口为远程过程调用协议(RPC)接口。在安卓Andriod操作系统中,所述RPC接口为通过AIDL执行的AIDL接口。
下面以常用的安卓(Andriod)操作系统中的应用程序为例,对本发明的方案进行说明。其他的具有进程间的通信接口的操作系统,其中的应用程序也可以采用本发明的方案。
本发明中,需要在操作系统的注册表中注册应用程序的启动指令,例如Andriod操作系统需要注册在AndroidManifest.xml这个文件中,AndroidManifest.xml是Andriod操作系统的一个注册表文件,在这个文件中,开发者可以注册应用程序进程的指令和用到的组件,只有注册到该注册表文件中,一旦触发了对应的指令和组件,才可以找到对应的进程。本发明中,所述注册在操作系统注册表中的应用程序启动指令指向该应用程序的界面逻辑进程和网络服务进程,当操作系统收到该启动指令后,则同时启动所述界面逻辑进程和网络服务进程,从而使应用程序开始运行。
在运行过程中,一旦收到退出界面的指令,例如最小化窗口的指令、切换到其他应用程序界面的指令等,由于这些指令在界面逻辑进程运行过程中发出,因此可以只在界面逻辑进程中注册这些指令,当收到某个退出界面的指令后,则结束当前运行的界面逻辑进程,但是需要保留所述网络服务进程在后台运行,该网络服务进程为轻量级但是功能核心的后台进程,只保留该网络服务进程,即可以执行应用程序的核心功能,又可以节省对设备资源的占用,节省电能。
另外,还需要在操作系统的注册表中注册显示界面的指令,该指令指向所述界面逻辑进程。所述显示界面的指令可以有多种,例如可以时最大化应用程序界面的指令、调用前端界面的指令、或者是网络服务层收到网络消息而需要利用界面显示该网络消息的指令等等。当界面逻辑进程被结束后,一旦操作系统收到所述显示界面的指令,则重新启动所述界面逻辑进程并在便携数据设备的前端显示界面,从而利用两个进程完成应用程序前台界面的显示和退出。
本方法中,所述界面逻辑进程和网络服务进程之间的通信方式可以包括界面逻辑进程发起的调用通信和网络服务进程发起的广播通信。
对于界面逻辑进程发起的调用通信,通常是界面逻辑进程在需要请求网络数据时发起对网络服务进程的调用,网络服务层在收到调用后进行相应的处理获取网络数据,之后采用回调界面逻辑进程的方式将所述网络数据作为调用结果返回给所述界面逻辑进程。在一种实施例中,为了防止死锁问题,所述界面逻辑进程使用阻塞同步方式调用网络服务进程;所述网络服务进程使用非阻塞异步方式回调界面逻辑进程,将调用结果返回给界面逻辑进程。
对于网络服务进程发起的广播通信,需要由所述界面逻辑进程在操作系统的注册表(如Andriod操作系统的AndroidManifest.xml)中注册操作系统的广播接收器;当网络服务进程收到网络层消息后会发起广播消息,该广播消息包括所述网络层消息;操作系统的广播接收器接收到所述广播消息后,会将该广播消息发送给注册了广播接收器的所述界面逻辑进程,该界面逻辑进程对所述广播消息进行分析处理,按照分析处理结果显示对应的界面。
当收到退出界面的指令从而结束所述界面逻辑进程后,此时由于界面逻辑进程被结束,因此在收到显示界面的指令后需要首先重启该界面逻辑进程。在一种情况中,所述显示界面的指令包括网络服务进程收到网络层消息后所发起的广播消息,即该广播消息就相当于显示界面的指令,且广播消息中包括所述网络层消息,用于将该网络层消息广播出去。在这种情况下,如上所述,由于所述界面逻辑进程在操作系统的注册表中注册了操作系统的广播接收器,因此操作系统的广播接收器在接收到所述广播消息后,则将重新启动注册了广播接收器的所述界面逻辑进程,该界面逻辑进程对所述广播消息进行分析处理,按照分析处理结果显示对应的界面,如在界面中显示所述网络层消息的内容。
对于在Andriod操作系统中运行的应用程序,由于Andriod操作系统中用于进程间通信的RPC接口为通过Android接口描述语言(AIDL)执行的AIDL接口,因此对于所述界面逻辑进程和网络服务进程通过AIDL接口进行通信的具体方式有一定的特殊性。如图3为本发明所述界面逻辑进程和网络服务进程通过AIDL接口进行通信的一种流程示意图。参见图3,该流程包括:
301、所述界面逻辑进程和网络服务进程中的一方(如本图3中为界面逻辑进程)向Andriod操作系统的绑定核心器(Binder Kernel)发起绑定请求,其中包括本方进程的标识和对方进程的标识(如此处为网络服务进程的标识)。
302、所述绑定核心器在收到绑定请求后,为双方分配各自对应的AIDL接口,并将双方各自对应的AIDL接口进行绑定。例如此处为所述应用程序的界面逻辑进程分配AIDL接口1,为所述应用程序的网络服务进程分配AIDL接口2,并将所述AIDL接口1和AIDL接口2绑定。
303、所述绑定核心器将所分配的AIDL接口对应通知给所述绑定请求发起方进程及其对方进程。如此处将所述AIDL接口1通知给所述界面逻辑进程,将所述AIDL接口2通知给所述网络服务进程。
所述界面逻辑进程和网络服务进程中在收到对应的AIDL接口后,在有通信需求时,通过自身对应的AIDL接口向绑定核心器发送信息,绑定核心器按照所述双方进程的绑定关系调用对方进程对应的AIDL接口,由该AIDL接口发送所述信息到对方进程。例如图3的步骤304及后续步骤为利用AIDL接口发起的一个调用通信过程,具体包括:
304、界面逻辑进程通过所述AIDL接口1发起一个调用通信请求,所述AIDL接口1将该调用通信请求发送给绑定核心器。
例如此处所述调用通信请求为调用网络服务进程的send()函数,例如该send()函数用于具体发送一个获取网络图片的请求。此处,为了防止两个进程之间的死锁和乱序,所述界面逻辑进程使用阻塞同步方式调用网络服务进程,即界面逻辑进程发起该调用通信请求后,立刻被挂起,即立刻被阻塞,该进程在收到网络服务进程的反馈之前不得再执行其它处理。
305、绑定核心器按照所述双方进程的绑定关系调用网络服务进程对应的AIDL接口2,由该AIDL接口2发送所述调用通信请求(即调用send()函数的请求)到网络服务进程。
306、网络服务进程通过所述AIDL接口2收到所述调用send()函数的请求,开始执行该send()函数,即向网络服务器发起一个获取网络图片的请求。
307、网络服务进程返回所述调用函数的处理结果,所述处理结果为该函数是否处理成功的信息,如果不成功需包含错误码等信息。此处还是通过AIDL接口2向所述绑定核心器返回所述处理结果。
308、所述绑定核心器收到所述处理结果后,通过所述AIDL接口1将该处理结果返回给界面逻辑进程,所述界面逻辑进程在收到该处理结果后被唤醒,即停止阻塞状态,可以继续进行其它处理操作。
309~310、当网络服务进程收到服务器返回的图片(即callback数据)后,使用非阻塞异步方式回调界面逻辑进程,将所述图片作为所述send()函数的调用结果返回给界面逻辑进程,当然此处还是通过AIDL接口1和AIDL接口2的代理返回给界面逻辑进程。所述使用费阻塞异步方式是指,网络服务进程回调所述界面逻辑进程之后,不必阻塞等待界面逻辑进程的处理结果,就可以继续处理其它操作。
由于在某些操作系统如Andriod操作系统中,进程之间的调用通信都是阻塞同步方式,即调用方进程在调用被调方进程的函数时,需要阻塞,直到被调方进程返回结果后才能恢复非阻塞状态,因此,如果调用方和被调用方都采用阻塞同步方式进行通信,那么就有可能出现循环等待的可能性,即出现死锁。为了避免死锁,本发明中,在进行调用通信时,所述界面逻辑进程使用阻塞同步方式调用网络服务进程;所述网络服务进程使用非阻塞异步方式回调界面逻辑进程,将调用结果返回给界面逻辑进程,这样就可以避免死锁。
然而,某些操作系统如Andriod操作系统默认采用阻塞同步方式进行进程之间的调用通信,本发明中界面逻辑进程可以使用Andriod操作系统默认的阻塞同步方式调用网络服务进程。但是,网络服务进程怎样才能使用非阻塞异步方式回调界面逻辑进程呢?下面是本发明的具体方法:
如图4所示为本发明一种实施例中所述网络服务进程回调界面逻辑进程时的回调函数的一段代码示意图。参见图4,网络服务进程回调界面逻辑进程时的回调函数(如图4中的“callback”)是一个“假”阻塞函数,即将真正的回调动作执行函数体(如图4中的“callbackImp”)被包含在该回调函数中,该回调函数调用界面逻辑进程的一个子线程执行,其作用是用handler(handler为Andriod操作系统中的主线程和子线程之间的数据配合机制)将所述真正的回调动作执行函数体抛(post)给界面逻辑进程的主线程后就结束本次回调,返回执行结果(该执行结果中没有返回值,并不是真正回调动作执行函数体的执行结果,因此可以叫做“假”执行结果),网络服务进程收到这个“假”执行结果后即可恢复非阻塞状态,因此网络服务进程只是堵塞一会儿,不必等到界面逻辑进程执行所述真正的回调动作执行函数体之后才恢复非阻塞状态,因此可以不受界面逻辑进程处理结果的影响,防止死锁的发生。
如果界面逻辑进程中有两个以上子线程,并且这两个以上子线程都在调用同一个调用函数如所述send()函数时,则这些子线程会访问的相同的内部成员变量和成员函数,那么时序就会相当复杂,容易错乱,比如其中一个子线程修改了一个成员变量的值之后,另一个子线程又去读等,涉及到原子性操作时就要加锁,否则会有时序问题,但几个子线程同时交互也有可能出现死锁。为了防止这种情况下的时序错乱和死锁问题,本发明可以采用下述方法:
界面逻辑进程的子线程A所调用网络服务进程的调用函数中包括真正的调用动作执行函数体,所述界面逻辑进程的子线程A在调用该调用函数后阻塞;所述调用函数调用网络服务进程的一个子线程B执行,由该子线程B将所述调用动作执行函数体post给网络服务进程主线程的任务队列,之后阻塞该子线程B;所述网络服务进程主线程依次执行任务队列中的函数体,一旦执行完毕所述子线程B post的调用动作执行函数体后,返回执行结果给子线程B,子线程B唤醒为非阻塞状态,并返回执行结果给界面逻辑进程中的子线程A,子线程A再唤醒为非阻塞状态。下面以图5为例进一步说明。
图5为本发明一种实施例中所述界面逻辑进程调用网络服务进程的调用函数的一段代码示意图。参见图5,其中括号的标号为该调用函数的执行顺序。假设界面逻辑进程还是调用网络服务进程的send()函数,该调用函数由界面逻辑进程中的一个子线程A调用,在调用后该界面逻辑进程的子线程A休眠(即阻塞状态),且该调用函数由网络服务进程中的一个子线程B执行,包括:
(1)将真正的调用执行函数体即sendImp()函数利用handler抛(post)给网络服务进程的主线程;
(2)之后,暂时将本子线程B休眠(即阻塞状态)。然后等待网络服务进程的主线程执行所述sendImp()函数的执行结果。所述网络服务进程的主线程会依次将任务队列的任务逐个执行;
(3)当网络服务进程的主线程执行到刚才抛出的事件时,则调用sendImp()函数;
(4)sendImp()执行完毕后,并赋值retCode,即返回执行结果;
(5)然后执行notify操作以唤醒刚才休眠的子线程B,该子线程B被唤醒,即处于非阻塞状态;
(6)所述子线程B返回执行结果给Binder Kernel,并结束该子线程B,同时Binder Kernel将唤醒界面逻辑进程中阻塞的子线程A,该Send()函数的调用动作执行完毕。
采用上述方法,即使同时有几个send()函数同时调用发生,那么它们的真正调用执行函数体sendImp()都是串行地(一个执行完再执行下一个)执行在网络服务进程的主线程中(即Service.mainLooper),所以这样既实现了返回执行结果的功能,同时又在一定程度上防止时序错乱导致的问题。
本发明所述的方案采用双进程架构模型,将应用程序的界面逻辑层和网络服务层解耦,分别运行于两个进程空间中。应用程序退到后台把界面层的进程退出,只留下轻量级但功能核心的后台进程在负责接收网络通知。通过实验比对,在同等操作场景下,使用本发明所述双进程架构的应用程序所占用的内存,比使用单进程架构的应用程序占用的内存,下降了2/3;而耗损电量则从80%降到30%。从这些数据来看,本发明大大节约了便携数据设备的资源,降低了耗电量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (9)

1.一种便携数据设备操作系统中的应用程序装置,其特征在于,包括:
网络服务进程模块,用于在收到对应用程序的启动指令后,启动网络服务进程运行应用程序的网络服务层;
界面逻辑进程模块,用于在收到对应用程序的启动指令后,启动界面逻辑进程运行应用程序的界面逻辑层;在收到退出界面的指令后,结束所述界面逻辑进程;在收到显示界面的指令后,重新启动所述界面逻辑进程并显示界面;
所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信,其中所述界面逻辑进程使用阻塞同步方式调用网络服务进程;所述网络服务进程使用非阻塞异步方式回调界面逻辑进程,将调用结果返回给界面逻辑进程,其中所述网络服务进程回调界面逻辑进程的回调函数中包括真正的回调动作执行函数体,该回调函数调用界面逻辑进程的一个子线程执行,将所述真正的回调动作执行函数体抛post给界面逻辑进程的主线程,之后结束本次回调。
2.根据权利要求1所述的装置,其特征在于,所述进程间的通信接口为远程过程调用协议RPC接口。
3.根据权利要求2所述的装置,其特征在于,所述操作系统为安卓Andriod操作系统,所述RPC接口为通过Android接口描述语言AIDL执行的AIDL接口。
4.一种便携数据设备操作系统中应用程序的运行方法,其特征在于,包括:
在收到对应用程序的启动指令后,采用双进程在所述操作系统中运行所述应用程序,其中应用程序的界面逻辑层运行在界面逻辑进程中,应用程序的网络服务层运行在网络服务进程中,所述界面逻辑进程和网络服务进程通过进程间的通信接口进行通信,其中所述界面逻辑进程使用阻塞同步方式调用网络服务进程;所述网络服务进程使用非阻塞异步方式回调界面逻辑进程,将调用结果返回给界面逻辑进程,其中所述网络服务进程回调界面逻辑进程的回调函数中包括真正的回调动作执行函数体,该回调函数调用界面逻辑进程的一个子线程执行,将所述真正的回调动作执行函数体post给界面逻辑进程的主线程,之后结束本次回调;
当收到退出界面的指令后,结束所述界面逻辑进程,保留所述网络服务进行在后台继续运行;
当收到显示界面的指令后,重新启动所述界面逻辑进程,显示界面。
5.根据权利要求4所述的方法,其特征在于,所述界面逻辑进程包括两个以上子线程,针对界面逻辑进程的每个子线程,都使用所述阻塞同步方式调用网络服务进程,具体的调用方式为:
界面逻辑进程的子线程A所调用网络服务进程的调用函数中包括真正的调用动作执行函数体,所述界面逻辑进程的子线程A在调用该调用函数后阻塞;所述调用函数调用网络服务进程的一个子线程B执行,由该子线程B将所述调用动作执行函数体post给网络服务进程主线程的任务队列,之后阻塞该子线程B;所述网络服务进程主线程依次执行任务队列中的任务,一旦执行完毕所述子线程B post的调用动作执行函数体后,返回执行结果给子线程B,子线程B唤醒为非阻塞状态,并返回执行结果给界面逻辑进程中的子线程A,子线程A再唤醒为非阻塞状态。
6.根据权利要求4所述的方法,其特征在于,所述进程间的通信接口为RPC接口。
7.根据权利要求6所述的方法,其特征在于,所述操作系统为Andriod操作系统,所述RPC接口为通过Android接口描述语言AIDL执行的AIDL接口。
8.根据权利要求7所述的方法,其特征在于,所述界面逻辑进程和网络服务进程通过AIDL接口进行通信的具体方式为:
所述界面逻辑进程和网络服务进程中的一方向Andriod操作系统的绑定核心器发起绑定请求,其中包括本方进程的标识和对方进程的标识;
所述绑定核心器在收到绑定请求后,为双方分配各自对应的AIDL接口,并将双方各自对应的AIDL接口进行绑定;
所述绑定核心器将所分配的AIDL接口对应通知给所述绑定请求发起方进程及其对方进程;
所述界面逻辑进程和网络服务进程中在收到对应的AIDL接口后,在有通信需求时,通过自身对应的AIDL接口向绑定核心器发送信息,绑定核心器按照所述双方进程的绑定关系调用对方进程对应的AIDL接口,由该AIDL接口发送所述信息到对方进程。
9.根据权利要求4所述的方法,其特征在于,
所述界面逻辑进程在操作系统的注册表中注册操作系统的广播接收器;
所述显示界面的指令包括网络服务进程收到网络层消息后所发起的广播消息,该广播消息包括所述网络层消息;
所述收到显示界面的指令后重新启动所述界面逻辑进程并显示界面,具体包括:操作系统的广播接收器接收到所述广播消息后,重新启动注册了广播接收器的所述界面逻辑进程,该界面逻辑进程对所述广播消息进行分析处理,按照分析处理结果显示对应的界面。
CN201210151198.4A 2012-05-16 2012-05-16 便携数据设备操作系统中的应用程序装置及其运行方法 Active CN103425225B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210151198.4A CN103425225B (zh) 2012-05-16 2012-05-16 便携数据设备操作系统中的应用程序装置及其运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210151198.4A CN103425225B (zh) 2012-05-16 2012-05-16 便携数据设备操作系统中的应用程序装置及其运行方法

Publications (2)

Publication Number Publication Date
CN103425225A CN103425225A (zh) 2013-12-04
CN103425225B true CN103425225B (zh) 2015-08-19

Family

ID=49650099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210151198.4A Active CN103425225B (zh) 2012-05-16 2012-05-16 便携数据设备操作系统中的应用程序装置及其运行方法

Country Status (1)

Country Link
CN (1) CN103425225B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092773A (zh) * 2014-07-23 2014-10-08 林志辉 移动终端应用方法和系统
CN104239915A (zh) * 2014-09-01 2014-12-24 林志辉 移动终端应用方法和系统
CN104375880B (zh) * 2014-09-18 2016-04-06 腾讯科技(深圳)有限公司 内存释放方法及装置
CN104580715B (zh) * 2014-12-30 2017-08-25 北京奇虎科技有限公司 一种移动端应用客户端装置和移动终端
CN106161537B (zh) * 2015-04-10 2019-12-13 阿里巴巴集团控股有限公司 远程过程调用的处理方法、装置、系统及电子设备
CN105183556B (zh) * 2015-08-11 2019-02-05 Oppo广东移动通信有限公司 移动终端的资源管控方法和相关设备
CN105094844B (zh) * 2015-08-21 2018-05-29 广东欧珀移动通信有限公司 一种电子相册管理方法及移动终端
CN105357648A (zh) * 2015-10-10 2016-02-24 上海斐讯数据通信技术有限公司 向应用程序发送广播消息的方法及Android系统
CN106445617B (zh) * 2016-10-13 2020-08-04 武汉斗鱼网络科技有限公司 基于Android的应用程序冷启动优化方法及系统
CN106547567A (zh) * 2016-11-25 2017-03-29 山东大学 一种安卓系统中多业务下进程间通信系统及其实现方法
CN106895850B (zh) * 2016-12-30 2020-09-01 中国船舶重工集团公司第七0七研究所 一种支持多源目标筛选的态势显示方法
CN106851014B (zh) * 2017-03-10 2020-06-30 Oppo广东移动通信有限公司 调整广播消息队列的方法、装置及终端
CN107436817B (zh) * 2017-06-30 2019-01-29 武汉斗鱼网络科技有限公司 一种以同步方式进行远程过程调用的方法及装置
CN108196960B (zh) * 2017-08-31 2023-08-04 中兴通讯股份有限公司 一种应用的管控方法、终端及存储介质
CN107590057B (zh) * 2017-09-28 2021-06-15 努比亚技术有限公司 冻屏监测与解决方法、移动终端及计算机可读存储介质
US11693701B2 (en) 2017-09-30 2023-07-04 Huawei Technologies Co., Ltd. System service timeout processing method, and apparatus
CN109032815A (zh) * 2018-07-18 2018-12-18 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质
CN109343982A (zh) * 2018-09-30 2019-02-15 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质
CN109857502A (zh) * 2019-01-24 2019-06-07 苏州思必驰信息科技有限公司 实现业务逻辑与显示分离的方法及业务逻辑与显示分离的系统架构

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184118A (zh) * 2011-06-15 2011-09-14 奇智软件(北京)有限公司 一种系统恢复方法
CN102253863A (zh) * 2011-06-15 2011-11-23 奇智软件(北京)有限公司 一种进程关闭方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184118A (zh) * 2011-06-15 2011-09-14 奇智软件(北京)有限公司 一种系统恢复方法
CN102253863A (zh) * 2011-06-15 2011-11-23 奇智软件(北京)有限公司 一种进程关闭方法

Also Published As

Publication number Publication date
CN103425225A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN103425225B (zh) 便携数据设备操作系统中的应用程序装置及其运行方法
CN109582472B (zh) 一种微服务处理方法及设备
CN104252389B (zh) 应用程序运行方法、系统
CN106844017B (zh) 用于网站服务器处理事件的方法和设备
RU2739290C1 (ru) Способ управления многоадресным однонаправленным каналом и оконечное устройство
EP2492810A1 (en) Method and device for managing operating systems in embedded system
CN101610316B (zh) 手机应用程序的启动方法、装置和系统
EP2984810B1 (en) Energy efficient data handling for mobile devices
CN106897299B (zh) 一种数据库访问方法及装置
WO2006102668A2 (en) Method and system for variable thread allocation and switching in a multithreaded processor
CN105187327A (zh) 一种分布式消息队列中间件
WO2014139379A1 (zh) 一种异构操作系统中内核运行的方法及装置
WO2022242683A1 (zh) 内存回收方法、装置和电子设备
CN113467884A (zh) 资源配置方法和装置、电子设备及计算机可读存储介质
CN107391274A (zh) 离线消息的处理方法及装置
CN103442415A (zh) 一种发送数据的方法及一种移动终端
CN111052083B (zh) 用于在启动期间管理服务的调度的方法和装置
CN116820527B (zh) 程序升级方法、装置、计算机设备和存储介质
CN101551758B (zh) 一种实现设备管理任务并行工作的系统和方法
TWI407765B (zh) 行動裝置、省電方法及電腦可執行媒體
CN101349975B (zh) 一种在嵌入式操作系统上实现中断底半部机制的方法及装置
CN110955520A (zh) 一种面向电能表的多任务调度方法和系统
CN105589738A (zh) 一种智能分屏的并发处理方法及相应的智能终端
CN115412500B (zh) 支持负载均衡策略的异步通信方法、系统、介质及设备
CN114296915B (zh) 一种操作系统调度方法、装置、设备及存储介质

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