首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 系统软件 / 操作系统 / 进程 / 网络视图的内存优化方法、装置、电子设备及计算机可读存储介质

网络视图的内存优化方法、装置、电子设备及计算机可读存储介质

阅读:373发布:2020-05-08

专利汇可以提供网络视图的内存优化方法、装置、电子设备及计算机可读存储介质专利检索,专利查询,专利分析的服务。并且一种网络视图的内存优化方法、装置、 电子 设备及计算机存储介质。其中所述方法包括:创建运行应用程序的第一 进程 ;通过设置process属性创建运行网络视图的第二进程;通过调用Android 接口 定义语言AIDL文件实现第一进程和第二进程的通信。本方案能有效减少应用运行内存,减少应用卡顿,提升用户体验。,下面是网络视图的内存优化方法、装置、电子设备及计算机可读存储介质专利的具体信息内容。

1.一种网络视图的内存优化方法,其特征在于,包括:创建运行应用程序的第一进程
通过设置process属性创建运行网络视图的第二进程;通过调用Android接口定义语言AIDL文件实现第一进程和第二进程的通信。
2.如权利要求1所述的方法,其特征在于,所述通过调用AIDL文件实现第一进程和第二进程的通信包括:第二进程创建一个服务Service和一个AIDL文件,其中所述Service用于监听第一进程的连接请求,在Service中实现AIDL文件中定义的接口方法;第一进程向第二进程发起连接请求以绑定所述Service,并根据所述AIDL接口所属的类型调用AIDL文件中定义的接口方法。
3.如权利要求1或2所述的方法,其特征在于,还包括:当网络视图所在的页面关闭时,调用系统函数System.exit(0)退出第二进程,释放第二进程的内存空间。
4.一种网络视图的内存优化装置,其特征在于,包括:第一创建模,用于创建运行应用程序的第一进程;第二创建模块,用于通过设置process属性创建运行网络视图的第二进程;通信模块,用于通过调用Android接口定义语言AIDL文件实现第一进程和第二进程的通信。
5.如权利要求4所述的装置,其特征在于,所述通信模块还用于:第二进程创建一个服务Service和一个AIDL文件,其中所述Service用于监听第一进程的连接请求,在Service中实现AIDL文件中定义的接口方法;第一进程向第二进程发起连接请求以绑定所述Service,并根据所述AIDL接口所属的类型调用AIDL文件中定义的接口方法。
6.如权利要求4或5所述的装置,其特征在于,还包括:释放模块,用于当网络视图所在的页面关闭时,调用系统函数System.exit(0)退出第二进程,释放第二进程的内存空间。
7.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至3中任意一项所述网络视图的内存优化方法。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3中任意一项所述网络视图的内存优化方法。

说明书全文

网络视图的内存优化方法、装置、电子设备及计算机可读存储

介质

技术领域

背景技术

[0002] 目前Android开发主要有三种方式:原生开发,HTML5开发和混合开发。但由于原生开发存在开发及维护成本高,移植性差等缺点,混合开发便成了Android开发发展的趋势。混合开发正是结合原生和H5开发的技术,取长补短的一种开发模式,原生代码部分利用WebView插件或者其它的框架为H5提供了一个容器,程序主要的业务实现、界面展示是利用H5相关的Web技术进行实现的。但WebView内存占用较大,且存在内存泄漏问题,会造成应用卡顿,严重时会出现内存溢出,导致应用异常退出。因此开发过程中WebView内存泄漏问题必须引起重视。

发明内容

[0003] 针对于上述现有技术的不足,本发明的目的之一是解决因WebView内存泄漏,导致应用内存不足,造成应用卡顿问题。
[0004] 本发明实施例公开了一种网络视图的内存优化方法,包括:创建运行应用程序的第一进程;通过设置process属性创建运行网络视图的第二进程;通过调用Android接口定义语言AIDL文件实现第一进程和第二进程的通信。
[0005] 在一个可能的实施例中,所述通过调用AIDL文件实现第一进程和第二进程的通信包括:第二进程创建一个服务Service和一个AIDL文件,其中所述Service用于监听第一进程的连接请求,在Service中实现AIDL文件中定义的接口方法;第一进程向第二进程发起连接请求以绑定所述Service,并根据所述AIDL接口所属的类型调用AIDL文件中定义的接口方法。
[0006] 在一个可能的实施例中,还包括:当网络视图所在的页面关闭时,调用系统函数System.exit(0)退出第二进程,释放第二进程的内存空间。
[0007] 一种网络视图的内存优化装置,包括:第一创建模,用于创建运行应用程序的第一进程;第二创建模块,用于通过设置process属性创建运行网络视图的第二进程;通信模块,用于通过调用Android接口定义语言AIDL文件实现第一进程和第二进程的通信。
[0008] 在一个可能的实施例中,所述通信模块还用于:第二进程创建一个服务Service和一个AIDL文件,其中所述Service用于监听第一进程的连接请求,在Service中实现AIDL文件中定义的接口方法;第一进程向第二进程发起连接请求以绑定所述Service,并根据所述AIDL接口所属的类型调用AIDL文件中定义的接口方法。
[0009] 在一个可能的实施例中,所述装置还包括:释放模块,用于当网络视图所在的页面关闭时,调用系统函数System.exit(0)退出第二进程,释放第二进程的内存空间。
[0010] 一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述网络视图的内存优化方法。
[0011] 一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述网络视图的内存优化方法本发明的有益效果:通过为网络视图WebView新开辟进程后,应用程序和网络视图拥有各自独立的内存空间,两个进程所占用的内存不会互相影响,并且通过AIDL来实现两个进程通信,本方案能有效减少应用运行内存,减少应用卡顿,提升用户体验。
附图说明
[0012] 图1为本发明实施例的一种方法流程图;图2为本发明实施例的一种具体实施方式的流程图;
图3为本发明实施例的装置结构示意图。

