CN108804236B - 一种aidl文件的共享方法及系统 - Google Patents

一种aidl文件的共享方法及系统 Download PDF

Info

Publication number
CN108804236B
CN108804236B CN201710307689.6A CN201710307689A CN108804236B CN 108804236 B CN108804236 B CN 108804236B CN 201710307689 A CN201710307689 A CN 201710307689A CN 108804236 B CN108804236 B CN 108804236B
Authority
CN
China
Prior art keywords
file
application program
bundle
service
application
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
CN201710307689.6A
Other languages
English (en)
Other versions
CN108804236A (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.)
TCL Technology Group Co Ltd
Original Assignee
TCL Technology Group 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 TCL Technology Group Co Ltd filed Critical TCL Technology Group Co Ltd
Priority to CN201710307689.6A priority Critical patent/CN108804236B/zh
Publication of CN108804236A publication Critical patent/CN108804236A/zh
Application granted granted Critical
Publication of CN108804236B publication Critical patent/CN108804236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

本发明公开了一种AIDL文件的共享方法及系统,所述方法包括将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务;通过所述服务调用所述bundle文件以实现所述AIDL文件的共享。本发明通过采用bundle文件的形式共享AIDL文件,避免了当系统中有多个第二应用程序需要访问第一应用程序时,需要同时都编写同一AIDL文件的问题,减少了应用程序间通讯的工作量,提高通讯效率。

Description

