亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Android教學中遇到的內存泄露和內存溢出

Android教學中遇到的內存泄露和內存溢出 時間:2018-09-26      來源:未知

在Android中每個App的內存是有限的,一般來講,在開發的過程中我們要避免無謂的內存占用。實際教學過程中,有一個很簡單但是很多學生經常會犯的錯誤,在此指出。

觀察以下代碼:

學生乍一看,沒有太大的問題。當然,這個也反應出了很多學生的一個不好的習慣。

首先,Drawable雖然是一種抽象的圖像概念,但是它確實是占用不少資源的,使用static關鍵字來修飾,雖然在編寫的過程中比較省事,但是導致的問題是static修飾的sBackground資源不會輕易釋放,更為嚴重的是,這個sBackground的Drawable持有對其Activity的引用。

這樣就導致這個Activity的實例也不會被釋放,導致內存泄露。

這個問題非常嚴重,但是很多學生現在的階段并不是很關注,因此static關鍵字的教學的過程中應該進行再反思。

關于上文的內存泄露,特別是內存溢出,兩者之間的關系來說明一下。

實際上來說,泄露和溢出這兩個形容并不是很好區分。首先這兩前者是一個狀態,后者是一個結果。

內存泄露是應用使用資源后沒有及時釋放(如本文中例子),導致內存中一直持有多余的內存占用,這個狀態的累積會導致可用內存越來越少。舉例:一個人的資產有一100萬,但是他想買一輛50萬的車,雖然有一百萬的資產,但是身上帶著的銀行卡里只有100元,跟老板口舌一下,也能買,但是這個債務會一直存在。如果一直這樣消費,債務會滾雪球,早晚有崩潰的一天。

內存溢出是指堆棧達到大值后,應用內存無法滿足需求了,導致Crash現象,這是一個結果。舉例:還是上文中的那個人,他想買300萬的房子,這樣根本就買不了。

如果說上面的例子還不足以理解其原因,下面再舉一例:

如上例所示,delay的時間過長也可能導致資源無法及時釋放,這也是一種形式的內存泄露。

一次內存泄露可能并不能有實質性的結果,但是不好的編程習慣,多次的內存泄露終會導致內存溢出,引發重大的bug,這是我們應該極力避免的事情。

雖然在Android開發中Java是基礎語法,Java的垃圾回收機制比較智能,很多情況下并不需要編程者去思考很多問題,但是正是因為這種機制可能會導致很多不可預知的小錯誤的累積。

當然,導致內存泄露和溢出的問題有很多,比如在開發中由于圖片資源占用過多。這些問題我會在今后的博文中跟大家繼續分享。我個人也在不斷的學習之中,希望各位讀者能與我也做一些交流探討。

一個優秀的開發者不僅僅應該局限于寫出程序,而是寫好程序。

上一篇:Gpio模擬i2c總線對24c02進行讀寫

下一篇:Linux下動態庫和靜態庫的制作及使用

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲v日本| wwwjizz日本| 99re这里只有精品在线 | 欧美精品片在线观看网站 | 伊人久热这里只有精品视频99 | 精品久久中文字幕 | 久久久青青草 | 日本jizz视频| 久久精品这里热有精品2015 | 日本高清视频www夜色资源 | 亚洲国产精品综合久久久 | 99精品中文字幕 | 国产黄色免费网站 | 天天操天天看 | 天天干天天干天天天天天天爽 | 三级精品视频在线播放 | 青娱乐精品 | 高清亚洲综合色成在线播放放 | 久久这里只精品国产99热8 | 在线三级网 | 久久人人爽人人爽 | 欧美网站视频 | 男人在天堂 | 色香婷婷| 免费的黄色大片 | 国内精品久久久久影院欧美 | 91久久夜色精品国产九色 | 波多结衣一区二区三区 | 天天看天天做 | 免费高清观看的视频 | 久久综合久久综合久久综合 | 中文字幕人成不卡一区 | 日本色综合 | jizz在线播放 | 真正全免费视频a毛片 | 99久久精彩视频 | 国产一级毛片一区二区三区 | 国产精品久久久久久久久久一区 | www.comjizz| 欧美日韩亚洲国产千人斩 | 在线a视频|