CN104731600A - 一种将安卓***服务插件化的实现方法 - Google Patents
一种将安卓***服务插件化的实现方法 Download PDFInfo
- Publication number
- CN104731600A CN104731600A CN201510146746.8A CN201510146746A CN104731600A CN 104731600 A CN104731600 A CN 104731600A CN 201510146746 A CN201510146746 A CN 201510146746A CN 104731600 A CN104731600 A CN 104731600A
- Authority
- CN
- China
- Prior art keywords
- service
- plug
- unit
- android
- implementation method
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及到嵌入式设备上搭建安卓***的技术领域,尤其是一种将安卓***服务插件化的实现方法,其实施流程的具体步骤是:安卓服务插件化开始;启动配置文件中支持进程启动配置化;AndroidManifest.xml中支持组件启动配置化;统核心服务进程中支持插件服务加载框架;产品目录下支持服务、进程的配置文件和默认值;定义各个服务之间的依赖规则;编写***运行时配置解析模块;***支持运行期调试的相关服务插件化;服务插件化实现结束。基于目前市场上的安卓主力发行版本Android4.4优化后,最精简的***启动后的内存减少100M左右,按照比例有30%的提升。***启动时间减少2s,也有10%的提升。
Description
技术领域
本发明涉及到嵌入式设备上搭建安卓***的技术领域,更具体的说,是提供了一种可方便地针对不同产品需求定制***服务的方法,可在节省硬件资源的同时提升***性能。
背景技术
自从安卓发布第一个版本以来,***的碎片化和兼容性一直是谷歌的工程师致力解决的问题,经历数个版本的更替,当前的版本无论是在兼容性还是稳定性上都有了极大的提升。已经兼容了手机、平板的不同规格的产品,针对不同分类设备的兼容工作也已经在最新的版本中得到体现。但随之而来的问题是庞大的服务框架使***显得过于臃肿,占用了宝贵的硬盘空间、拖慢了***的运行速度、消耗更多的电池电量。而这些也正是广大安卓用户一直诟病的地方。
如图1是安卓原生的服务结构图,上层服务的主要通过服务管理程序(ServiceManager)相互通讯,底层通讯的实现则是基于内核的Binder驱动完成。***服务主要有两部分组成,一部分上层应用、服务管理的服务集中在***服务(SystemServer)这个***核心进程中,另外一部分功能相对独立的服务则分散在其它的本地(Native)进程中。原生***提供了全面的功能来兼容不同平台的需求,仅SystemServer一项就启动了接近50个服务,但实际上很大一部分服务在特定硬件平台上并没有存在的必要。
图2为原生安卓启动后各个进程占用内存比例图,所采用的***为版本为Android-4.4.2,主要用于说明纯净的安卓平台启动后各个进程所消耗的内存资源,该数据的分析结果是本发明进行性能优化工作的前提。
图3为安卓***服务插件化流程分析,其实现方式大致可以分为三个过程分析。分别为***服务插件化分析、***插件化服务框架启动、***服务调用流程。以下是调用步骤。
步骤S301、***服务插件化分析开始。这一部分是实现安卓服务插件化的前提条件。安卓的***服务框架博大精深,要实现插件化的服务框架必须对整个***服务有深入的了解和分析。
步骤S302、***服务必要性分析。安卓原生服务杂揉在一起,服务之间的依赖关系错综复杂,必须先对解除***服务间的相互依赖关系才能实现***服务的插件化管理。这一部分正是解除***服务间的相互依赖关系,同时分离出***的核心服务。图4给出了可以参与插件化的***服务集成的分析结果。
步骤S303、***服务占用资源分析。除了依据图2总结的***进程占用内存资源分析结果以外,还需要梳理SystemServer进程中每个服务占用的***资源,从而归纳出每个服务占用***资源的贡献值。
步骤S304、***服务配置化实现。该步骤是本发明的关键所在,依据上面两步归纳的结果为指导思想,归纳出可以参与配置化的***服务、进程,根据硬件平台特性定义出服务对应的配置选项。编写插件化服务运行时解析框架,编写插件化服务框架。
步骤S305、***服务配置文件编写。该步骤主要是编写配置文件编译时解析框架,以提供***运行时插件框架读取服务配置。
步骤S306、***服务配置化结束。至此整个***插件化的静态实现基本完成。开发者可以根据特定的硬件平台来定义***服务的配置文件了。
步骤S311、***启动。该部分描述了***运行时整个插件化服务框架的工作流程。
步骤S312、配置文件解析。配置文件的解析主要包括配置文件的加载、配置文件的合法性检查、配置文件的客制化更新等。
步骤S313、配置服务依赖性分析。该部分主要根据S302分析出的***服务依赖规则来检查配置文件的合理性,同时给出兼容性措施。
步骤S314、启动插件式服务框架。启动S304编写的插件式启动框架。
步骤S315、启动插件式服务。根据S312和S313分析的配置文件结果,来启动对应的插件服务。
步骤S316、***启动完成。***服务插件框架启动成功,等待客户端调用。
步骤S321、客户端服务调用开始。该步骤描述了***插件化服务框架下客户端调用服务的基本流程。
步骤S322、本地服务代理。每一个插件化的服务都有一个本地代理服务与之对应,以屏蔽服务插件化的技术细节。
步骤S323、插件式服务检查。检查调用的服务是否已经在插件化服务框架中启动。
步骤S324、服务依赖检查。检查调用服务所依赖的其它服务是否已经正常启动。
步骤S325、***服务调用权限检查。检查客户端是否有调用服务相关接口的权限。
步骤S326、服务调用失败。
步骤S326、服务调用成功。
考虑到不同客户对***的定制要求以及特定的硬件环境,在不影响***基本功能的前提下,将***的服务抽象成可配置化的框架,方案集成厂商可以根据其需求定制不同的服务或是添加私有服务,以到达减少***的开销、优化用户体验的目的成为技术发展的一个方向。
发明内容
本发明主要提供了一种通用的将安卓***服务插件化的实现框架,将安卓本身庞大的服务架构抽象成可配置的结构。基于本发明提供的方法,在定制不同产品的安卓***时,可按照不同产品需求通过配置文件快速的增减***服务,使得运行在不同硬件平台上的***均为最精简的***,且达到提高***运行速度与启动速度、减少磁盘和内存占用空间、延长电池使用寿命的目的。
本发明的具体技术方案如下:
一种将安卓***服务插件化的实现方法,其实施流程的具体步骤是:
步骤S501、安卓服务插件化开始;
步骤S502、init.rc中支持进程启动配置化。在init.rc中增加进程的启动参数描述,以支持进程启动的配置化。具体需要修改init.c中关于配置文件的解析部分。
步骤S503、AndroidManifest.xml中支持Activity启动配置化。安卓中部分启动服务是通过接收开机消息启动的,因此需要修改PackageParser中关于应用程序包的解析逻辑,以支持服务或者组件启动的配置化。
步骤S504、SystemServer中支持插件服务加载框架。SystemServer中含有大量的启动服务,为了支持插件化的服务启动,需要额外编写插件化服务加载框架。具体需要修改SystemServer中的main函数,添加插件化服务框架线程,添加服务的加载、卸载、更新、查询、权限检查逻辑。
步骤S505、product目录下支持服务、进程的配置文件和默认值。此项工作需要在编译前进行,具体根据图4中总结的可插件化的服务添加宏选项来控制对应的服务是否启动。
步骤S506、定义各个服务之间的依赖规则。***服务参与插件化的前提是不与依赖服务冲突,所以必须事先定义好服务之间的依赖规则,避免部分服务因为依赖服务未启动而发生错误。
步骤S507、编写***运行时配置解析模块。配置文件是编译时生成的,该步骤实现了配置文件在运行期的解析和加载,具体需要修改***的propertyservice服务,利用***已有的属性查询***来实现配置文件的转化动作。
步骤S508、***支持运行期调试的相关服务插件化。基于最终提供给用户的***实际是不需要任何调试模块的。***中典型的调试服务是在SystemServer中启动的SamplingProfilerService服务,主要提供性能统计分析用。
步骤S509、电池相关模块插件化。一些安卓衍生类产品上并没有电池相关模块,所以裁剪这一部分会节省***不必要的***开销。具体的操作涉及到禁用SystemServer中的BatteryService和init.rc文件中启动的healthd进程。
步骤S510、Drm相关模块插件化。目前国内大部分的影像产品是没有采用采用版权加密的,所以在特定的应用环境下这一部分的相关服务也是可以裁剪的。具体的需要在init.rc中为启动进程drmserver增加配置选项。
步骤S511、电话相关模块插件化。目前安卓的众多产品中,除了手机有射频通讯模块外,其它的产品如盒子、平板、导航仪等众多设备基本是不需要电话相关模块的,所以裁剪电话模块对这些产品来说是很有意义的。具体需要裁剪SystemServer中的TelephonyRegistry,禁止packages/services/下的PhoneApp启动,禁止packages/apps/Mms/下的Mms中关于BOOT_COMPLETED的启动逻辑。如此整个电话***在裁剪后的***中不会占用任何***资源。
步骤S512、蓝牙相关模块插件化。一些非移动设备上并没有蓝牙模块,那么针对这些产品上裁剪安卓本身的蓝牙相关支持会减少***不必要的开销。具体的操作是在为SystemServer进程中启动的BluetoothManagerService增加配置选项。
步骤S513、状态栏相关服务插件化。除了手机、平板等产品需要状态栏相关服务外,其它的一些衍生类产品如盒子、导航仪等都不需要状态栏服务,因此有必要增加统一的选项控制这项功能。具体的操作是为SystemServer中startSystemUi函数和StatusBarManagerService服务增加配置选项,同时禁止SystemUI.apk的开机启动。
步骤S514、壁纸相关服务插件化。具体的操作一个是不启动SystemServer进程中的WallpaperManagerService服务,另外一个是处理WindowManagerService的开机流程中等待WallPapaer部分的逻辑。
步骤S515、打印相关服务插件化。具体的操作是为SystemServer进程中启动的PrintManagerService增加配置选项。
步骤S516、锁屏相关服务插件化。具体操作是在PhoneWindowManager中禁止KeyguardServiceDelegate的启动。同时禁止Keyguard.apk的启动。
步骤S517、WAP相关服务插件化。随着智能手机和网络的快速发展,WAP及WAP浏览器似乎会成为历史。具体操作是为WapPushOverSms接收开机启动消息增加配置选项。
步骤S518、服务插件化实现结束。
优点和积极效果
本发明提供的方法能满足不同客户对Android***的定制化需求,插件化的服务可以方便地利用配置文件进行***服务的深度定制;在满足不同产品需求的同时,也达到精简***及减少硬件资源消耗从而进一步提升了***性能的目的。
基于目前市场上的安卓主力发行版本Android4.4优化后,最精简的***启动后的内存减少100M左右,按照比例有30%的提升。***启动时间减少2s,也有10%的提升。
附图说明
图1是安卓原生的服务结构图;
图2为原生安卓启动后各个进程占用内存比例图;
图3安卓***服务插件化流程分析图;
图4;给出了可以参与插件化的***服务集成的分析结果,即安卓***服务插件化可裁剪服务一览;
图5为本发明安卓***服务插件化的实现方式示意图。
具体实施方式
如图5所示,是安卓***服务插件化的实现方法,其实施流程的具体步骤是经过了对安卓原生***启动进程、***服务的逐个分析梳理后总结下来的结果:
步骤S501、安卓服务插件化开始。
步骤S502、init.rc中支持进程启动配置化。在init.rc中增加进程的启动参数描述,以支持进程启动的配置化。具体需要修改init.c中关于配置文件的解析部分。
步骤S503、AndroidManifest.xml中支持Activity启动配置化。安卓中部分启动服务是通过接收开机消息启动的,因此需要修改PackageParser中关于应用程序包的解析逻辑,以支持服务或者组件启动的配置化。
步骤S504、SystemServer中支持插件服务加载框架。SystemServer中含有大量的启动服务,为了支持插件化的服务启动,需要额外编写插件化服务加载框架。具体需要修改SystemServer中的main函数,添加插件化服务框架线程,添加服务的加载、卸载、更新、查询、权限检查逻辑。
步骤S505、product目录下支持服务、进程的配置文件和默认值。此项工作需要在编译前进行,具体根据图4中总结的可插件化的服务添加宏选项来控制对应的服务是否启动。
步骤S506、定义各个服务之间的依赖规则。***服务参与插件化的前提是不与依赖服务冲突,所以必须事先定义好服务之间的依赖规则,避免部分服务因为依赖服务未启动而发生错误。
步骤S507、编写***运行时配置解析模块。配置文件是编译时生成的,该步骤实现了配置文件在运行期的解析和加载,具体需要修改***的propertyservice服务,利用***已有的属性查询***来实现配置文件的转化动作。
步骤S508、***支持运行期调试的相关服务插件化。基于最终提供给用户的***实际是不需要任何调试模块的。***中典型的调试服务是在SystemServer中启动的SamplingProfilerService服务,主要提供性能统计分析用。
步骤S509、电池相关模块插件化。一些安卓衍生类产品上并没有电池相关模块,所以裁剪这一部分会节省***不必要的***开销。具体的操作涉及到禁用SystemServer中的BatteryService和init.rc文件中启动的healthd进程。
步骤S510、Drm相关模块插件化。目前国内大部分的影像产品是没有采用采用版权加密的,所以在特定的应用环境下这一部分的相关服务也是可以裁剪的。具体的需要在init.rc中为启动进程drmserver增加配置选项。
步骤S511、电话相关模块插件化。目前安卓的众多产品中,除了手机有射频通讯模块外,其它的产品如盒子、平板、导航仪等众多设备基本是不需要电话相关模块的,所以裁剪电话模块对这些产品来说是很有意义的。具体需要裁剪SystemServer中的TelephonyRegistry,禁止packages/services/下的PhoneApp启动,禁止packages/apps/Mms/下的Mms中关于BOOT_COMPLETED的启动逻辑。如此整个电话***在裁剪后的***中不会占用任何***资源。
步骤S512、蓝牙相关模块插件化。一些非移动设备上并没有蓝牙模块,那么针对这些产品上裁剪安卓本身的蓝牙相关支持会减少***不必要的开销。具体的操作是在为SystemServer进程中启动的BluetoothManagerService增加配置选项。
步骤S513、状态栏相关服务插件化。除了手机、平板等产品需要状态栏相关服务外,其它的一些衍生类产品如盒子、导航仪等都不需要状态栏服务,因此有必要增加统一的选项控制这项功能。具体的操作是为SystemServer中startSystemUi函数和StatusBarManagerService服务增加配置选项,同时禁止SystemUI.apk的开机启动。
步骤S514、壁纸相关服务插件化。具体的操作一个是不启动SystemServer进程中的WallpaperManagerService服务,另外一个是处理WindowManagerService的开机流程中等待WallPapaer部分的逻辑。
步骤S515、打印相关服务插件化。具体的操作是为SystemServer进程中启动的PrintManagerService增加配置选项。
步骤S516、锁屏相关服务插件化。具体操作是在PhoneWindowManager中禁止KeyguardServiceDelegate的启动。同时禁止Keyguard.apk的启动。
步骤S517、WAP相关服务插件化。随着智能手机和网络的快速发展,WAP及WAP浏览器似乎会成为历史。具体操作是为WapPushOverSms接收开机启动消息增加配置选项。
步骤S518、服务插件化实现结束。
经过了以上步骤的优化后,得到了一个满足需求后的最小化***,比之安卓原生***不仅在体积上小了很多,运行起来也变得更加流畅,更重要的是插件化的服务体系为OEM厂商带来了服务可定制的功能。
Claims (12)
1.一种将安卓***服务插件化的实现方法,其实施流程的具体步骤是:
步骤S501、安卓服务插件化开始;
步骤S502、启动配置文件中支持进程启动配置化;
步骤S503、AndroidManifest.xml中支持组件启动配置化;
步骤S504、统核心服务进程中支持插件服务加载框架;
步骤S505、产品目录下支持服务、进程的配置文件和默认值;
步骤S506、定义各个服务之间的依赖规则;
步骤S507、编写***运行时配置解析模块;
步骤S508、***支持运行期调试的相关服务插件化;
步骤S509、电池相关模块插件化;
步骤S510、多媒体加密相关模块插件化;
步骤S511、电话相关模块插件化;
步骤S512、蓝牙相关模块插件化;
步骤S513、状态栏相关服务插件化;
步骤S514、壁纸相关服务插件化;
步骤S515、打印相关服务插件化;
步骤S516、锁屏相关服务插件化;
步骤S517、网页推送相关服务插件化;
步骤S518、服务插件化实现结束。
2.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S507编写***运行时配置解析模块是修改***的属性查询服务,利用***已有的属性查询***来实现配置文件的转化动作。
3.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S508***支持运行期调试的相关服务插件化是在***核心服务中启动的性能分析服务。
4.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S509电池相关模块插件化是禁用***服务中的电池服务和启动配置文件文件中启动的电池守护进程。
5.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S510多媒体加密相关模块插件化是在启动配置文件中为启动进程多媒体加密服务增加配置选项。
6.步根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S511电话相关模块插件化是裁剪***服务中的电话分发服务,禁止packages/services/下的PhoneApp启动,禁止packages/apps/Mms/下的Mms中关于BOOT_COMPLETED的启动逻辑。
7.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S512蓝牙相关模块插件化是在为***服务进程中启动的蓝牙管理器服务增加配置选项。
8.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S513状态栏相关服务插件化是为***服务中startSystemUi函数和状态栏管理服务增加配置选项,同时禁止SystemUI.apk的开机启动。
9.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S514壁纸相关服务插件化是不启动***服务进程中的壁纸管理服务,和处理窗口管理服务的开机流程中等待壁纸部分的逻辑。
10.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S515打印相关服务插件化是为***服务进程中启动电话窗口管理器的打印管理服务增加配置选项。
11.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S516锁屏相关服务插件化是在电话窗口管理器中禁止解锁进程的启动,同时禁止Keyguard.apk的启动。
12.根据权利要求1所述的将安卓***服务插件化的实现方法,其特征在于,所述步骤S517网页推送相关服务插件化是为网页推送服务接收开机启动消息增加配置选项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510146746.8A CN104731600A (zh) | 2015-03-31 | 2015-03-31 | 一种将安卓***服务插件化的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510146746.8A CN104731600A (zh) | 2015-03-31 | 2015-03-31 | 一种将安卓***服务插件化的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104731600A true CN104731600A (zh) | 2015-06-24 |
Family
ID=53455519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510146746.8A Pending CN104731600A (zh) | 2015-03-31 | 2015-03-31 | 一种将安卓***服务插件化的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731600A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376647A (zh) * | 2015-11-30 | 2016-03-02 | 福建新大陆通信科技股份有限公司 | 一种机顶盒嵌入android***构架的方法 |
CN105912366A (zh) * | 2016-04-14 | 2016-08-31 | 广州市久邦数码科技有限公司 | 一种桌面应用程序插件化的实现方法 |
CN109254856A (zh) * | 2018-08-30 | 2019-01-22 | 深圳大势智能科技有限公司 | 智能pos服务端提供接口给客户端的方法 |
CN114327652A (zh) * | 2021-12-24 | 2022-04-12 | 杭州荣旗科技有限公司 | 一种基于Android工业应用的快速启动方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057890A1 (en) * | 2008-08-29 | 2010-03-04 | Dehaan Michael Paul | Methods and systems for assigning provisioning servers in a software provisioning environment |
CN103530156A (zh) * | 2013-10-17 | 2014-01-22 | 北京奇虎科技有限公司 | 动态加载和调用程序的方法及装置 |
CN104035766A (zh) * | 2014-05-23 | 2014-09-10 | 四川长虹电器股份有限公司 | 基于覆盖率测试的android***裁剪方法 |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
-
2015
- 2015-03-31 CN CN201510146746.8A patent/CN104731600A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057890A1 (en) * | 2008-08-29 | 2010-03-04 | Dehaan Michael Paul | Methods and systems for assigning provisioning servers in a software provisioning environment |
CN103530156A (zh) * | 2013-10-17 | 2014-01-22 | 北京奇虎科技有限公司 | 动态加载和调用程序的方法及装置 |
CN104035766A (zh) * | 2014-05-23 | 2014-09-10 | 四川长虹电器股份有限公司 | 基于覆盖率测试的android***裁剪方法 |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376647A (zh) * | 2015-11-30 | 2016-03-02 | 福建新大陆通信科技股份有限公司 | 一种机顶盒嵌入android***构架的方法 |
CN105376647B (zh) * | 2015-11-30 | 2018-05-18 | 福建新大陆通信科技股份有限公司 | 一种机顶盒嵌入android***构架的方法 |
CN105912366A (zh) * | 2016-04-14 | 2016-08-31 | 广州市久邦数码科技有限公司 | 一种桌面应用程序插件化的实现方法 |
CN105912366B (zh) * | 2016-04-14 | 2019-07-05 | 广州久邦世纪科技有限公司 | 一种桌面应用程序插件化的实现方法 |
CN109254856A (zh) * | 2018-08-30 | 2019-01-22 | 深圳大势智能科技有限公司 | 智能pos服务端提供接口给客户端的方法 |
CN109254856B (zh) * | 2018-08-30 | 2020-11-06 | 深圳大势智能科技有限公司 | 智能pos服务端提供接口给客户端的方法 |
CN114327652A (zh) * | 2021-12-24 | 2022-04-12 | 杭州荣旗科技有限公司 | 一种基于Android工业应用的快速启动方法 |
CN114327652B (zh) * | 2021-12-24 | 2023-11-10 | 杭州荣旗科技有限公司 | 一种基于Android工业应用的快速启动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853820B2 (en) | Cross-process communication method, apparatus, and device | |
CN112861057A (zh) | 基于小程序的页面渲染方法、装置、设备及存储介质 | |
CN107291456B (zh) | 一种多屏显示的控制方法及*** | |
US20140047256A1 (en) | Terminal device and method for operating the same | |
KR102193404B1 (ko) | 상호작용 개발 환경으로부터의 소프트웨어 아티팩트의 점진적 컴파일링 기법 | |
WO2010113160A1 (en) | A method and system for emulating desktop software applications in a mobile communication network | |
EP4280048A1 (en) | Page rendering method and apparatus, electronic device, computer-readable storage medium, and computer program product | |
CN111625289B (zh) | 应用程序快速启动方法、装置和电子设备 | |
CN104704468A (zh) | Web应用程序的跨***安装 | |
CN104731600A (zh) | 一种将安卓***服务插件化的实现方法 | |
CN111611513B (zh) | 一种基于用户身份信息的页面展示方法、装置和电子设备 | |
CN103443763A (zh) | 包含对重写虚拟函数的调用的支持的isa桥接 | |
WO2020014926A1 (zh) | 一种补丁包生成方法及设备 | |
CN104699503A (zh) | 一种替换安卓***中函数的执行逻辑的方法及装置 | |
CN111625312A (zh) | 一种app换肤方法、装置、电子设备及存储介质 | |
JP6042454B2 (ja) | ユーザ生成によるデータセンターの省電力 | |
JP6002302B2 (ja) | Webアプリケーション生成システム、Webアプリケーション生成システムの制御方法、Webアプリケーション生成システムのプログラム、Webアプリケーション生成装置、Webアプリケーション生成装置の制御方法、およびWebアプリケーション生成装置のプログラム | |
Cimino et al. | An efficient model-based methodology for developing device-independent mobile applications | |
CN102779059A (zh) | 塞班客户端上启动应用的方法和装置 | |
CN102508665B (zh) | 绘制应用程序视图的方法和装置 | |
CN115509531A (zh) | 基于前端技术的微前端实现方法、装置、终端及存储介质 | |
CN115469849A (zh) | 一种业务处理***、方法、电子设备和存储介质 | |
CN102043677B (zh) | 双操作***平行处理的方法 | |
CN111857782B (zh) | 界面更新方法、装置、计算机设备和存储介质 | |
CN114090002A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150624 |