1.Android虛擬機是在哪一層加匈?
是在Android運行庫層
2.兩個堆棧共享一個向量空間的優(yōu)點:
節(jié)省地址空間,減小上溢發(fā)生的概率
3.安卓中,由Handler引發(fā)的內(nèi)存泄漏的解決方法:
主要是因為Handler屬于TLS(Thread Local Storage)變量,生命周期和Activity是不一致的撑毛,Handler引用Activity會存在內(nèi)存泄露。
解決方法:
~ 使用顯形的引用唧领,1.靜態(tài)內(nèi)部類藻雌。 2. 外部類
~ 使用弱引用 2. WeakReference
4.進程的標志
PCB是進程存在的唯一標志。進程控制塊(Process Control?B1ock斩个,簡稱PCB)是用來記錄進程狀態(tài)及其他相關(guān)信息的數(shù)據(jù)結(jié)構(gòu),PCB是進程存在的唯一標志蹦疑,PCB存在則進程存在。系統(tǒng)創(chuàng)建進程時會產(chǎn)生一個PCB萨驶,撤銷進程時歉摧,PCB也自動消失。
5.linux中查看內(nèi)存使用狀態(tài)的命令(請務(wù)必自己試一下)
~ cat /proc/meminfo
查看RAM使用情況最簡單的方法是通過/proc/meminfo腔呜。這個動態(tài)更新的虛擬文件實際上是許多其他內(nèi)存相關(guān)工具(如:free / ps / top)等的組合顯示叁温。/proc/meminfo列出了所有你想了解的內(nèi)存的使用情況。
~ atop
atop命令是一個終端環(huán)境的監(jiān)控命令核畴。它顯示的是各種系統(tǒng)資源(CPU, memory, network, I/O, kernel)的綜合膝但,并且在高負載的情況下進行了彩色標注。
~ free
free命令是一個快速查看內(nèi)存使用情況的方法谤草,它是對 /proc/meminfo 收集到的信息的一個概述跟束。
~ htop
htop命令顯示了每個進程的內(nèi)存實時使用率。它提供了所有進程的常駐內(nèi)存大小丑孩、程序總內(nèi)存大小冀宴、共享庫大小等的報告。列表可以水平及垂直滾動温学。
~ ps
ps命令可以實時的顯示各個進程的內(nèi)存使用情況略贮。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”選項對進程進行排序,例如按RSS進行排序: ?$ ps aux --sort -rss
~ smem
smem命令允許你統(tǒng)計基于/proc信息的不同進程和用戶的內(nèi)存使用情況逃延。內(nèi)存使用情況的分析可以導(dǎo)出圖表(如條形圖和餅圖)览妖。
實例:$ sudo smem --pie name -c "pss"
6.編程題:
~ 數(shù)組長度為n,目的是去除多余的元素,但是要保留最后出現(xiàn)的元素揽祥。 //反著遍歷數(shù)組就行了
~ 現(xiàn)在有2個cpu能共同工作讽膏,一共有m項任務(wù),求能完成的最小時間
~ 有6個任務(wù)拄丰,n個工程師(1<n<6)府树,已知每個工程師能做的任務(wù),求方案數(shù)
輸入:
6
012345
012345
012345
012345
012345
輸出: 720
7.問答題:Android中Activity組件的功能以及防護其安全的方法
四大組件指的是應(yīng)用組件:Activity愈案、Service挺尾、BroadcastReceiver鹅搪、ContentProvider站绪;
在應(yīng)用中一個Activity可以用來表示一個界面, 中文意思也可以理解為“活動” 丽柿,即一個活動開始恢准,代表Activity組件啟動;活動結(jié)束甫题,代表一個Activity的生命周期結(jié)束馁筐。
在android中,Activity的生命周期統(tǒng)一交給系統(tǒng)管理坠非;
1敏沉、Activity的狀態(tài):
~ Resumed:Activity對象出于運行狀態(tài)。一個新Activity 啟動入棧后炎码,它在屏幕最前端盟迟,處于棧的最頂端,此時它處于可見并可以與用戶交互的激活狀態(tài)潦闲。
~ Paused:另一個Activity位于前端攒菠,但是本Activity還可見。
Paused狀態(tài)常用于:當Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態(tài)歉闰。此時它依然與窗口管理器保持連接辖众,系統(tǒng)繼續(xù)維護其內(nèi)部狀態(tài),所以它仍然可見和敬,但它已經(jīng)失去了焦點故不可與用戶交互凹炸。注:一個Activity出于paused狀態(tài)時,系統(tǒng)并不會釋放資源昼弟。釋放資源你的操作要靠開發(fā)者來完成还惠。
~ Stopped:另一個Activity位于前端,完全遮擋本Activity。
~ killed:Activity被系統(tǒng)殺死回收或者沒有被啟動時蚕键。