一种AIDL文件的共享方法及系统
技术领域
本发明涉及智能终端技术领域,特别涉及一种AIDL文件的共享方法及系统。
背景技术
AIDL(Android Interface Definition Language)即Android接口定义语言,其作用主要是为了实现进程间通信。众所周知,基于Android系统的每一个应用对应一个进程,每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存空间,都在自己的内存空间上存储自己的数据,执行着自己的操作;同时,每个应用程序还可以通过AIDL访问另一个进程的数据。但是,现有的在通过AIDL实现进程间的通信时,需要访问应用程序和被访问应用程序同时编写同一份AIDL文件,并且在后期需求变更(如,更新接口等)时,需要访问应用程序和被访问应用程序同步修改所述AIDL文件,这样增加进程间的通信的工作量,降低了进程间通信的效率。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种AIDL文件的共享方法及系统,以解决现有通过AIDL实现应用间通讯方法中存在的需要重复编写AIDL文件的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种AIDL文件的共享方法,其包括:
将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;
当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务;
通过所述服务调用所述bundle文件以实现所述AIDL文件的共享。
所述AIDL文件的共享方法,其中,所述将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序之前包括:
编写所述第一应用程序对应的AIDL文件,并将所述AIDL文件编译为jar文件;
将预设元数据添加至所述jar文件以将其转化成bundle文件,其中,所述元数据包括:可读信息、bundle识别信息以及代码可见性。
所述AIDL文件的共享方法,其中,所述将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序具体包括:
所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件;
在所述bundle文件启动后,将所述bundle文件编写入所述第一应用程序的服务内,并启动所述第一应用程序。
所述AIDL文件的共享方法,其中,所述当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务具体包括:
当2个第二应用程序访问所述第一应用程序时,每个第二应用程序均绑定所述第一应用程序的服务。
所述AIDL文件的共享方法,其中,所述通过所述服务调用所述bundle文件以实现所述AIDL文件的共享具体包括:
所述第二应用程序链接所述服务以获取所述服务对应的服务代理;
通过所述服务代理调用所述bundle文件以实现所述AIDL文件的共享。
一种AIDL文件的共享系统,其包括:
启动模块,用于将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;
控制模块,用于当至少一个第二应用程序访问所述第一应用程序时,控制所述第二应用程序绑定所述第一应用程序的服务;
调用模块,用于通过所述服务调用所述bundle文件以实现所述AIDL文件的共享。
所述AIDL文件的共享系统,其还包括:
编写模块,用于编写所述第一应用程序对应的AIDL文件,并将所述AIDL文件编译为jar文件;
转化模块,用于将预设元数据添加至所述jar文件以将其转化成bundle文件,其中,所述元数据包括:可读信息、bundle识别信息以及代码可见性。
所述AIDL文件的共享系统,其中,所述启动模块具体包括:
启动单元,用于控制所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件;
写入单元,用于在所述bundle文件启动后,将所述bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序。
所述AIDL文件的共享系统,其中,所述控制模块具体用于:
当2个第二应用程序访问所述第一应用程序时,控制每个第二应用程序均绑定所述第一应用程序的服务。
所述AIDL文件的共享系统,其中,所述调用模块具体包括:
链接单元,用于控制所述第二应用程序链接所述服务以获取所述服务对应的服务代理;
调用单元,用于通过所述服务代理调用所述bundle文件以实现所述AIDL文件的共享。
有益效果:与现有技术相比,本发明提供了一种AIDL文件的共享方法及系统,所述方法包括将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务;通过所述服务调用所述bundle文件以实现所述AIDL文件的共享。本发明通过采用bundle文件的形式共享AIDL文件,避免了当系统中有多个第二应用程序需要访问第一应用程序时均需要均编写同一AIDL文件的问题,减少了应用程序间通讯的工作量,提高通讯效率。
附图说明
图1为本发明提供的AIDL文件的共享方法较佳实施例的流程图。
图2为本发明提供的AIDL文件的共享方法较佳实施例的框图。
图3为本发明提供的AIDL文件的共享系统较佳实施例的结构原理图。
具体实施方式
本发明提供一种AIDL文件的共享方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端设备可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用程序于固定类型的终端。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。本实施例中,所述方法应用于系统内嵌入OSGI框架的终端设备。
请参照图1和图2,图1为本发明提供的AIDL文件的共享方法的较佳实施例的流程图,图2为本发明提供的AIDL文件的共享方法较佳实施例的框图。所述方法包括:
S100、将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序。
具体地,所述AIDL(Android Interface Definition Language)文件为Android接口定义语言,用于实现进程间通信,进而实现应用程序间通讯。所述程序间通讯指的是同一终端设备安装的多个应用程序间的通讯。也就是说,终端设备安装的一个或多个应用程度访问其安装的另外一个应用程序,这里,将被访问的应用程序记为第一应用程序,访问第一应用程序的应用程序记为第二应用程序。并且,为了叙述方便将所述第一应用程序记为服务端,将一个或者多个第二应用程序均记为客户端。
进一步,所述bundle文件为预先生成与所述AIDL文件相对应的。所述bundle文件是添加了元数据的jar文件。也就是说,服务端在编写所述AIDL文件后,需要将其转换jar文件,之后在将元数据添加至jar文件得到bundle文件。相应的,所述将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序之前包括:
S001、编写所述第一应用程序对应的AIDL文件,并将所述AIDL文件编译为jar文件;
S002、将预设元数据添加至所述jar文件以将其转化成bundle文件,其中,所述元数据包括:可读信息、bundle识别信息以及代码可见性。
具体的来说,所述AIDL文件(.AIDL)是由终端设备系统编写,并在编写后在集成开发环境中编译会生成.jar文件。在编写完所述AIDL文件之后,可以编写所述AIDL对应的服务并在该服务中实例化AIDL类并实现其中方法。所述实例化AIDL类中的方法可以为返回具体业务逻辑中间数据等。例如,所述实例化AIDL中的类并实现其中方法为编写自定义服务继承于Android系统原生Service类,实现onBind接口,并在该接口中返回实例化AIDL中的类。值得说明的,在编写完所述应用服务后,启动所述第一应用程序。
所述bundle文件是由OSGI平台中加载。所述bundle文件为添加元数据的jar文件,其中,所述jar包中包含有class文件以及相应的资源文件。也就是说,一个bundle中包含了java、数据资源以及元数据,所述数据资源可以是HTML文件、帮助文档以及图标等。
进一步,所述元数据包括:可读信息、bundle识别信息和代码可见性信息。
所述可读信息为使用者提供该bundle的相关帮助信息,其可以包括:
Bundle-Name:作为bundle文件的一个缩写名;
Bundle-Description:描述bundle文件的功能;
Bundle-DocURL:提供有关bundle文件的文档;
Bundle-Category:定义了一组由逗号分隔的分类名;
Bundle-Vendor:有关bundle提供商的信息;
Bundle-ContactAddress:有关bundle提供商的信息;
Bundle-Copyright:有关bundle提供商的信息。
所述bundle文件识别信息为识别bundle文件的唯一标识,所述标识包括bundle文件的符号名称和bundle版本号。所述bundle文件的符号名称Bundle-SymbolicName与java中包命名方法一致,可直接采用包名作为符号名称。所述bundle版本号Bundle-Version根据OSGI规范约定,其格式可以为:主版本号.次版本号.微版本号.限定符。在实际应用程序中,所述bundle文件识别信息还可以包括Bundle-ManifestVersion,用于确定OSGI框架根据此元数据信息确定采用哪个版本的OSGI规范来处理所述bundle文件。
所述代码可见性信息为定义代码的内部可见性;所述代码可以包括Export-Package导出内部代码,一个为了与其它bundle文件共享而公开的、由逗号分隔的内部bundle包;Import-Package:导入外部代码,内部bundle代码需要的、来自其它bundle文件并由逗号分隔的一组包。
在本实施例中,所述将jar文件转化为bundle文件可利用eclipse的BndTools插件、jar命令和bnd工具,在jar文件的META-INF/ MANIFEST.MF条目里增加上述元数据以将其转化为bundle文件,其中,上述bnd工具由OSGI技术负责相关人员开关,提供了大量的专门为OSGI设计的命令行。
在本发明的一个实施例中,所述将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序具体包括:
S101、所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件;
S102、在所述bundle文件启动后,将所述bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序。
具体地,所述BundleContext接口为OSGI服务平台的生命周期层的接口,所述生命周期层包括Bundle、BundleContext和BundleActivator接口。Bundle接口代表了一个已安装到框架中的bundle文件,允许对其执行状态操作。在OSGI框架中每个Bundle实体都对应一个Bundle对象,Bundle对象是对Bundle实体的抽象。每个Bundle都对应一个唯一的并且在生命周期中保持不变的ID号码,该ID由框架进行分配。Bundle接口中定义了Bundle的基本信息的获取方法,包括:状态的获取、版本的获取、ID的获取等,还定义了Bundle的管理方法,包括:更新、卸载、启动、停止等。所述BundleContext接口是指模块在框架中运行时的上下文。在启动模块时,框架会创建一个对应的BundleContext对象,所述BundleContext对象不能在模块之间进行传递,这样可以保障模块的安全和资源的正确分配。
在本实施例中,为了方便说明通过BundleContext接口安装并启动所有bundle文件,将在终端设备系统中嵌入OSGI框架称为OsgiFramework。将该OsgiFramework实现为终端设备系统的服务记为Servie,并将bundle指bundle文件,Bundle指OSGI框架接口。
所述通过BundleContext接口安装并启动所有bundle文件具体可以为通过FrameWorkFactory.newFrameWork()方法获取所述BundleContext接口,并通过所述BundleContext接口安装并启动所有bundle文件。
具体地,所述终端设备系统可以通过建立GetFramework继承自系统中的服务GetFrameworkService,在服务实现完毕后通过系统中的服务管理器ServiceManager将该服务添加进系统服务中。在将所述ServiceManager将该服务添加进系统服务中后,通过FrameWorkFactory.newFrameWork()方法获取框架实例,并通过Framework.start()方法启动所述框架实例。在所述框架启动后,可通过系统binder机制,向应用程序层提供GetFrameworkService服务的代理,如GetFrameworkServiceProxy,通过该OSGI框架服务代理,访问到GetFrameworkService服务中相关接口,如,BundleContext接口等。
示例性的,所述步骤101、所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件可以具体包括:
S10、通过GetFrameworkService的代理GetFrameworkServiceProxy,获取到OSGI框架实例。
具体地,可以通过getFrameworkInstance()方法获取OSGI框架实例。
S20、调用Framework.getBundleContext()方法获取BundleContext接口。
S30、调用BundleContext.install(String location)方法安装所述bundle文件。
具体地,所述参数location是该bundle文件存放路径。当安装成功后,会返回已安装的Bundle的 Bundle ID(Bundle Identifier)。Bundle ID是运行期最常用的标识符。它是由OSGI框架自动分配的一个长整型数字,在Bundle整个生命周期内(包括Bundle更新、卸载之后)都不会改变,甚至在OSGI框架重启后都能保留下来。Bundle ID是在Bundle安装过程中由OSGI框架根据Bundle安装时间的先后次序,由小到大进行分配的。可以通过Bundle接口的getBundleId()方法来获取当前Bundle的ID。
S40、调用安装成功返回的Bundle的getBundleId()方法来获取当前Bundle的ID,并通过调用Bundle的getSymbolicName()方法和getVersion()分别获取到该bundle的符号名称和版本号。
S50、建立数据库存储每一个bundle ID、bundle文件包名、bunlde的符号名称和版本号属性;
S60、通过BundleContext.start()方法启动bundle文件。
S200、当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务。
具体地,所述服务用于所述实例化AIDL类并实现其中方法,也就是说,实例化AIDL类并实现其中方法在所述服务中实现。所述第二应用程序访问所述第一应用程序指的是所述第二应用程序对应的进程访问所述第一应用程序对应的进程。所述第二应用程序可以为一个也可以为多个。当所述第二应用程序为一个时,所述第二应用程序绑定所述第一应用程度的服务;当所述第二应用程度为多个时,每个第二应用程序均绑定所述第一应用程序服务。例如,当所述第二应用程序为2个时,所述两个应用程序均绑定所述第一应用程序的服务。这样当多个第二应用程序需要同时访问第一应用程序时,仅需第一应用程序编写AIDL文件,之后将所述AIDL文件共享给多个第二应用程序,减少了应用程序间通讯时对CPU的消耗,提高了应用程序之间通讯的效率。并且,当AIDL需要变动时,也仅需第一应用程序单独修改所述AIDL文件,在将修改后的文件共享给第二应用程序,实现AIDL文件的同步。
S300、通过所述服务调用所述bundle文件以实现所述AIDL文件的共享。
具体地,所述第二应用程序调用第一应用程序的服务,并通过所述服务调用所述bundle文件以获取所述AIDL文件。在实际应用中,可以通过实例化Android系统中ServiceConnection类并实现其onServiceConnected和onServiceDisconnected接口,其中当连接上服务时回调onServiceConnected接口,当断开服务时回调onServiceDisconnected接口。在onServiceConnected中获取服务代理,即服务中已经实例化AIDL中的类。待获取到服务代理时即可调用其相关接口实现第一应用程序与第二应用程序的通信。
示例性的,所述通过所述服务调用所述bundle文件以实现所述AIDL文件的共享具体包括:
S301、所述第二应用程序链接所述服务以获取所述服务对应的服务代理;
S302、通过所述服务代理调用所述bundle文件以实现所述AIDL文件的共享。
本发明还提供了一种AIDL文件的共享系统,如图3所述,其包括:
启动模块100,用于将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;
控制模块200,用于当至少一个第二应用程序访问所述第一应用程序时,控制所述第二应用程序绑定所述第一应用程序的服务;
调用模块300,用于通过所述服务调用所述bundle文件以实现所述AIDL文件的共享。
所述AIDL文件的共享系统,其还包括:
编写模块,用于编写所述第一应用程序对应的AIDL文件,并将所述AIDL文件编译为jar文件;
转化模块,用于将预设元数据添加至所述jar文件以将其转化成bundle文件,其中,所述元数据包括:可读信息、bundle识别信息以及代码可见性。
所述AIDL文件的共享系统,其中,所述启动模块具体包括:
启动单元,用于控制所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件;
写入单元,用于在所述bundle文件启动后,将所述bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序。
所述AIDL文件的共享系统,其中,所述控制模块具体用于:
当2个第二应用程序访问所述第一应用程序时,控制每个第二应用程序均绑定所述第一应用程序的服务。
所述AIDL文件的共享系统,其中,所述调用模块具体包括:
链接单元,用于控制所述第二应用程序链接所述服务以获取所述服务对应的服务代理;
调用单元,用于通过所述服务代理调用所述bundle文件以实现所述AIDL文件的共享。
上述AIDL文件的共享系统的各个模块在上述方法中已经详细说明,在这里就不再一一陈述。
在本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种AIDL文件的共享方法,其特征在于,其包括:
将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;
当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务;
通过所述服务调用所述bundle文件以实现所述AIDL文件的共享;其中,当所述AIDL文件需要变动时,仅需所述第一应用程序单独修改所述AIDL文件,并将修改后的AIDL文件共享给所述第二应用程序;
其中,所述当至少一个第二应用程序访问所述第一应用程序时,所述第二应用程序绑定所述第一应用程序的服务具体包括:
当2个第二应用程序访问所述第一应用程序时,每个第二应用程序均绑定所述第一应用程序的服务。
2.根据权利要求1所述AIDL文件的共享方法,其特征在于,所述将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序之前包括:
编写所述第一应用程序对应的AIDL文件,并将所述AIDL文件编译为jar文件;
将预设元数据添加至所述jar文件以将其转化成bundle文件,其中,所述元数据包括:可读信息、bundle识别信息以及代码可见性。
3.根据权利要求1或2所述AIDL文件的共享方法,其特征在于,所述将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序具体包括:
所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件;
在所述bundle文件启动后,将所述bundle文件编写入所述第一应用程序的服务内,并启动所述第一应用程序。
4.根据权要求1所述AIDL文件的共享方法,其特征在于,所述通过所述服务调用所述bundle文件以实现所述AIDL文件的共享具体包括:
所述第二应用程序链接所述服务以获取所述服务对应的服务代理;
通过所述服务代理调用所述bundle文件以实现所述AIDL文件的共享。
5.一种AIDL文件的共享系统,其特征在于,其包括:
启动模块,用于将预先配置的AIDL文件对应的bundle文件编写入第一应用程序的服务内,并启动所述第一应用程序;
控制模块,用于当至少一个第二应用程序访问所述第一应用程序时,控制所述第二应用程序绑定所述第一应用程序的服务;
调用模块,用于通过所述服务调用所述bundle文件以实现所述AIDL文件的共享;其中,当所述AIDL文件需要变动时,仅需所述第一应用程序单独修改所述AIDL文件,并将修改后的AIDL文件共享给所述第二应用程序;
其中,所述控制模块具体用于:
当2个第二应用程序访问所述第一应用程序时,控制每个第二应用程序均绑定所述第一应用程序的服务。
6.根据权利要求5所述AIDL文件的共享系统,其特征在于,其还包括:
编写模块,用于编写所述第一应用程序对应的AIDL文件,并将所述AIDL文件编译为jar文件;
转化模块,用于将预设元数据添加至所述jar文件以将其转化成bundle文件,其中,所述元数据包括:可读信息、bundle识别信息以及代码可见性。
7.根据权利要求5或6所述AIDL文件的共享系统,其特征在于,所述启动模块具体包括:
启动单元,用于控制所述第一应用程序调用BundleContext接口,并通过其启动所述AIDL文件对应的bundle文件;
写入单元,用于在所述bundle文件启动后,将所述bundle文件编写入所述第一应用程序的服务内,并启动所述第一应用程序。
8.根据权要求5所述AIDL文件的共享系统,其特征在于,所述调用模块具体包括:
链接单元,用于控制所述第二应用程序链接所述服务以获取所述服务对应的服务代理;
调用单元,用于通过所述服务代理调用所述bundle文件以实现所述AIDL文件的共享。
CN201710307689.6A 2017-05-04 2017-05-04 一种aidl文件的共享方法及系统 Active CN108804236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710307689.6A CN108804236B (zh) 2017-05-04 2017-05-04 一种aidl文件的共享方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710307689.6A CN108804236B (zh) 2017-05-04 2017-05-04 一种aidl文件的共享方法及系统

