CN105955787B - 一种用于Android系统的插件加载方法及装置 - Google Patents

一种用于Android系统的插件加载方法及装置 Download PDF

Info

Publication number
CN105955787B
CN105955787B CN201610331777.5A CN201610331777A CN105955787B CN 105955787 B CN105955787 B CN 105955787B CN 201610331777 A CN201610331777 A CN 201610331777A CN 105955787 B CN105955787 B CN 105955787B
Authority
CN
China
Prior art keywords
plug
unit
class
module
android system
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.)
Expired - Fee Related
Application number
CN201610331777.5A
Other languages
English (en)
Other versions
CN105955787A (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.)
SHENZHEN ZHANGWAN NETWORK TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN ZHANGWAN NETWORK TECHNOLOGY 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 SHENZHEN ZHANGWAN NETWORK TECHNOLOGY Co Ltd filed Critical SHENZHEN ZHANGWAN NETWORK TECHNOLOGY Co Ltd
Priority to CN201610331777.5A priority Critical patent/CN105955787B/zh
Publication of CN105955787A publication Critical patent/CN105955787A/zh
Application granted granted Critical
Publication of CN105955787B publication Critical patent/CN105955787B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种用于Android系统的插件加载方法及装置,包括以下步骤:接收程序或者用户对插件入口的操作指令;根据操作指令,判断插件是否存在;如果判断出插件存在,则启动插件进程解析并运行插件的安装包;启动插件对应的代理类;实例化插件类,并对插件类进行动态注入代理类对应的属性值,以使插件加载完成;对插件类进行生命周期进行回调,完成模拟Android运行时环境。通过插件可以实现将自己的应用分拆,某些功能可以在插件中实现,用到时再进行下载,而且不用预集成或安装。如有新功能添加,不需更新应用,只要预留插件管理,便可通过添加插件的方式,动态更新自己的应用;该功能需要改进或扩展,更新插件即可,无需频繁安装或卸载。

Description

一种用于Android系统的插件加载方法及装置
技术领域
本发明涉及插件技术领域,尤其涉及一种用于Android系统的插件加载方法及装置。
背景技术
在现有技术中,随着Android系统和应用的不断迭代,应用包的体积不断增大,项目越来越臃肿;项目新功能的添加,无法确定与用户匹配性;发生严重异常往往牵一发而动全身,只能紧急发布补丁版本,强制用户进行更新。结果频繁的更新,反而容易降低用户使用黏性。或者是公司业务的不断发展,业务越来越多,需要用户安装的同系应用越来越多,传统方式需要通过安装引导用户下载新应用并安装,给用户操作带来极大的不便,同时转化率较低。
故,有必要提出一种新的技术方案,以解决上述技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种用于Android系统的插件加载方法及装置,旨在解决现有技术中存在的需要用户安装的同系应用越来越多,传统方式需要通过安装引导用户下载新应用并安装,给用户操作带来极大的不便,同时转化率较低的问题。
为解决上述技术问题,本发明实施例提供了以下技术方案:
本发明实施例提供了一种用于Android系统的插件加载方法,所述用于Android系统的插件加载方法,包括以下步骤:
接收程序或者用户对插件入口的操作指令;
根据所述操作指令,判断所述插件是否存在;
如果判断出所述插件存在,则启动插件进程解析并运行所述插件的安装包;
启动所述插件对应的代理类,在所述启动所述插件对应的代理类的步骤之后,进一步包括以下步骤:修改代理类(ProxyActivity)的获取资源(getResources())和资源管理器(getAssets())方法的返回值为相应的插件对象,实现插件Activity中可以获取到APK包中drawable和assets目录下的内容;修改代理类(ProxyActivity)的获取包管理类方法(getPackageManager())的返回值为插件自定义PackageManager,实现在插件中能直接获取到插件本身APK包的PackageInfo等信息;
实例化插件类,并对插件类进行动态注入所述代理类对应的属性值,以使所述插件加载完成,包括:对插件类进行动态注入自定义Instrumentation实现对跳转类的重定向;以及对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互;
对所述插件类进行生命周期进行回调,完成模拟Android运行时环境。
为解决上述技术问题,本发明实施例还提供了以下技术方案:
本发明实施例还提供了一种用于Android系统的插件加载装置,所述用于Android系统的插件加载装置,包括:
接收模块,用于接收程序或者用户对插件入口的操作指令;
判断模块,用于根据所述操作指令,判断所述插件是否存在;
解析模块,用于如果判断出所述插件存在,则启动插件进程解析并运行所述插件的安装包;
启动模块,用于启动所述插件对应的代理类;
注入模块,用于实例化插件类,并对插件类进行动态注入所述代理类对应的属性值,以使所述插件加载完成,所述注入模块包括:注入子模块和对象注入模块,所述注入子模块用于对插件类进行动态注入自定义Instrumentation实现对跳转类的重定向;所述对象注入模块用于对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互;
回调模块,用于对所述插件类进行生命周期进行回调,完成模拟Android运行时环境;
第一修改模块,用于修改代理类(ProxyActivity)的获取资源(getResources())和资源管理器(getAssets())方法的返回值为相应的插件对象,实现插件Activity中可以获取到APK包中drawable和assets目录下的内容;
第二修改模块,用于修改代理类(ProxyActivity)的获取包管理类方法(getPackageManager())的返回值为插件自定义PackageManager,实现在插件中能直接获取到插件本身APK包的PackageInfo等信息。
相对于现有技术,本发明的用于Android系统的插件加载方法及装置,通过插件可以实现将自己的应用分拆,某些功能可以在插件中实现,用到时再进行下载,而且不用预集成或者安装。如果有新功能的添加,不需要更新应用,只要预留插件管理,便可以通过添加插件的方式,动态更新自己的应用;该功能需要改进或扩展,更新插件即可,无需频繁安装或卸载。对应同系应用,正常的引流方式只能引导用户进行新应用的下载和安装;如果使用插件化开发,则无需安装应用,关闭插件功能也十分方便,省去应用安装和卸载的过程,可以实现无缝引流。
附图说明
图1是本发明实施例一提供的用于Android系统的插件加载方法的实现流程示意图;
图2是本发明实施例二提供的用于Android系统的插件加载方法的实现流程示意图;
图3是本发明实施例三提供的用于Android系统的插件加载装置的模块示意图;
图4是本发明实施例四提供的用于Android系统的插件加载装置的模块示意图。
具体实施方式
请参照附图中的图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所示例的本发明的具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。本发明的原理使用许多其它泛用性或特定目的运算、通信环境或组态来进行操作。
本发明提供的用于Android系统的插件加载方法及装置,主要应用于终端设备,如:手机、电脑、个人数字助理(Personal Digital Assistant,PDA)等。
以下将分别进行详细说明。
实施例一
请参阅图1,所示为本发明实施例提供的用于Android系统的插件加载方法。
所述用于Android系统的插件加载方法,应用于终端设备中,具体包括如下步骤:
在步骤S101中,接收程序或者用户对插件入口的操作指令;
在本发明实施例中,插件为:免安装运行的dex或者apk文件。
在步骤S102中,根据所述操作指令,判断所述插件是否存在;
在本发明实施例中,如果判断出所述插件不存在,则下载最新插件。
在步骤S103中,如果判断出所述插件存在,则启动插件进程解析并运行所述插件的安装包;
在本发明实施例中,如果判断出所述插件存在,则进一步判断所述插件是否为最新版本的插件,如果判断出是最新版本的插件,则启动插件进程解析并运行所述插件的安装包。如果判断出不是最新版本的插件,则下载最新插件。
其中,解析所述插件的安装包,初始化该APK的文件包信息(PackageInfo);初始化该APK对应的类装载器(DexClassloader);初始化该APK对应的资源管理器(AssetManager);初始化该APK对应的资源(Resources);借助初始化好的资源管理器(AssetManager)解析APK包中的AndroidManifest.xml配置文件。
在步骤S104中,启动所述插件对应的代理类;
进一步的,修改代理类(ProxyActivity)的获取资源(getResources())和资源管理器(getAssets())方法的返回值为相应的插件对象,实现插件Activity中可以获取到APK包中drawable和assets目录下的内容;修改代理类(ProxyActivity)的获取包管理类方法(getPackageManager())的返回值为插件自定义PackageManager,实现在插件中能直接获取到插件本身APK包的PackageInfo等信息。
在步骤S105中,实例化插件类,并对插件类进行动态注入所述代理类对应的属性值,以使所述插件加载完成;
具体的,通过调用其类装载器(DexClassloader)的装载类(loadClass)的方法实现对插件安装包中类的加载。
在本发明实施例中,所述对插件类进行动态注入所述代理类对应的属性值的步骤,具体包括但不限于以下几点:
对插件类进行动态注入资源及元数据接口,便于运行时实现资源和元数据的存取。
对插件类进行动态注入自定义Instrumentation实现对跳转类的重定向;其中,自定义Instrumentation注入插件Activity中,当插件Activity需要进行跳转时,重定向Intent中指定的类名为相应类型的代理类,再由系统启动代理Activity。
对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互。其中,对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互的步骤,具体包括:通过Java的反射机制将代理Activity动态注入至newInstance生成的Activity类中,将其转变成伪Activity类;此时的插件Activity类可以自主控制ProxyActivity的屏幕(PhoneWindow)
在步骤S106中,对所述插件类进行生命周期进行回调,完成模拟Android运行时环境。
在本发明实施例中,对所述插件类进行生命周期进行回调后,用户与插件便可开始交互。
实施例二
请参阅图2,作为本发明另一实施例,当应用需要增加新功能时,所述方法还包括:
在步骤S201中,获取动态功能列表;
在步骤S202中,检查该列表中的功能对应的插件是否存在;
在步骤S203中,如果存在,则解析所述插件的安装包;如果不存在,则下载该功能对应的插件文件。
在步骤S204中,对插件进行预加载;
在步骤S205中,接收用户选择的功能;
在步骤S206中,启动所述选择的功能对应的插件,此时,用户与新功能便可开始交互。
由上可知,本发明提供的用于Android系统的插件加载方法,通过插件可以实现将自己的应用分拆,某些功能可以在插件中实现,用到时再进行下载,而且不用预集成或者安装。如果有新功能的添加,不需要更新应用,只要预留插件管理,便可以通过添加插件的方式,动态更新自己的应用;该功能需要改进或扩展,更新插件即可,无需频繁安装或卸载。对应同系应用,正常的引流方式只能引导用户进行新应用的下载和安装;如果使用插件化开发,则无需安装应用,关闭插件功能也十分方便,省去应用安装和卸载的过程,可以实现无缝引流。
实施例三
请参阅图3,为本发明实施例提供的用于Android系统的插件加载装置,为了便于说明,仅示出了与本发明实施例相关的部分。所述用于Android系统的插件加载装置包括:接收模块101、判断模块102、解析模块103、启动模块104、注入模块105、回调模块106。所述用于Android系统的插件加载装置可以是内置于终端设备中的软件单元、硬件单元或者是软硬件结合的单元。
接收模块101,用于接收程序或者用户对插件入口的操作指令;
判断模块102,用于根据所述操作指令,判断所述插件是否存在;
解析模块103,用于如果判断出所述插件存在,则启动插件进程解析并运行所述插件的安装包;
启动模块104,用于启动所述插件对应的代理类;
注入模块105,用于实例化插件类,并对插件类进行动态注入所述代理类对应的属性值,以使所述插件加载完成;
回调模块106,用于对所述插件类进行生命周期进行回调,完成模拟Android运行时环境。
作为本发明一实施例,所述用于Android系统的插件加载装置,还包括:
第一修改模块,用于修改代理类(ProxyActivity)的获取资源(getResources())和资源管理器(getAssets())方法的返回值为相应的插件对象,实现插件Activity中可以获取到APK包中drawable和assets目录下的内容;
第二修改模块,用于修改代理类(ProxyActivity)的获取包管理类方法(getPackageManager())的返回值为插件自定义PackageManager,实现在插件中能直接获取到插件本身APK包的PackageInfo等信息。
在本发明实施例中,所述注入模块包括:
注入子模块,用于对插件类进行动态注入自定义Instrumentation实现对跳转类的重定向;以及
对象注入模块,用于对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互。
具体的,
所述对象注入模块,还用于通过Java的反射机制将代理Activity动态注入至newInstance生成的Activity类中,将其转变成伪Activity类;此时的插件Activity类自主控制ProxyActivity的屏幕。
实施例四
请参阅图4,作为本发明另一实施例,所述用于Android系统的插件加载装置,还包括:
获取模块201,用于获取动态功能列表;
检查模块202,用于检查该列表中的功能对应的插件是否存在;
安装包解析模块203,用于如果存在,则解析所述插件的安装包;
加载模块204,用于对插件进行预加载;
功能接收模块205,用于接收用户选择的功能;
插件启动模块206,用于启动所述选择的功能对应的插件。
由上可知,本发明提供的用于Android系统的插件加载装置,通过插件可以实现将自己的应用分拆,某些功能可以在插件中实现,用到时再进行下载,而且不用预集成或者安装。如果有新功能的添加,不需要更新应用,只要预留插件管理,便可以通过添加插件的方式,动态更新自己的应用;该功能需要改进或扩展,更新插件即可,无需频繁安装或卸载。对应同系应用,正常的引流方式只能引导用户进行新应用的下载和安装;如果使用插件化开发,则无需安装应用,关闭插件功能也十分方便,省去应用安装和卸载的过程,可以实现无缝引流。
本发明实施例提供的用于Android系统的插件加载方法及装置属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

Claims (6)

1.一种用于Android系统的插件加载方法,其特征在于,所述用于Android系统的插件加载方法,包括以下步骤:
接收程序或者用户对插件入口的操作指令;
根据所述操作指令,判断所述插件是否存在;
如果判断出所述插件存在,则启动插件进程解析并运行所述插件的安装包;
启动所述插件对应的代理类,在所述启动所述插件对应的代理类的步骤之后,进一步包括以下步骤:修改代理类ProxyActivity的获取资源getResources()和资源管理器getAssets()方法的返回值为相应的插件对象,实现插件Activity中可以获取到APK包中drawable和assets目录下的内容;修改代理类ProxyActivity的获取包管理类方法getPackageManager()的返回值为插件自定义PackageManager,实现在插件中能直接获取到插件本身APK包的PackageInfo信息;
实例化插件类,并对插件类进行动态注入所述代理类对应的属性值,以使所述插件加载完成,包括:对插件类进行动态注入自定义Instrumentation实现对跳转类的重定向;以及对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互;
对所述插件类进行生命周期进行回调,完成模拟Android运行时环境。
2.如权利要求1所述的用于Android系统的插件加载方法,其特征在于,对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互的步骤,具体包括:
通过Java的反射机制将代理Activity动态注入至newInstance生成的Activity类中,将其转变成伪Activity类;此时的插件Activity类自主控制ProxyActivity的屏幕。
3.如权利要求1所述的用于Android系统的插件加载方法,其特征在于,所述用于Android系统的插件加载方法,还包括:
获取动态功能列表;
检查该列表中的功能对应的插件是否存在;
如果存在,则解析所述插件的安装包;
对插件进行预加载;
接收用户选择的功能;
启动所述选择的功能对应的插件。
4.一种用于Android系统的插件加载装置,其特征在于,所述用于Android系统的插件加载装置,包括:
接收模块,用于接收程序或者用户对插件入口的操作指令;
判断模块,用于根据所述操作指令,判断所述插件是否存在;
解析模块,用于如果判断出所述插件存在,则启动插件进程解析并运行所述插件的安装包;
启动模块,用于启动所述插件对应的代理类;
注入模块,用于实例化插件类,并对插件类进行动态注入所述代理类对应的属性值,以使所述插件加载完成,所述注入模块包括:注入子模块和对象注入模块,所述注入子模块用于对插件类进行动态注入自定义Instrumentation实现对跳转类的重定向;所述对象注入模块用于对插件类进行动态注入宿主Window对象实现对插件界面的展示以及交互;
回调模块,用于对所述插件类进行生命周期进行回调,完成模拟Android运行时环境;
第一修改模块,用于修改代理类ProxyActivity的获取资源getResources()和资源管理器getAssets()方法的返回值为相应的插件对象,实现插件Activity中可以获取到APK包中drawable和assets目录下的内容;
第二修改模块,用于修改代理类ProxyActivity的获取包管理类方法getPackageManager()的返回值为插件自定义PackageManager,实现在插件中能直接获取到插件本身APK包的PackageInfo信息。
5.如权利要求4所述的用于Android系统的插件加载装置,其特征在于,
所述对象注入模块,还用于通过Java的反射机制将代理Activity动态注入至newInstance生成的Activity类中,将其转变成伪Activity类;此时的插件Activity类自主控制ProxyActivity的屏幕。
6.如权利要求4所述的用于Android系统的插件加载装置,其特征在于,所述用于Android系统的插件加载装置,还包括:
获取模块,用于获取动态功能列表;
检查模块,用于检查该列表中的功能对应的插件是否存在;
安装包解析模块,用于如果存在,则解析所述插件的安装包;
加载模块,用于对插件进行预加载;
功能接收模块,用于接收用户选择的功能;
插件启动模块,用于启动所述选择的功能对应的插件。
CN201610331777.5A 2016-05-18 2016-05-18 一种用于Android系统的插件加载方法及装置 Expired - Fee Related CN105955787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610331777.5A CN105955787B (zh) 2016-05-18 2016-05-18 一种用于Android系统的插件加载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610331777.5A CN105955787B (zh) 2016-05-18 2016-05-18 一种用于Android系统的插件加载方法及装置

Publications (2)

Publication Number Publication Date
CN105955787A CN105955787A (zh) 2016-09-21
CN105955787B true CN105955787B (zh) 2019-11-22

Family

ID=56912164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610331777.5A Expired - Fee Related CN105955787B (zh) 2016-05-18 2016-05-18 一种用于Android系统的插件加载方法及装置

Country Status (1)

Country Link
CN (1) CN105955787B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951284B (zh) * 2017-03-14 2020-09-11 深圳创维-Rgb电子有限公司 基于安卓系统应用的用户界面升级方法、装置及智能终端
CN107153536B (zh) * 2017-03-31 2021-05-07 北京三快在线科技有限公司 一种应用处理方法及装置
CN107992308B (zh) * 2017-11-22 2020-10-20 竞技世界(北京)网络技术有限公司 一种安卓终端应用程序的插件化管理方法
CN107861742A (zh) * 2017-12-05 2018-03-30 杭州传信网络科技有限公司 一种程序的运行方法和终端设备
CN108491236A (zh) * 2018-03-23 2018-09-04 努比亚技术有限公司 一种插件加载方法、装置及计算机可读存储介质
CN108595203B (zh) * 2018-04-28 2024-04-19 努比亚技术有限公司 应用功能执行方法、移动终端和计算机可读存储介质
CN109213582A (zh) * 2018-07-16 2019-01-15 北京奇虎科技有限公司 一种运行服务组件的方法、装置及终端
CN109101256A (zh) * 2018-08-01 2018-12-28 北京奇安信科技有限公司 一种代理Agent动态加载方法及装置
CN109358973B (zh) * 2018-09-29 2020-12-22 网易(杭州)网络有限公司 信息处理方法、系统、介质和计算设备
CN110764836B (zh) * 2019-09-18 2024-02-09 华为技术有限公司 插件实现的方法和插件实现的系统
CN111338708A (zh) * 2020-02-25 2020-06-26 安徽以萨数据技术有限公司 基于安卓插件的应用程序处理方法、客户端及系统
CN111813476B (zh) * 2020-06-30 2024-04-05 中天掌金(北京)科技有限公司 一种基于安卓负一屏的手机银行应用方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN104714828A (zh) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 应用安装、运行方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049986B (zh) * 2013-03-14 2018-12-18 腾讯科技(深圳)有限公司 插件加载方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN104714828A (zh) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 应用安装、运行方法及装置

