[发明专利]一种桌面应用程序插件化的实现方法有效
申请号: | 201610234646.5 | 申请日: | 2016-04-14 |
公开(公告)号: | CN105912366B | 公开(公告)日: | 2019-07-05 |
发明(设计)人: | 邓裕强;张杰敏;郑相灿;蒋旭文;谭文浩 | 申请(专利权)人: | 广州久邦世纪科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510055 广东省广州市越*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种桌面应用程序插件化的实现方法,包括:S1在桌面主程序中加入DroidPlugin框架;S2在主程序的Application的onCreate方法中初始化DroidPlugin模块;S3通过DroidPlugin中InstallPackage方法模拟系统的安装方式安装第三方应用程序;S4主程序进程监控S3中的信息流,在程序向系统抛出真实的启动方式之前进行拦截,步骤S2中的安装管理通过包名判断此次启动的组件是否属于已插件化安装的应用程序,如果是,则对启动方式进行替换;S5Android系统在收到新的Intent之后进行解析,对第三方应用程序进行初始化打开,以实现应用程序的插件化。 | ||
搜索关键词: | 一种 桌面 应用程序 插件 实现 方法 | ||
【主权项】:
1.一种桌面应用程序插件化的实现方法,其特征在于,所述方法包括以下步骤:S1、在桌面主程序中加入DroidPlugin框架;S2、在主程序的Application的onCreate方法中初始化DroidPlugin模块,此时DroidPlugin会对主程序的进程中的IActivityManager、IPackageManager以及WIFI、Notification、Windows相关的模块进行替换,使得主进程与系统ActivityManagerService和PackageManagerService的底层信息流可以在DroidPlugin模块内监控;S3、通过DroidPlugin中InstallPackage方法模拟系统的安装方式,把第三方应用程序的安装包中资源解压并拷贝到主程序的私有目录中,并将该应用程序信息加入到主程序已安装程序的列表中,此时,主程序已安装程序列表包含系统原有的安装程序加上通过DroidPlugin安装的程序;当主程序需要启动已模拟安装的应用程序中的任一Activity、Service、Provider、Broadcast组件时,只需要按照Android系统规定的方式启动;S4、主程序进程监控步骤S3中的信息流,在程序向系统抛出真实的启动方式之前进行拦截,此时步骤S2中的安装管理通过包名判断此次启动的组件是否属于已插件化安装的应用程序,如果是,则对启动方式进行替换,新建一个Intent,将启动的对象替换为启动DroidPlugin中的组件,并把真实的启动Intent对象,包含在这个新的Intent中;S5、Android系统在收到新的Intent之后进行解析,发现这个Intent启动的对象是DroidPlugin的已经注册的组件时,系统为这个组件进行初始化,并最终又把Intent传回到主程序中,主程序在接收到已经经过系统处理的Intent之后,把之前存入的真实启动Intent对象取出,并利用反射的方式,对第三方应用程序进行初始化,并最终打开第三方应用程序中组件,达到不安装就可以打开第三方应用程序的目的,以实现应用程序的插件化;所述方法还包括对插件应用程序的进程内存释放的管理,具体包括以下步骤:在ActivityThread进程中,对mInstrumentation对象使用JAVA中的Proxy代理原理进行挂钩,Activity的生命周期通过代理通知控制模块;当mInstrumentation中调用onActivityCreate时,记录此时的pid进程号,同时记录当前Activity的类名到以Pid为key的数组中,并且遍历当前的数组,找到其他Pid,如果此进程不属于桌面应用程序独立化之后的账号服务进程,则调用Android系统提供的killProcess,杀死其它的进程;mInstrumentation调用onActivityDestory时,表示Activity已经被系统销毁,此时找到以Pid为Key的对应的Activity数组,将对应Activity类名移除,如果此时这个数组的数量为0,并且如果此进程不属于桌面应用程序独立化之后的账号服务进程,则调用Android系统提供的killProcess的方法,杀死这个进程,否则不做操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州久邦世纪科技有限公司,未经广州久邦世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610234646.5/,转载请声明来源钻瓜专利网。
- 上一篇:防止安装包误下载方法
- 下一篇:应用程序封装方法及装置