Publications (2)

Publication Number Publication Date
CN108804236A CN108804236A (zh) 2018-11-13
CN108804236B true CN108804236B (zh) 2022-05-03

Family

ID=64053649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710307689.6A Active CN108804236B (zh) 2017-05-04 2017-05-04 一种aidl文件的共享方法及系统

Country Status (1)

Country Link
CN (1) CN108804236B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569130B (zh) * 2019-07-29 2021-12-14 华为技术有限公司 一种跨进程通信方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401896A (zh) * 2013-07-15 2013-11-20 四川公用信息产业有限责任公司 一种多Android客户端服务共享方法及系统
CN104636122A (zh) * 2013-11-06 2015-05-20 中国移动通信集团公司 一种能力组件的共享方法和设备
CN105511902A (zh) * 2015-11-09 2016-04-20 Tcl集团股份有限公司 一种安卓平台模块动态加载的方法及系统
CN105653331A (zh) * 2015-12-29 2016-06-08 Tcl集团股份有限公司 一种中间件的应用方法及装置
CN106569880A (zh) * 2016-11-07 2017-04-19 Tcl集团股份有限公司 一种Android应用间动态共享资源的方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7131111B2 (en) * 2001-01-19 2006-10-31 Sun Microsystems, Inc. Development of manifest for java embedded server bundle
US7152222B2 (en) * 2002-01-08 2006-12-19 International Business Machines Corporation Method and system for localizing Java™ JAR files
CN103902390B (zh) * 2014-03-12 2017-04-19 深圳创维-Rgb电子有限公司 基于Android的应用层的进程间通信方法及基础应用通信系统
WO2018086017A1 (zh) * 2016-11-09 2018-05-17 达闼科技(北京)有限公司 打开应用的方法、电子设备及管理服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401896A (zh) * 2013-07-15 2013-11-20 四川公用信息产业有限责任公司 一种多Android客户端服务共享方法及系统
CN104636122A (zh) * 2013-11-06 2015-05-20 中国移动通信集团公司 一种能力组件的共享方法和设备
CN105511902A (zh) * 2015-11-09 2016-04-20 Tcl集团股份有限公司 一种安卓平台模块动态加载的方法及系统
CN105653331A (zh) * 2015-12-29 2016-06-08 Tcl集团股份有限公司 一种中间件的应用方法及装置
CN106569880A (zh) * 2016-11-07 2017-04-19 Tcl集团股份有限公司 一种Android应用间动态共享资源的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AIDL的实现和注意点;cookie123;《https://www.jianshu.com/p/b09126533682》;20161024;第1-4页 *