Also Published As

Publication number Publication date
CN105955787A (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
CN105955787B (zh) 一种用于Android系统的插件加载方法及装置
US9342492B1 (en) Methods and systems for the provisioning and execution of a mobile software application
Komatineni et al. Pro Android 4
US7810105B2 (en) Method and apparatus for running different types of applications on a wireless mobile device
US8538398B2 (en) Method and system for customizing a user interface of a mobile device
CA2495024C (en) System and method for adaptable provisioning of generic application content
US8875106B2 (en) Automated testing process
CN107402788B (zh) 资源打包管理方法与装置
US10048960B2 (en) Identifying source code used to build executable files
CN109408136A (zh) 信息处理方法、装置、存储介质及电子设备
US10534817B2 (en) Sharing a process in a web client
WO2019205828A1 (zh) Android服务框架、实现扩展服务的方法及装置
US8990710B1 (en) Building native computer applications using a browser platform
US8387039B2 (en) System and method for customized provisioning of application content
CN107861742A (zh) 一种程序的运行方法和终端设备
US20050197157A1 (en) System enabling easy application development on mobile devices
KR20060124047A (ko) 멀티 운영체제 로딩을 지원하는 이동통신 단말기 및 그방법
CN112148826A (zh) 在业务中集成地图服务的方法、装置、设备和存储介质
KR101392907B1 (ko) 휴대폰의 소프트웨어 관리 방법
CA2594600C (en) System and method for adaptive theming of a mobile device
Agarwal et al. MobiVine: a middleware layer to handle fragmentation of platform interfaces for mobile applications.
KR20170020366A (ko) 구독자 정의 동적 이벤팅 기법
Skogberg Android application development
Vavru et al. Android programming: Complete application programming guide
US8572561B1 (en) Multiple java ME MIDlet execution in single-instance CLDC JVM

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191122

CF01 Termination of patent right due to non-payment of annual fee