The invention provides a mobile application memory object method and device for analysis, obtain the occurrence object, memory leak is determined from the user object container in which objects and mobile applications to store the objects in the container in the memory is not released when the corresponding real object; according to mark the place the object of memory leak of the reference path search to the objects of memory leak, the source determines the memory leak. Compared with the prior art, the invention helps the user quickly locate the source of the memory leak, optimize the memory usage and enhance the user's use experience.
【技术实现步骤摘要】
一种对移动应用的内存对象进行分析的方法和装置
本专利技术涉及计算机
,尤其涉及一种对移动应用的内存对象进行分析的技术。
技术介绍
移动端设备内存空间比较有限,要求开发人员在进行移动app(应用)开发时高效规范的使用内存。特别是在Android(安卓系统)开发中,许多低端机型的内存容量较小,不规范的内存使用非常容易产生OutOfMemory(内存不足,OOM)问题,极大地损害了用户体验。现有对内存对象的分析主要通过集成开发环境自带的内存分析工具来完成,这些工具主要通过主动Dump(抓取)内存快照,并对Dump得到的内存快照文件进行解析,获取不同类型内存对象的信息来获取当前app内存的使用情况。所述内存分析工具中只能对底层具体对象的内存使用进行分析,无法从更高层次掌握app业务逻辑对内存的使用。例如:图片在内存中使用byte数组进行表示,通过目前的分析工具能够获悉byte数组的大小,但是却无法观察该图片的样子,属于哪个业务。当前的内存分析工具分析内存的方式过于抽象,使得开发人员无法直观地对当前内存对象使用进行了解,降低了调试的效率。因此在出现内存泄漏,尤其是图片泄漏时,需要开发人员人工对内存中的对象进行查找,效率低下。因此,如何提供能够帮助用户快速定位内存泄漏的源头,并能使用户直观地获悉创建所述对象对应的操作的一种对移动应用的内存对象进行分析的技术,成为本领域技术人员亟需解决的技术问题之一。
技术实现思路
本专利技术的目的是提供一种对移动应用的内存对象进行分析的方法和装置。根据本专利技术的一个方面,提供一种对移动应用的内存对象进行分析的方法,其中,该方法包括 ...
【技术保护点】
一种用于对移动应用的内存对象进行分析的方法,其中,该方法包括以下步骤:a获取用户自对象容器中所确定的发生内存泄漏的对象,其中,所述对象容器中所存储的对象与移动应用在内存中的未释放对象实时对应;b根据所述发生内存泄漏的对象所对应的标记,查找到所述发生内存泄漏的对象的引用路径,确定所述内存泄漏的源头。
【技术特征摘要】
1.一种用于对移动应用的内存对象进行分析的方法,其中,该方法包括以下步骤:a获取用户自对象容器中所确定的发生内存泄漏的对象,其中,所述对象容器中所存储的对象与移动应用在内存中的未释放对象实时对应;b根据所述发生内存泄漏的对象所对应的标记,查找到所述发生内存泄漏的对象的引用路径,确定所述内存泄漏的源头。2.根据权利要求1所述的方法,其中,所述步骤b包括:通过遍历所有对象,查找所确定的发生内存泄漏的对象;根据所述发生内存泄漏的对象所对应的标记,反向构建出持有关系的最短路径,从而查找到所述发生内存泄漏的对象的引用路径,确定所述内存泄漏的源头。3.根据权利要求1或2所述的方法,其中,该方法还包括:x系统调用对象创建方法时,通过劫持方式接管所述对象创建方法,以创建所述对象;y创建所述对象时,对创建过程中生成的所述对象进行标记;z将标记后的所述对象及其对应的属性在所述对象容器中展现给所述用户。4.根据权利要求3所述的方法,其中,所述步骤y包括:创建所述对象时,使用带键值的弱引用对创建过程中生成的所述对象进行标记。5.根据权利要求3或4所述的方法,其中,该方法还包括:根据被回收的对象,对所述对象容器进行更新,其中,所述对象容器中所存储的对象与移动应用在内存中的未释放对象实时对应。6.根据权利要求3至5中任一项所述的方法,其中,所述劫持方式包括:通过反射找到与所述对象对应的类和所述类中创建所述对象的方法和参数;修改所述方法的类型,反向调用JAVA层的方法。7.根据权利要求3至5中任一项所述的方法,其中,所述步骤z包括:按照预定规则,对所述标记后的所述对象及其对应的属性进行排序;在所述对象容器中,将经过排序的所述标记后的所述对象及其对应的属性展现给搜索用户;其中,所述预定规则包括以下至少任一项:按照所述对象的生成时间对所述对象及其对象的属性进行排序;按照所述对象的大小对所述对象及其对象的属性进行排序。8.一种用于对移动应用的内存对象进行分析的分析装置,其中,该分析装置包括:获取装置...
【专利技术属性】
技术研发人员:刘俊启,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。