Also Published As

Publication number Publication date
CN108804236A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN109325195B (zh) 浏览器的渲染方法和系统、计算机设备、计算机存储介质
US9798555B2 (en) Application implementation method and apparatus
US11853820B2 (en) Cross-process communication method, apparatus, and device
CN103970563B (zh) 动态加载安卓类的方法
US10594800B2 (en) Platform runtime abstraction
CN103955364A (zh) 一种适用于手机的前端组件方法
US20130219415A1 (en) Method for executing hybrid web application and apparatus therefor
CN106569880B (zh) 一种Android应用间动态共享资源的方法及系统
US11966795B2 (en) Method and device for loading minus-one screen, terminal, and computer readable storage medium
CN102135895B (zh) web系统升级方法及web系统
CN114077462A (zh) 软件操作系统调用Android HIDL接口的方法、装置、设备及介质
US10078532B2 (en) Resource management method and device for terminal system among multiple operating systems
CN103530165B (zh) 一种应用于物联网行业的java解决方案
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN111158777B (zh) 组件调用方法、装置及计算机可读存储介质
CN108804236B (zh) 一种aidl文件的共享方法及系统
WO2021097683A1 (zh) 安卓系统启动的方法、装置、设备及存储介质
CN116028163A (zh) 一种容器组的动态链接库调度方法、装置及存储介质
US20220326939A1 (en) Mobile service upgrade method and apparatus, and terminal
CN110908644A (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN110599112A (zh) 一种网络页面开发、维护方法和装置
CN106778270B (zh) 一种恶意应用程序的检测方法及系统
CN113626001A (zh) 一种基于脚本的api动态编排方法及装置
CN108874476B (zh) 一种禁止广告展示的方法及系统
CN113050962B (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
CB02 Change of applicant information

Address after: 516006 TCL science and technology building, No. 17, Huifeng Third Road, Zhongkai high tech Zone, Huizhou City, Guangdong Province

Applicant after: TCL Technology Group Co.,Ltd.

Address before: 516006 Guangdong province Huizhou Zhongkai hi tech Development Zone No. nineteen District

Applicant before: TCL Corp.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant