加载插件SDK的方法、系统及客户端技术方案

技术编号:16128443 阅读:85 留言:0更新日期:2017-09-01 20:39
本发明专利技术涉及一种加载插件SDK的方法和系统及客户端。该加载插件SDK的方法,包括以下步骤:获取当前应用的至少一个更新的插件SDK;当重新启动当前应用时,对每个所述更新的插件SDK执行动态加载的步骤;动态加载的步骤包括:将更新的插件SDK的代码与当前应用的代码合并;将更新的插件SDK的本地库与当前应用的本地库合并;将更新的插件SDK的资源与当前应用的资源合并。上述的加载插件SDK的方法和系统及客户端,能够实现功能软件开发与应用的解耦,使得应用更加高效和安全。

Method, system and client for loading plug-in SDK

The invention relates to a method, a system and a client for loading plug-in SDK. The method of loading the plug-in SDK, which comprises the following steps: at least one update for the current application plug-in SDK; when restarting the current application, for each of the updated plug-in SDK to perform dynamic load steps; dynamic loading method comprises the following steps: will update the SDK plug-in code and the application code merged; the local library and the application of the local library with updated plugin SDK; will update the SDK plug-in resources and current application resources. The loading plug-in SDK, the system and the client can realize the decoupling of the function software development and application, and make the application more efficient and safe.

【技术实现步骤摘要】
加载插件SDK的方法、系统及客户端
本专利技术涉及智能终端
,特别是涉及一种加载插件SDK的方法、系统及客户端。
技术介绍
目前应用接入第三方SDK(SoftwareDevelopmentKit,软件开发工具包)的主要方式是应用直接硬编码静态加载第三方SDK。而静态加载第三方SDK是在应用发布时,将应用本身的逻辑和第三方SDK的代码、资源合并在一个apk(AndroidPackage,Android安装包)发布到应用市场。一旦发布,这个apk将无法修改,apk封装的第三方SDK也无法修改,如果第三方SDK出现bug(问题)时,或者,当第三方SDK升级时,需要将应用原始工程与更新的第三方SDK重新融合形成新的apk再发布。这种方式中,功能软件开发与应用的耦合性较高,操作较为复杂,使得无法及时修复bug。并且,当第三方SDK频繁升级时,采用这种方式频繁升级客户端,操作复杂,维护不便,运营成本较高。
技术实现思路
基于此,有必要针对上述技术问题,提供一种加载插件SDK的方法、系统及客户端,其能够实现功能软件开发与应用的解耦,使得应用更加高效和安全。一种加载插件SDK的方法,包括以下步骤:获取当前应用的至少一个更新的插件SDK;当重新启动所述当前应用时,对每个所述更新的插件SDK执行动态加载的步骤;所述动态加载的步骤包括:将所述更新的插件SDK的代码与所述当前应用的代码合并;将所述更新的插件SDK的本地库与所述当前应用的本地库合并;将所述更新的插件SDK的资源与所述当前应用的资源合并。在其中一些实施例中,所述将所述更新的插件SDK的资源与所述当前应用的资源合并的步骤包括:通过反射调用应用程序资源管理器的成员函数将所述更新的插件SDK的资源加载到所述当前应用的资源对象中。在其中一些实施例中,所述将所述更新的插件SDK的本地库与所述当前应用的本地库合并的步骤包括:通过反射类加载器,将所述更新的插件SDK的本地库路径添加到所述当前应用的本地库的加载路径中。在其中一些实施例中,将所述更新的插件SDK的代码与所述当前应用的代码合并的步骤包括:扩展类加载器中的数组成员变量,将所述更新的插件SDK的代码与所述当前应用的代码合并。在其中一些实施例中,在对每个所述更新的插件SDK执行动态加载的步骤之前,所述方法还包括:为每个所述待加载的插件SDK配置统一接口SDK,通过所述统一接口SDK调用所述更新的插件SDK。在其中一些实施例中,在对每个所述更新的插件SDK执行动态加载的步骤之前,所述方法还包括:向服务器发送更新所述当前应用的插件SDK的请求,并接收所述服务器下发的包含所述至少一个更新的插件SDK的SDK更新包;将所述SDK更新包解压,获取所述至少一个更新的插件SDK;或者接收服务器推送的插件SDK。一种加载插件SDK的系统,所述系统包括:获取模块,用于获取当前应用的至少一个更新的插件SDK;加载模块,用于当重新启动所述当前应用时,动态加载每个所述更新的插件SDK,所述加载模块包括:代码合并模块,用于将所述更新的插件SDK的代码与所述当前应用的代码合并;本地库合并模块,用于将所述更新的插件SDK的本地库与所述当前应用的本地库合并;资源合并模块,用于将所述更新的插件SDK的资源与所述当前应用的资源合并。在其中一些实施例中,所述资源合并模块还用于:通过反射调用应用程序资源管理器的成员函数将所述更新的插件SDK的资源加载到所述当前应用的资源对象中。在其中一些实施例中,所述本地库合并模块还用于:通过反射类加载器,将更新的插件SDK的本地库路径添加到所述当前应用的本地库的加载路径中。在其中一些实施例中,所述代码合并模块还用于扩展类加载器中的数组成员变量,将所述更新的插件SDK的代码与所述当前应用的代码合并。在其中一些实施例中,所述系统还包括:接口模块,用于为每个所述更新的插件SDK配置统一接口SDK,通过所述统一接口SDK调用每个所述更新的插件SDK。在其中一些实施例中,所述系统还包括:插件管理模块,用于向服务器发送更新所述当前应用的插件SDK的请求,并接收所述服务器下发的包含所述至少一个更新的插件SDK的SDK更新包;将所述SDK更新包解压,获取所述至少一个更新的插件SDK;或者接收服务器推送的插件SDK。一种客户端,包括如上所述的加载插件SDK的系统。上述加载插件SDK的方法、系统和客户端,客户端(宿主apk)在重新启动应用时动态加载更新的插件SDK,即将插件SDK的代码、本地库和资源分别对应地与当前应用的代码、本地库和资源合并。通过这种动态加载的方式,使得插件SDK和应用程序包解耦,使得可以独立开发插件SDK,解决了由于第三方SDK频繁升级导致频繁升级客户端的问题,而且有效减小了应用程序包的大小,同时提高了应用的安全性。附图说明图1为一些实施例中的加载插件SDK的方法的流程图;图2为一些实施例中的获取更新的插件SDK的过程示意图;图3为一些实施例中的统一接口SDK的示意图;图4为一些实施例中的加载插件SDK的系统的结构框图。具体实施方式在本专利技术的实施例中,所述的客户端为以Android为开发平台的智能移动终端。AndroidSDK(SoftwareDevelopmentKit,软件开发工具包)采用了Java语言。一般SDK都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具包广义上指辅助开发某一类软件的相关文档、范例和工具的集合。在Android平台而言,AndroidSDK是指由非CP(contentprovider,内容提供商,例如应用程序开发商)方提供的具有某种特定功能(比如登录、支付、推送、分享等等)的开发包,CP方可以通过编码和整合文件资源等方式集成第三方SDK,从而具备第三方SDK提供的某种功能和/或使用场景。通常情况下,AndroidSDK采用Java语言编写。第三方SDK类型很多,一般从开发角度看,根据插件SDK提供的功能进行分类,当前市场主流的类型包括但不限于登录、支付、分享、推送、广告、统计等。将第三方SDK进行封装形成插件SDK,一个插件SDK封装了一个第三方SDK或者某种特定功能,二者一一对应,即插件SDK是在第三方SDK提供的代码和资源的基础上,按照接入的需要进行封装,最后以apk(AndroidPackage,Android安装包)的形式发布。需要说明的是,在一些实施例中,插件SDK可以为独立的.apk文件和.dex文件或者具有dalvik字节码的jar包。在客户端的使用过程中,由于第三方SDK频繁升级或者服务器对特定渠道或者个人定制app的强制推送插件SDK,使得客户端需要频繁升级。但是目前的静态加载第三方SDK的方式是将应用程序本身的逻辑和第三方SDK的代码和资源合并在一个apk发布到应用市场。一旦发布,这个apk将无法修改,apk封装的第三方SDK也无法修改,如果第三方SDK出现bug(问题)将无法及时修复,并且,采用这种方式频繁升级客户端,操作复杂,维护不便。因此本专利技术提出一种加载插件SDK的方法,该方法能够动态加载各种类型的第三方SDK,实现了插件SDK和应用程序包解耦,使得第三方SDK频繁升级导致的频繁升级客户端的本文档来自技高网...
加载插件SDK的方法、系统及客户端