具体实施方式

[0013] 为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
[0014] 网络视图WebView是基于webkit引擎、展现web页面的控件,这个类可以被用来在应用程序app中仅仅显示一张在线的网页,还可以用来开发浏览器。WebView内部实现是采用渲染引擎来展示view的内容,提供网页前进后退,网页放大、缩小、搜索。
[0015] 现有技术中有两种解决内存泄漏的方法。一种是通过动态添加WebView,不在xml文件中定义WebView,而是在需要的时候用代码创建并添加到父容器中,并且Context要使用Application的Context。
[0016] 一种是在页面(Activity)销毁的时候,先让WebView加载空内容,清空历史记录,然后在父容器中移除WebView,再把WebView置空。
[0017] 上面两种方案,用开发工具中的Memory Profiler对内存进行监测,对比WebView打开前,关闭后的内存变化情况,当WebView关闭后,内存并没有及时得到释放,在手动GC进行内存释放操作时,内存也并没有回归到WebView页面打开之前的平,仍有部分内存存在泄漏,释放不掉。况且在应用实际使用中,不能进行手动GC的,GC操作是由Android虚拟机控制的,有一定的触发策略。所以当WebView页面关闭后,WebView还会有很长一段时间存在于内存中,得不到释放,直到触发虚拟机的GC策略,才会释放WebView所占用的内存,但并不能完全释放,导致应用卡顿现象。
[0018] 为了解决上述问题,本发明实施例中公开了一种网络视图的内存优化方法,参照图1和图2,包括:S101, 创建运行应用程序的第一进程。具体地,Android系统会为每个进程分配独立的内存空间,一个应用程序相当于一个进程,即系统创建第一进程用于运行应用程序。
[0019] S102, 通过设置process属性创建运行网络视图的第二进程。具体地,在清单文件AndroidManifest.xml中添加process属性创建第二进程,其中第二进程用于运行网络视图WebView。
[0020] S103, 通过调用Android接口定义语言AIDL文件实现第一进程和第二进程的通信。
[0021] 具体地,第二进程创建一个服务Service和一个AIDL文件,其中所述Service用于监听第一进程的连接请求,在Service中实现AIDL文件中定义的接口方法;第一进程向第二进程发起连接请求以绑定所述Service,并根据所述AIDL接口所属的类型调用AIDL文件中定义的接口方法。
[0022] 使用AIDL来进行进程间通信,分为服务端和客户端两个方面:首先服务端要创建一个Service用来监听客户端的连接请求,然后创建一个AIDL文件,将暴露给客户端的接口在这个AIDL文件中生命,最后在Service中实现这个AIDL接口即可。
[0023] 客户端需要绑定服务端的Service,绑定成功后将服务端返回的Binder对象转成AIDL接口所属的类型,接着就可以调用AIDL中的方法了。
[0024] 该方法还包括:当网络视图所在的页面关闭时,调用系统函数System.exit(0)退出第二进程,释放第二进程的内存空间。
[0025] 通过上述方法,通过为网络视图WebView新开辟进程后,应用程序和网络视图拥有各自独立的内存空间,两个进程所占用的内存不会互相影响,并且通过AIDL来实现两个进程通信,从而解决因WebView内存泄漏,导致应用内存不足,造成应用卡顿的问题。
[0026] 如图3,本发明实施例还公开了一种网络视图的内存优化装置10,包括:第一创建模块101,用于创建运行应用程序的第一进程;第二创建模块102,用于通过设置process属性创建运行网络视图的第二进程;通信模块103,用于通过调用Android接口定义语言AIDL文件实现第一进程和第二进程的通信。
[0027] 所述通信模块103还用于:第二进程创建一个服务Service和一个AIDL文件,其中所述Service用于监听第一进程的连接请求,在Service中实现AIDL文件中定义的接口方法;第一进程向第二进程发起连接请求以绑定所述Service,并根据所述AIDL接口所属的类型调用AIDL文件中定义的接口方法。
[0028] 所述装置10还包括:释放模块104,用于当网络视图所在的页面关闭时,调用系统函数System.exit(0)退出第二进程,释放第二进程的内存空间。
[0029] 一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述网络视图的内存优化方法。具体的实施方式可以参考方法实施例,不再赘述。
[0030] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统, 或一些特征可以忽略,或不执行。
[0031] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0032] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0033] 本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