【技术实现步骤摘要】
一种Android插件框架下不同插件间启动Fragment组件的方法和装置
本申请涉及智能終端屏幕显示领域,具体涉及一种用于不同Android插件间启动Fragment组件的方法。
技术介绍
当前国内Android手机应用软件发展迅速,其中很多大型的应用软件在业务快速发展过程中,遇到2个通用典型问题需要解决:1.从技术上讲,业务逻辑的复杂导致代码量急剧膨胀,各大厂商陆续出到单个应用程序方法数限制上限65536;2.在业务层面上,应用程序更新迭代加快,新的应用程序往往有其时效性,然而功能模块的解耦以及维护团队的分离也是大势所趋,一个应用程序的不同模块往往由多个不同的团队维护,如果每个模块升级新功能都需要对整个应用程序进行升级,则需要较长的时间成本,严重影响应用程序的开发效率。Android插件化技术在此背景下应运而生。目前国内有很多插件化技术框架被广泛应用,具体通过如下方法完成:打包阶段生成多个插件APK和一个主APK;主APK在启动阶段初始化插件技术框架;主APK通过Android四大基本组件(Activity,Service,BroadcastReceiver,ContentProvider)调用插件APK;插件技术框架安装插件APK然后执行。所述插件技术框架所运行的原理,主要有如下两种:静态代理模式,如dynamic-load-APK、Direct-Load-APK等插件技术框架。这种模式的插件技术框架的主要原理是通过在宿主APK中定义Activity组件,代理插件中的Activity组件所有生命周期,保证插件Activity组件正常运行;动态拦截ho ...
【技术保护点】
1.一种Android插件框架下不同插件间启动Fragment组件的方法,其特征在于,包括:系统接收到向Activity组件上添加Fragment组件的命令;根据所述Fragment组件的类名,采用预定的方法,获得其所在的插件包名;根据所述插件包名安装运行所述插件包;使用所述插件包的类加载器加载运行所述Fragment组件。
【技术特征摘要】
1.一种Android插件框架下不同插件间启动Fragment组件的方法,其特征在于,包括:系统接收到向Activity组件上添加Fragment组件的命令;根据所述Fragment组件的类名,采用预定的方法,获得其所在的插件包名;根据所述插件包名安装运行所述插件包;使用所述插件包的类加载器加载运行所述Fragment组件。2.根据权利要求1所述的方法,其特征在于,所述根据所述Fragment组件的类名,采用预定的方法,获得其所在的插件包名的步骤,所述预定的方法为如下方法:启动预先自定义的类加载器;所述自定义的类加载器根据所述Fragment组件的类名查找并解析预先定义好的插件清单文件,获得所述Fragment组件所在插件包名。3.根据权利要求2所述的方法,其特征在于,所述自定义类加载器根据所述Fragment组件的类名查找并解析预先定义好的插件清单文件,获得所述Fragment组件所在插件包名采用如下方式实现:复写所述自定义类加载器中findClass方法,实现对所述预先定义好的插件清单文件的读取;在读取的插件清单文件中,查找所述Fragment组件的类名对应的插件包名。4.根据权利要求2所述的方法,其特征在于,所述启动预先自定义类加载器的过程是通过将代理hook系统类加载器PathClassLoader,替换成自定义类加载器实现启动的。5.根据权利要求1所述的方法,其特征在于,所述根据所述Fragment组件的类名,采用预定的方法,获得其所在的插件包名的步骤,所述预定的方法为如下方法:读取预先在客户端硬编码中定义好的所述Fragment组件的类名与其所在插件包名映射,获得其所在的插件包名。6.根据权利要求1所述的方法,其特征在于,在所述插件包的类加载器加载运行所述Fragment组件的步骤之后,检测所述Fragment组件是否加载成功,若否,则执行以下步骤:所述Fragment组件被替换成预先在主APK定义的代理类;对所述代理类执行实例化,通过反射机制在其构造函数中获取所述Fragment组件的类名;通过所述Fragment组件的类名,获得对应所述Fragment组件的URL链接;实例化系统WebviewFragment组件,将所述URL链接设置进该组件;将所述WebviewFragment组件添加到Activity组件中,替换所述代理类;或者,将所述WebviewFragment组件覆盖在所述代理类的上面,并执行所述WebviewFragment组件。7.根据权利要求6所述的方法,其特征在于,所述通过所述Fragment组件的类名,获得对应所述Fragment组件的URL链接,通过如下方法中的一种实现:读取配置文件中Fragment组件的类名与其所对应的URL链接的映射关系,通过Fragment组件的名称映射,获得对应所述Fragment组件的URL链接;或,将所述Fragment组件的类名传入预先设定好的服务器端,获得服务器端输出的对应所述Fragment组件的URL链接;或,读取预先在客户端硬编码中定义好的Fragment组件的类名与URL链接映射,获得对应所述Fragment组件的URL链接。8.一种Android插件框架下不同插件间启动Fragment组件的装置,其特征在于,包括:接收单元,用于接收来自系统的向Activity组件上添加F...
【专利技术属性】
技术研发人员:黄定磊,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。