【技术保护点】
一种加载插件SDK的方法,其特征在于,包括以下步骤:获取当前应用的至少一个更新的插件SDK;当重新启动所述当前应用时,对每个所述更新的插件SDK执行动态加载的步骤;所述动态加载的步骤包括:将所述更新的插件SDK的代码与所述当前应用的代码合并;将所述更新的插件SDK的本地库与所述当前应用的本地库合并;将所述更新的插件SDK的资源与所述当前应用的资源合并。

【技术特征摘要】
1.一种加载插件SDK的方法,其特征在于,包括以下步骤:获取当前应用的至少一个更新的插件SDK;当重新启动所述当前应用时,对每个所述更新的插件SDK执行动态加载的步骤;所述动态加载的步骤包括:将所述更新的插件SDK的代码与所述当前应用的代码合并;将所述更新的插件SDK的本地库与所述当前应用的本地库合并;将所述更新的插件SDK的资源与所述当前应用的资源合并。2.根据权利要求1所述的方法,其特征在于,所述将所述更新的插件SDK的资源与所述当前应用的资源合并的步骤包括:通过反射调用应用程序资源管理器的成员函数将所述更新的插件SDK的资源加载到所述当前应用的资源对象中。3.根据权利要求1所述的方法,其特征在于,所述将所述更新的插件SDK的本地库与所述当前应用的本地库合并的步骤包括:通过反射类加载器,将所述更新的插件SDK的本地库路径添加到当前应用的本地库的加载路径中。4.根据权利要求1所述的方法,其特征在于,将所述更新的插件SDK的代码与所述当前应用的代码合并的步骤包括:扩展类加载器中的数组成员变量,将所述更新的插件SDK的代码与所述当前应用的代码合并。5.根据权利要求1所述的方法,其特征在于,在对每个所述更新的插件SDK执行动态加载的步骤之前,所述方法还包括:为每个所述更新的插件SDK配置统一接口SDK,通过所述统一接口SDK调用所述更新的插件SDK。6.根据权利要求1所述的方法,其特征在于,所述获取当前应用的至少一个更新的插件SDK的步骤包括:向服务器发送更新所述当前应用的插件SDK的请求,并接收所述服务器下发的包含所述至少一个更新的插件SDK的SDK更新包;将所述SDK更新包解压,获取所述至少一个更新的插件SDK;或者接收服务器推...

【专利技术属性】
技术研发人员:陈胜谭嘉津吕博扬
申请(专利权)人:博雅网络游戏开发深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1