看了下,上次学习android还是17年的事情,,,,两年过去了我现在终于来搞android了。。。

以下内容参考自:《Android从学习到产品》,《深入理解java虚拟机》,《操作系统之哲学原理》

先甩一部分定义:

1.每一个Activity都可以启动另一个Activity来完成不同的动作,每一次一个Activity启动,前一个Activity就停止了,但是系统保留一个Activity在一个栈上(Back stack)。当一个新的Activity启动时,它会被推送到栈顶,取得用户焦点。Back Stack 符合简单的“后进先出”原则,所以当用户完成当前Activity后单击Back按钮,它会被弹出栈(并且被摧毁),然后之前的Activity恢复。

这里延申一下(猜测,没有看过具体的Android底层,不确定是不是准确的),这个Activity存储的back stack 应该是jvm中的VM Stack。

同步一下VM Stack是什么,就要讨论jvm的运行,java虚拟机在执行java程序的过程中,会把它所管理的内存划分为若干个不同的数据区域,VM Stack是其中一个区域。

VM Stack (java virtual machine stacks)是线程私有的,他的生命周期与线程相同。(线程概念补充一下:运行中的程序叫进程,一个进程占有一段内存来执行这个程序,一个进程我们可以拆分为多个线程,多个线程使用同一段内存空间来协同工作完成进程。线程是进程里面的一个执行上下文,或者执行序列。对于单核来说,一个时间段只能handle一个线程,多核可以有多个线程同时执行,从而提高进程的执行速度)

VM stack 描述的是java方法执行的内存模型:每个方法执行的同时都会创建一个栈帧(stack Frame)用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。

那么对于Android来说,内存泄漏的场景有:1.Activity过多,内存占满,无法创建新的Activity对象;2.多个Activity单例化后,一直占据内存资源,无法释放;

具体怎么做的还没有头绪,等开发完了再研究吧。

转载于:https://www.cnblogs.com/zhizhiyin/p/11199246.html

Android笔记-Activity相关+内存泄漏相关推荐

  1. android性能优化 掘金,Android性能优化之内存泄漏

    内存泄漏:内存单元使用完成后未释放,未回收. 理解强弱引用和gc垃圾回收机制后,会更好的理解内存泄漏问题. 在目前的Android项目中,内存泄漏是无法避免的,在编写代码时要是否产生了内存泄漏.内存泄 ...

  2. Android 性能优化之内存泄漏检测以及内存优化(上)

    在 Java 中,内存的分配是由程序完成的,而内存的释放则是由 Garbage Collecation(GC) 完成的,Java/Android 程序员不用像 C/C++ 程序员一样手动调用相关函数来 ...

  3. iOS中滤镜处理及相关内存泄漏问题的解决

    iOS中滤镜处理及相关内存泄漏问题的解决 参考文章: (1)iOS中滤镜处理及相关内存泄漏问题的解决 (2)https://www.cnblogs.com/ToBeTheOne/p/5708906.h ...

  4. 【Android -- 学习笔记】Handler 内存泄漏分析及解决

    一.介绍 首先,请浏览下面这段 handler 代码: public class SampleActivity extends Activity {private final Handler mLea ...

  5. Android Studio +MAT 分析内存泄漏实战

    点击打开链接 对于内存泄漏,在Android中如果不注意的话,还是很容易出现的,尤其是在Activity中,比较容易出现,下面我就说下自己是如何查找内存泄露的. 首先什么是内存泄漏? 内存泄漏就是一些 ...

  6. android中常见的内存泄漏和解决的方法

    android中的内存溢出预计大多数人在写代码的时候都出现过,事实上突然认为工作一年和工作三年的差别是什么呢.事实上干的工作或许都一样,产品汪看到的结果也都一样,那差别就是速度和质量了. 写在前面的一 ...

  7. android内存泄漏原因分析,Android Studio3.6的内存泄漏检测功能 VS LeakCanary

    2020年2月,谷歌发布了Android Studio 3.6版.它包括一个新的"内存泄漏检测"功能.这是否意味着我们不再需要流行的内存泄漏检测库"Leak Canary ...

  8. Android 如何有效的解决内存泄漏的问题

    前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的作用. 本文的内存泄漏检测工具是:LeakCana ...

  9. android 栏目编辑,android – 编辑文本导致内存泄漏

    介绍: 我有一个应用程序具有以下结构: ActionBar顶部(ActionBarSherlock) ViewPagerIndicator下面(对于选项卡) ViewPager(主机片段) 我有一个问 ...

最新文章

  1. Node.js 11.12.0 发布,服务器端的 JavaScript 运行环境
  2. 【每日一包0029】merge-descriptors
  3. K8S常见错误、原因及处理方法
  4. 攻击防护手段_如何防护ddos流量攻击?
  5. mysql ngram_MySQL ngram全文解析器
  6. Mybatis-plus 大数据量数据流式查询通用接口
  7. JAVASCRIPT干了不下四五种工作
  8. C中位域结合对齐(pragma)的例子及解释
  9. setTimeout、setInterval解刨
  10. 资源放送丨《高并发Oracle OLTP系统的故障案例分享》PPT视频
  11. 你在支付宝上搞钱,“90后”却在相亲
  12. python基础学习(四)if判断语句
  13. Android SystemProperties系统属性详解
  14. SCI-hub论文下载器(附下载方法)
  15. npp++常用的匹配正则表达式
  16. 词汇处理——词义辨析消歧(一)
  17. 算术编码原理及其python实现
  18. DCloud是什么?
  19. SQL注入之order by注入与limit注入
  20. 计蒜客 T1609 掷骰子

热门文章

  1. java学习(125):简单异常处理
  2. 华为IoT平台NB编解码插件开发详细教程【下篇】
  3. python利用缩进写模块_Python之缩进块
  4. 无法创建接口的实例_什么是接口?
  5. 16.Python略有小成(内置模块Ⅱ)
  6. 简单理解bash和常规操作
  7. http://www.a.cn/?a.b=1 取a.b的值
  8. webScoket的浅短的认识
  9. C++11: final与override
  10. 基于Response的将数据导出到Excel