`
baobaoupup
  • 浏览: 470845 次
文章分类
社区版块
存档分类
最新评论

Android进程与内存及内存泄露

 
阅读更多

本人博客原文

第一部分Android进程
1.1、Android进程简介
每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,而每一个虚拟机实例都是一个独立的进程空间,不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它虚拟机造成影响,可以最大程度的保护应用的安全和独立运行.
关于此的更多内容可参考《Android Dalvik虚拟机简介
1.2、Android进程间内存的不可见性
Android进程之间的内存并不是直接可见。
关于此内容参考阅读《Android中单APK应用多进程
1.3、Android进程内存占用的最大值
Android进程内存占用的默认最大值为16M或32M ,该值只是指dalvik上分配的内存,它不包括在native上分配的内存值.
更多内容请参考《Android应用程序的默认最大内存值
1.4、单APK多进程技术
默认一个APK包就对应一个进程,其进程名就为AndroidManifest.xml文件中 指定的package名。我们可以通过Activity, Service, BroadCastReceiver, ContentProvider的android:process属性来实现单APK多进程
关于此的更多内容请阅读《Android中单APK应用多进程》和如何在Android中取得当前进程名
第二部分 Android内存
2.1、Android中如何查看内存
像Linux这种现代操作系统的内存使用是很复杂的,因此很难准确的知道你的应用程序使用了好多内存。查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同。
关于此的详细内容请阅读《Android中如何查看内存(上)》和《Android中如何查看内存(下)
2.2、对象的强引用,软应用,弱应用
关于此的详细内容请阅读《对象的强、软、弱和虚引用
2.3、Android中图片占用内存的计算
详细内容请阅读《Android中图片占用内存的计算
2.4、使用LinkedHashMap来实现高效的内存缓冲
详细内容请阅读《LinkedHashMap简介
第三部分 Android内存泄漏
3.1、Android内存泄漏简介
在java程序中,如果已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。
更多内容请阅读《Android内存泄漏简介
3.2、Android中如何查找内存泄露
我们可以在MAT中,对进程的hprof文件进行分析,以便找到内存泄露。
更多内容请参考《Android中如何查找内存泄露
<wbr></wbr>

分享到:
评论

相关推荐

    Android Native 内存泄漏系统化解决方案

    主要介绍了Android Native 内存泄漏系统化解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Android-HeapSnap是一款针对Android进程堆内存泄露追踪工具

    HeapSnap 是一款针对Android进程堆内存进行追踪、定位,以便查出泄露位置的工具

    AndroidApp定位和规避内存泄露方法研究

    AndroidApp定位和规避内存泄露 如何确定App存在内存泄露 如何定位App的内存泄露位置 怎样避免内存泄露 使用procrank查看进程内存 procrank 命令可以获得当前系统中各进程的内存使用快照,这里有PSS,USS,VSS,...

    浅谈Android应用的内存优化及Handler的内存泄漏问题

    物理内存与进程内存 物理内存即移动设备上的RAM,当启动一个Android程序时,会启动一个Dalvik VM进程,系统会给它分配固定的内存空间(16M,32M不定),这块内存空间会映射到RAM上某个区域。然后这个Android程序就会...

    android与WebView进程通信

    android中通过binder与WebView独立进程之间的交互,解决WebView兼容性和内存泄漏问题

    Android 内存泄露

    Android内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引用到gc roots导致无法被GC回收。无用的对象占据着内存空间,使得实际可使用内存变小,形象地说法就是内存泄漏了...

    Android内存泄漏终极解决篇(下)

    在 Android内存泄漏终极解决篇(上)中我们介绍了如何检查一个App是否存在内存泄漏的问题,本篇将总结典型的内存泄漏的代码,并给出对应的解决方案。内存泄漏的主要问题可以分为以下几种类型: 静态变量引起的内存...

    开源的Android性能测试工具APT

    支持进程内存构成分析 支持手工或超过阈值时自动转储 Dump 详细堆内存对象信息 支持多进程 支持生成和导出常用格式的的日志图表 APT相比同类工具 具有下面2大特性: 使用Java语言开发 基于Eclipse 跨平台 支持...

    详解android webView独立进程通讯方式

    webView 在访问结束的时候可以直接杀死该进程,防止内存泄漏。 webView 在崩溃的时候不影响主进程。 webView独立进程需要注意什么 由于进程之间内存是独立的,所以导致了Appcation, 静态类需要在新的进程重新创建...

    分析Android内存泄漏的几种可能

    Java内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引用到gc roots导致无法被GC回收。本文详细罗列了Android内存泄漏的八种可能,有需要的可以参考下。

    Java最全面试题宝典.rar

    Handler内存泄漏分析及解决 Handler、Looper、Message、MessageQueue基础流程分析 Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件分发机制 ANR问题 Art...

    Android知识点及重要代码合集 word文档

    18.3内存泄露和内存溢出的区别以及引用的级别 260 18.4 使用软引用解决Handler内存泄漏问题 262 19.1 ActionBar的显示和隐藏 264 19.2 SearchView、ActionLayout、ShareActionProvider的使用 265 19.3 ActionBar选项...

    最全java面试题.zip

    Handler内存泄漏分析及解决 Handler、Looper、Message、MessageQueue基础流程分析 Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件分发机制 ANR问题 Art...

    IpManager内存泄漏案例分析

    目录1 问题背景2 MAT工具分析内存泄漏2.1 生成内存镜像文件(hprof)2.1.1 Android Studio生成内存镜像文件2.1.2 DDMS生成内存镜像文件2.2 MAT工具分析hprof文件3 解决方案4 LeakCanary工具介绍 1 问题背景 测试案例:...

    GitHub上最火的Android项目,所有开源项目都有详细资料和配套视频

    5-什么是内存泄漏 6-什么是内存溢出 7-什么情况会导致内存泄漏 8-避免程序的OOM异常 9-线程池原理 10-UI性能优化 11-内存优化之字符串优化 12-常见内存优化方式 13-性能分析之hierarchyviewer使用 14-性能...

    Android开发艺术探索

    目录 第1章 Activity的生命周期和启动模式 / 1 1.1 Activity的生命周期全面分析 / 1 1.1.1 典型情况下的生命周期分析 / 2 ...15.2 内存泄露分析之MAT工具 / 502 15.3 提高程序的可维护性 / 506

    Android面试视频讲解.BAT面试题详情讲解

    1.ANR,2.OOM,3.bitmap,4.UI绘制优化,5.java内存泄露,6.Android内存泄露7.冷启动8.其他优化 9.架构设计模式10.android插件化11.热更新12.进程包活

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。... 15.2 内存泄露分析之MAT工具 502 15.3 提高程序的可维护性 506

    jjz#blog#LeakCanary傻瓜式的内存泄露检测工具1

    1. 增加进程的内存 2. 使用Bitmap.Config.ALPHA_8(图片失真) 4. catch Exception 5. 调用bitmap.recyc

    android开发艺术探索高清完整版PDF

    / 484 14.4 JNI调用Java方法的流程 / 486 第15章 Android性能优化 / 489 15.1 Android的性能优化方法 / 490 15.1.1 布局优化 / 490 15.1.2 绘制优化 / 493 15.1.3 内存泄露优化 / 493 15.1.4 响应速度优化和...

Global site tag (gtag.js) - Google Analytics