在Android開發中,有哪些好的記憶體優化方式

時間 2023-05-21 13:57:06

1樓:匿名使用者

如果不需要呼叫父類成員變數的子類應用static修飾,因為不用static修飾的會保留父類的物件引用,有時gc就不能很好地工作了。

對於方法,繼承後可使用convertview,viewholder優化。

對於sqlite的資料庫不用時最好關閉掉鏈結。

及時**bitmap。

hashmap hashmap = new hashmap ()而不是map宣告,因為基本上不會更換map型別的。

2樓:mdj東哥

我的做法是時間換空間,盡量檔案化一些占用記憶體的資料。最典型的就是listview中的bitmap,可以參考這個開源元件的實現。 其將bitmap都本地檔案快取,記憶體中只保留最近使用的4張**,在使用中發現還是會偶爾出現oom,然後我就將其改為完全的讀取檔案,記憶體中不保留**,使用以後都自動**,由此擴充套件的資料檔案也同樣快取成檔案。

除了bitmap,其他的地方沒想到什麼能占用這麼大記憶體,網路**下來的資料檔案?需要都留在記憶體中嗎?目前我做的應用,每次請求的資料大小都比較小,每次http請求下來的資料都把url轉換成檔名,然後快取成檔案,在下次http請求的時候先根據url來預讀檔案,暫時不用的資料就釋放掉。

經常會oom我覺得就是在bitmap處理的時候,比如decodefile,在往介面上載入**時,不用直接載入原圖,可以進行縮放。一張1000*1000的**要載入到乙個100*100的imageview上,直接載入進來大多數都會oom,可以先用injustdecodebounds

options = new ;

= true;

拿到這個**的大小,再算好縮放比例。

int scale = 0;

scale = int)( float)size);

if (scale <=0)

= scale;

= false;

再進行decode。

總之就是盡量時間換空間,實際這個時間是非常非常短的,使用者體驗內的。

開發android應用需要哪些,開發android應用需要哪些api

api 級別是乙個整數值,它唯一標識了某版本 android 平台所提供的 api 的版本。android 平台提供了一整套 api,應用程式可以用這些 api 與底層系統進行互動。這套api由以下部分組成 核心包和類 manifest 檔案中使用的 xml 格式的元素和屬性宣告 宣告和訪問資源時所...

西塘什麼時候開始開發的,居民在開發中有什麼困擾

西塘旅遊開發已經幾十年了,好像在1994年左右,居民在開發中一般沒有什麼困擾,只有給當地老百姓帶來了無限的生機。旅遊開發了,千年的古鎮更加充滿了活力 我剛剛從西塘回來,真的是很後悔去那。西塘是個很小的地方,完全是農村,景區基本就是圍繞著一條內河 河水渾濁不堪 兩邊的商家和旅店都是民居改建的,和平常在...

案山在風水中有哪些影響,臥室在風水中有哪些作用

青龍宜緊不宜迫,案山要近明堂臥。風水寶地的構成,不僅要求四像畢備 玄武垂首,朱雀欣舞,青龍環繞,白虎馴伏。還要求北面主龍脈要綿延不絕,南方朝案山遠近呼應,左右兩側護山拱衛,中間的明堂地勢寬敞,且有流水瀑布環抱,玄武方向的山峰垂首不語,朱雀方向的山脈欣喜歌舞,左之青龍山勢要起伏,右之白虎山形要柔順,這...