本发明属于电力行业移动应用的热发布领域,具体说是一种针对移动应用瘦身需求和和动态发布新功能的电力行业轻量级热发布移动应用方法。
背景技术:
在电力系统移动互联环境高速发展的情况下,建设了大量移动app,建设过程中不可避免的会存在一些隐藏的缺陷和bug,但是由于信通本身检修制度限制,移动应用只能通过月度检修解决缺陷,无法快速进行版本迭代和应急处理,不能满足用户在不升级app的情况进行缺陷修复或者新功能发布,同时大量移动应用占据了手机内存,也不能满足移动应用瘦身需求和和动态发布新功能的需求法。
技术实现要素:
为了满足移动应用瘦身需求和和动态发布新功能的需求,本发明的目的是提供一种电力行业轻量级热发布移动应用的方法。移动应用客户端使用时会从服务器获取插件来具备原生功能,客户端本身占用内存很小,缺陷修复和新功能发布都可以在服务器端更新,极大的提升了移动应用增加新功能和修复bug能力。
本发明的目的通过以下技术方案实现:
一种电力行业轻量级热发布移动应用的方法,其特征在于具体内容如下:
1)轻量级客户端
下载在本地的移动客户端占用内存小,本身没有复杂功能,当应用客户端使用时,通过获取服务器端插件来实现功能。
2)动态加载功能
可以通过android反射的方法reflection,reflection机制允许程序在正在执行过程中,利用reflectionapis取得arr包,并将aar包动态加载到系统内存里,当应用使用时,这些包自带的插件使应用具备原生的功能。
3)热发布新功能或修复缺陷
由classloader加载补丁类,在native层直接memcoy(smeth,dmth,sizeof(artmethod))替换整个artmethod结构,初始化时会分配空间,allocartmethodarray会紧挨着new出来放入art中的方法数组中,热发布新功能即初始化补丁类,修复缺陷时,用修复过的新artmethod去替换旧artmethod内容。客户所使用的功能都是动态下载的,客户端本身不需要更改。
本发明中,移动应用客户端使用时会从服务器获取插件来具备原生功能,客户端本身占用内存很小,缺陷修复和新功能发布都可以在服务器端更新,极大的提升了移动应用增加新功能和修复bug能力。
本发明满足了用户在不升级app的情况进行缺陷修复或者新功能发布功能。
附图说明
图1是本发明架构分层示意图。
具体实施方式
一种电力行业轻量级热发布移动应用的方法,移动应用客户端使用时会从服务器获取插件来具备原生功能,客户端本身占用内存很小,缺陷修复和新功能发布都可以在服务器端更新。具体如下:
客户端使用
1用户通过下载渠道下载移动应用客户端。
2用户查看客户端功能列表。
3点击后获取进度条,调用reflection机制reflectionapis取得arr包,并将aar包动态加载到系统内存里从服务器端获取插件,加载到客户端。
4插件加载完成后,应用具备原生的功能。
服务器端发布功能
1运维人员在服务器端新增classloader加载补丁类,初始化补丁类时分配空间。
2artmethod初始化完成,发布新功能。
服务器端修复缺陷
1运维人员在服务器端修复缺陷时,用修复过的新artmethod去替换旧artmethod内容。
2artmethod替换完成,修复功能。
3用户从服务器端获取插件是修复完成后新插件,不用更新客户端。