書接上文,感謝感謝大佬啟立豆的整理:
https://blog.csdn.net/huangqili1314/article/details/79824830
(內(nèi)容好多好難過....流下了無知的淚水...好長好痛苦...)
(6.1)說一下OOM的原因淹魄,如何避免
https://blog.csdn.net/boyupeng/article/details/47726765
OOM是在內(nèi)存分配不足的情況下出現(xiàn)堡距,當申請占用內(nèi)存資源但沒有足夠的內(nèi)存可以使用時會造成這個問題甲锡,嚴重的話會導(dǎo)致死機
修改邏輯吏颖,及時關(guān)閉不需要使用內(nèi)存的部分,設(shè)計能耗小的內(nèi)容與邏輯
(6.2)說一下三級緩存的原理
http://www.reibang.com/p/97455f080065
當想要讀取圖片的時候疚俱,首先從內(nèi)存尋找是否有緩存(LruCache)缩多,有的話就顯示沒有就尋找本地文件养晋,讓后再讓其存到內(nèi)存中。如果還是沒有再去網(wǎng)絡(luò)中請求尋找绳泉,所以三級緩存反過來就是先保存到文件中姆泻,再保存到內(nèi)存中∧床可以使用LruCache進行內(nèi)存外部的緩存。
(6.3)描述一下內(nèi)存緩存的容器
LruCache其實是一個Hash表月腋,內(nèi)部使用的是LinkedHashMap存儲數(shù)據(jù)瓣赂,而LinkedHashMap存儲的原理就是當插入或者調(diào)用時,會排在表的最前面煌集,那么當數(shù)據(jù)或者內(nèi)容沒有用到時就會排在表的最底部,根據(jù)這個原來LruCache可以獲取那些數(shù)據(jù)是最少用的牙勘,從而移除這些內(nèi)容來保證內(nèi)存不會過多
https://blog.csdn.net/justloveyou_/article/details/71713781
(6.4)圖片庫對比
http://www.reibang.com/p/fc72001dc18d
目前主流的圖片庫是Glide和Picasso,Glide的庫大小比Picasso要大,功能也比Picasso要多色徘,比如Glide的能夠加載gif圖而Picasso則不行。
(6.5)圖片庫的源碼分析
https://blog.csdn.net/guolin_blog/article/details/53759439
(6.6)圖片框架緩存實現(xiàn)
郭霖大神寫了幾篇文章介紹Glide横腿,都有詳細介紹
https://blog.csdn.net/guolin_blog/article/details/53759439
Gidle.with().url().into();
(6.7)LRUCache原理
https://www.cnblogs.com/tianzhijiexian/p/4248677.html
LRUCache是回收比較少使用的內(nèi)容斤寂,所以其原理就是通過回收不常用的內(nèi)容來避免造成OOM。LruCache的內(nèi)核是通過LinkedHashMap來判斷什么內(nèi)容時不常使用的遍搞,然后將其設(shè)置為軟引用,那么當內(nèi)存不足時系統(tǒng)會自動回收軟引用的內(nèi)容來保持內(nèi)存空間 钩杰。
(6.9)自己去實現(xiàn)圖片庫,怎么做讲弄?(隨便套個開源框架的原理)
套Glide的就OK拉,從設(shè)計思想避除,然后到實現(xiàn)方式
(6.12)說說Glide內(nèi)存緩存的具體實現(xiàn)?,
https://blog.csdn.net/guolin_blog/article/details/54895665
(7.1)說一下布局性能的排序钳枕,誰的效率最高
https://blog.csdn.net/seu_calvin/article/details/53047682
LinearLayout>FrameLayout>ReltaveLayout
RelativeLayout比前兩個低的原因是因為當嵌套了多層之后赏壹,onMeasure的調(diào)用次數(shù)會變多,如果邏輯復(fù)雜的話會導(dǎo)致性能變慢蝌借,假如說單一層的內(nèi)容的話,其實三個布局都差不多
(7.2)描述一下約束布局
https://blog.csdn.net/zhaoyanjun6/article/details/62896784
約束布局是谷歌發(fā)布的一個新的布局自晰,可以以圖形化界面來繪制一個頁面稍坯,減少嵌套酬荞,減少重疊瞧哟。更方便的繪制頁面在繪制的性能上也會比傳統(tǒng)的布局會好一些。
(7.3)關(guān)于布局優(yōu)化的方案
學(xué)會用約束布局咧党,基本優(yōu)化很多了陨亡,但是老方法還是要會傍衡,面試官多數(shù)比較守舊。因為資深蛙埂,年紀也可能稍微大一點遮糖,哈哈。
https://www.cnblogs.com/hoolay/p/6248514.html
(7.4)怎么檢測布局深度
https://blog.csdn.net/hp910315/article/details/52684039
(7.5)LinearLayout、RelativeLayout燎悍、FrameLayout的特性及對比盼理,并介紹使用場景谈山。
LinearLayout的特性是可以垂直平行來排列view宏怔,F(xiàn)rameLayout適用于元件堆疊的狀態(tài),常與Fragment聯(lián)合使用鸽粉。RelativeLayout是相對布局抓艳,以一個元件為基礎(chǔ),其他元件以其作為對照內(nèi)容來展現(xiàn)到頁面的不同位置玷或。
更多的資料全在原地址中,請多查看原文大佬的總結(jié)及前人的經(jīng)驗
另外如果我說的地方有什么不對的請大家留言蔬胯,本人非常的菜位他,大家的指點能夠讓我更加理解開發(fā)的知識點氛濒。請不要含蓄鹅髓,謝謝
安卓面試的準備一:http://www.reibang.com/p/0a12b61a8f6d
安卓面試的準備二:http://www.reibang.com/p/4459a9b6bba3