日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

發(fā)布時間:2023/12/10 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android笔记-Activity相关+内存泄漏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

看了下,上次學(xué)習(xí)android還是17年的事情,,,,兩年過去了我現(xiàn)在終于來搞android了。。。

以下內(nèi)容參考自:《Android從學(xué)習(xí)到產(chǎn)品》,《深入理解java虛擬機(jī)》,《操作系統(tǒng)之哲學(xué)原理》

?

先甩一部分定義:

1.每一個Activity都可以啟動另一個Activity來完成不同的動作,每一次一個Activity啟動,前一個Activity就停止了,但是系統(tǒng)保留一個Activity在一個棧上(Back stack)。當(dāng)一個新的Activity啟動時,它會被推送到棧頂,取得用戶焦點。Back Stack 符合簡單的“后進(jìn)先出”原則,所以當(dāng)用戶完成當(dāng)前Activity后單擊Back按鈕,它會被彈出棧(并且被摧毀),然后之前的Activity恢復(fù)。

?

這里延申一下(猜測,沒有看過具體的Android底層,不確定是不是準(zhǔn)確的),這個Activity存儲的back stack 應(yīng)該是jvm中的VM Stack。

同步一下VM Stack是什么,就要討論jvm的運行,java虛擬機(jī)在執(zhí)行java程序的過程中,會把它所管理的內(nèi)存劃分為若干個不同的數(shù)據(jù)區(qū)域,VM Stack是其中一個區(qū)域。

VM Stack (java virtual machine stacks)是線程私有的,他的生命周期與線程相同。(線程概念補充一下:運行中的程序叫進(jìn)程,一個進(jìn)程占有一段內(nèi)存來執(zhí)行這個程序,一個進(jìn)程我們可以拆分為多個線程,多個線程使用同一段內(nèi)存空間來協(xié)同工作完成進(jìn)程。線程是進(jìn)程里面的一個執(zhí)行上下文,或者執(zhí)行序列。對于單核來說,一個時間段只能handle一個線程,多核可以有多個線程同時執(zhí)行,從而提高進(jìn)程的執(zhí)行速度)

VM stack 描述的是java方法執(zhí)行的內(nèi)存模型:每個方法執(zhí)行的同時都會創(chuàng)建一個棧幀(stack Frame)用于存儲局部變量表,操作數(shù)棧,動態(tài)鏈接,方法出口等信息。每一個方法從調(diào)用直至執(zhí)行完成的過程,就對應(yīng)著一個棧幀在虛擬機(jī)棧中入棧到出棧的過程。

?

那么對于Android來說,內(nèi)存泄漏的場景有:1.Activity過多,內(nèi)存占滿,無法創(chuàng)建新的Activity對象;2.多個Activity單例化后,一直占據(jù)內(nèi)存資源,無法釋放;

?

具體怎么做的還沒有頭緒,等開發(fā)完了再研究吧。

轉(zhuǎn)載于:https://www.cnblogs.com/zhizhiyin/p/11199246.html

總結(jié)

以上是生活随笔為你收集整理的Android笔记-Activity相关+内存泄漏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。