android內存優化

android對內優化的方法有很多,下面簡單介紹幾種

內存優化其實只要我們對Java的內存機制有一定的瞭解就可以做到了

(1)對於可以複用的對象(引用),不要重複頻繁地創建。當我們使用new關鍵字爲對象分配內存時,如果在整個項目中都是使用同一個引用即可,即可以使用我們常見的單例模式(例如百度地圖初始化,ImageLoader初始化),那我們就不用每次引用時都使用new關鍵詞去爲對象分配內存,否則會造成內存泄漏。

(2)要學會static關鍵字的意及其內存分佈的位置,我們都知道爲對象分配內存時,這塊內存就會位於一塊連續的堆內存,這個對象所屬的類裏面有很多變量和方法,如果這些對象和方法沒有使用到static關鍵字來修飾,那這些變量和方法就會與該類對象的內存綁定在一起,當該類的內存被釋放時,所有這些變量和方法都會被回收。如果使用了static關鍵字,那麼那個變量或者方法的內存位置就會獨自位於全局數據區,與類對象所在的堆內存是相互獨立的,那麼如果回收了該類對象,那麼該類中的有static關鍵字的變量或方法將無法回收(一般靜態常量和全局公共方法才使用static關鍵字),就會造成內存泄漏。

(3)用SparseArray代替HashMap

SparseArray是Android框架獨有的類,在標準的JDK中不存在這個類。而HashMap是JDK中的類,SparseArray要比 HashMap 節省內存,某些情況下比HashMap性能更好,按照官方問答的解釋,主要是因爲SparseArray不需要對key和value進行auto-boxing(將原始類型封裝爲對象類型,比如把int類型封裝成Integer類型),結構比HashMap簡單(SparseArray內部主要使用兩個一維數組來保存數據,一個用來存key,一個用來存value)不需要額外的額外的數據結構(主要是針對HashMap中的HashMapEntry而言的)

(4)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章