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

看了下,上次学习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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一百二十九期:阿里内部员工,排查Java问题常用的工具单

平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出…

再看机器翻译

前面有文章具体介绍了机器翻译用到的模型:seq2seq和加入attention机制。这里再说点别的。 1 机器翻译评价标准BLUE 参考文章介绍的很详细。论文地址:url 2 模型背后的理论:密码学 例如从中文翻译成英文,可以将中文看做是加密了…

为有朝一日自己弄个玩具玩而准备

减号,星号,问号和感叹号尽量可以用来做变量名或函数名 namespace : ns0/ns1/... : 使用 / 作分割符 module : module-name : 和文件名相同,包含函数和变量之类的 类型 int int : fn(param0type, param1type) funcName fn(arg0Name, arg1Name…

VML编程之------VML语言入门《VML极道教程》原著:沐缘华

《VML极道教程》原著:沐缘华1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解、你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果、极道学习方法。 1:如果你学过HTML、CSS或精通HTML、CSS,那么建议你把学VML的…

第一百三十期:14种常见编程语言的优缺点及应用范围

C语言是一门通用计算机编程语言,应用广泛。面向过程的,数据与算法分开。它的重点在于算法和数据结构。1972年由美国贝尔实验室在B语言的基础上设计出。 作者:编程小新 C 概述:C语言是一门通用计算机编程语言,应用广泛。面向过程…

文本生成模型

文本生成目前(2019年)还没有确定的可工程化的用途。 主要模型有:Variational Auto Encoder (VAE)和Generative Adversarial Networks (GAN) 这个对我来说是新的内容,需要再次消化。

设计模式学习笔记一——开篇

毕业的前段时间从定王台买了两本书《设计模式:可复用面向对象软件的基础》和《.NET框架程序设计》,两本很经典的书。工作后两本书都曾看过一部分,第一本不愧堪称设计模式经典之作,书写得很好,但是对于没有面向对象设计…

第一百三十一期:2019年容器使用报告:Docker 和 Kubernetes 王者地位不倒!

近日,容器创业公司 Sysdig 发布了 2019 年容器使用报告。这是 Sysdig 第三年发布容器年度使用报告,与之前不同的是,今年的调查结合了更多的数据源,并深入挖掘了 Kubernetes 的使用模式。 作者:高效开发运维 近日&…

Flask 路由映射对于双斜线的处理 //a//b

例子 from flask import Flask import time from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoopapp Flask(__name__)app.route(//abc//a) def index():# time.sleep(5)return OKapp.route(/abc//a) def in…

⼤规模⽆监督预训练语⾔模型与应⽤(上)

文章目录1 单词作为语言模型的基本单位的缺点2 character level modeling3预训练句子向量3.1 skip-thought3.2 InferSent3.3 句子向量评价数据集4 预训练文档向量5 ELMO1 单词作为语言模型的基本单位的缺点 单词量有限,遇到没有见过的单词只能以UNK表示。 模型参数…

第一百三十二期:MySQL系列:一句SQL,MySQL是怎么工作的?

当我们在mysql窗口或者数据库连接工具中输入一句sql后,我们就可以获取到想要的数据,这中间MySQL到底是怎么工作的呢? 作者:Java架构学习交流 对于MySQL而言,其实分为客户端与服务端。 服务端,就是MySQL应…

转一个无聊的爱情故事:如果有个女生为你哭

这是很早以前看到的一篇文章,偶尔看到,突然很多往事一下子全涌了出来,原来我曾以为忘却了的,却深藏在心中,永远无法抹去。假如你的生命里有这样一个女孩,她既不漂亮,也不温柔,但她很…

Visual Studio 2005 Tip:编辑项目文件

原文参考自:http://blogs.msdn.com/shawnfa/archive/2006/04/26/582326.aspx很多时候我们需要手动修改VS的项目文件(.csproj/.vbproj),这时大多数人会简单的使用记事本(notepad)打开并编辑。虽然这没什么不…

transformer bert GPT(未完)

原文标题:⼤规模⽆监督预训练语⾔模型与应⽤(中) 文章目录1 transformer1.1 encoder部分1.1.1 Attention定义1.1.2 Multi-head Attention1.1.3 position-wise feed-forward networks1.1.4 positional encoding1.1.5 残差链接1.1.6 layer norm…

spring mvc学习(42):restful的编辑功能实现

上图是目录结构&#xff0c;本节是有问同学的&#xff0c;当好好总结 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

韩国首尔公交车站将被指定为禁烟场所

中新网东京7月3日电 韩国首尔市所有公交车站将从今年9月份起被指定为禁烟场所。 据韩联社报道&#xff0c;首尔市方面2日表示&#xff0c;9月份起将把禁烟车站从5月30日开始运营的钟路2街中央车路车站等市内6处公交车站扩大到市内全部公交车站。 首尔市负责人对扩大禁烟车站的…

那些年用过的Redis集群架构(含面试解析)

引言 今天&#xff0c;我接到了高中同学刘有码面试失利的消息。 他面试的时候&#xff0c;身份是某知名公司的小码农一枚&#xff0c;却因为不懂自己生产上Redis是如何部署的&#xff0c;导致面试失败&#xff01; 人间惨剧&#xff0c;莫过于此。 接到他面试失利的消息&#x…

再谈BERT

三次讲到了BERT。第一次是nlp中的经典深度学习模型(二)&#xff0c;第二次是transformer & bert &GPT&#xff0c;这是第三次。 文章目录1 关于预训练模型1.1预训练概念1.2 再谈语言模型1.3 ELMo1.4 GPT2 BERT2.1 BERT特点2.2架构2.3 预训练任务2.3.1 masked language …

第一百三十三期:MySQL锁会不会,你就差看一看咯

本文章向大家介绍MySQL锁详细讲解&#xff0c;包括数据库锁基本知识、表锁、表读锁、表写锁、行锁、MVCC、事务的隔离级别、悲观锁、乐观锁、间隙锁GAP、死锁等等&#xff0c;需要的朋友可以参考一下。 作者&#xff1a;php自学中心 本文章向大家介绍MySQL锁详细讲解&#xff…

[导入][你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途...

摘要: 本文将值类型和引用类型的讨论从应用示例角度来进一步做以延伸&#xff0c;可以看作是对前两回的补充性探讨。我们从类型定义、实例创建、参数传递、类型判等、垃圾回收等几个方面来简要的对上两回的内容做以剖析&#xff0c;并以一定的IL语言和内存机制来说明&#xff0…