1. 程式人生 > >Android除錯技巧之模擬記憶體不足

Android除錯技巧之模擬記憶體不足

Android開發中經常會遇到記憶體問題,如果測試人員的測試機比較低端的話,常常會遇到下面比較尷尬又無奈的情景:

開發人員開發完成了一個功能並自測沒有問題,交給測試,過了一會測試反饋說點選崩潰等一系列問題。尼瑪開發在自己的手機上測試完全沒有問題啊,無法重現測試所說的bug,於是屁顛屁顛的找測試MM理論,你他媽給我重現一下,我的手機上是好的。然而測試MM就當著開發的面重現了Bug.打臉啊哭

這種問題一般在低端手機上發生的概率比較高,很有可能是記憶體的問題,但是記憶體問題很不好定位。可以使用LeakCanary框架檢測記憶體洩漏之外,我們還可以使用真機模擬記憶體不足的場景,方便我們debug模式除錯程式。

開啟手機的“開發者選項”中的“不保留活動”即可,開啟此開關後,只要activity退到後臺不可見就會回收掉,從而模擬記憶體不足回收activity的場景:


相關推薦

Android除錯技巧模擬記憶體不足

Android開發中經常會遇到記憶體問題,如果測試人員的測試機比較低端的話,常常會遇到下面比較尷尬又無奈的情景:開發人員開發完成了一個功能並自測沒有問題,交給測試,過了一會測試反饋說點選崩潰等一系列問題。尼瑪開發在自己的手機上測試完全沒有問題啊,無法重現測試所說的bug,於是

Android動態除錯sodump記憶體資料

1.配置環境 一臺已root手機 IDA pro6.6 Android SDK 準備工作: 1.1把Android SDK新增到環境變數中 1.2把已root手機的系統中關鍵so拖到本地,必要時可以靜態讀取,獲取系統函式的偏移地址。 例如把手機系統的system/lib的檔案拖到本地debugging資料

Android實戰技巧三十八:Handler使用中可能引發的內存泄漏

sha 指向 ons har 引用 destroy 對象 from weak 問題描寫敘述 曾幾何時,我們用原來的辦法使用Handler時會有以下一段溫馨的提示: This Handler class should be static or le

android技巧點擊兩次退出活動

code over ast finish int ide amp return ini 通常在主活動中可以設置連擊退出程序,下面通過代碼來實現這一功能: @Override//按兩次back鍵退出public boolean onKeyDown(int keyCode, K

Android開發技巧:QQ第三方登入(二)

接 android QQ第三方登入(一)  獲取登入使用者名稱資訊,這邊先抱怨一下,官方API有點坑 Constants原始碼類下就是找不到GRAPH_SIMPLE_USER_INFO這個屬性!無語! 根據官方提供返回的的JSONObject資訊解析:

Android開發技巧:QQ第三方登入(一)

使用的是Android_SDK_V2.9.1,建議使用最新版; 官方下載:SDK下載  Android studio 中新增到 然後在點選build.gradle檔案新增 配置AndroidManifest 在應用的Andr

Android實戰技巧六 PreferenceActivity使用詳解

                一、寫作前面當我們做應用的時候,需要使用者配置一些資訊,而這就是通常所說的應用設定。對於Android系統來說,系統本身的設定帶來的使用者體驗和習慣已經深入人心,在我們的應用中同樣用到類似的設定頁,那麼使用者使用起來就會更加親切和方便。是嗎?那我們應該怎麼做到呢?這就要靠本文的

Android實戰技巧三十五 瞭解native activity

                     1.native activity的意義很多人覺得Android的Fwk提供的支援足夠好了,既然Google不推薦用Ndk開發為什麼又放寬Ndk的限制而推出可以無Java開發Android App呢?我的理解是不同的技術實現會有其適合的場景。 Ndk的適用場景官方給出

Android實戰技巧四十九:Usb通訊USB Host

零 USB背景知識 USB是一種資料通訊方式,也是一種資料匯流排,而且是最複雜的匯流排之一。 硬體上,它是用插頭連線。一邊是公頭(plug),一邊是母頭(receptacle)。例如,PC上的插座就是母頭,USB裝置使用公頭與PC連線。 目前USB硬體介面

Android開發技巧xml tools屬性詳解

我們知道,在 Android 開發過程中,我們的資料常常來自於服務端,只有在執行時才能獲得資料展示,因此在佈局 XML 的編寫過程中,由於缺少資料,我們很難直接看到填充資料後的佈局效果,那這個時候你一般是怎麼做的呢? 經常看到一些小夥伴的做法是在佈局檔案中臨時

android 除錯技巧

一. 獲取Trace 呼叫棧資訊(Trace)是分析異常經常使用的,這裡簡單劃分兩類情況:     當前執行緒Trace: 當前執行流所線上程的呼叫棧資訊;     目標程序Trace:可獲取目標程序的呼叫棧,用於動態除錯; 1.1 當前執行緒Trace 1) Java層

Android實戰技巧四十:Android5.1.1原始碼編譯與燒寫

購買Nexus手機的朋友大多是為了自己修改系統玩,再加上其較高的價效比,在開發者中還是廣受歡迎的。我的5太子被我升級到了6.0預覽版,玩的正嗨,捨不得換回到5.1時代了。不過鑑於距6.0原始碼釋出還有段日子,5.1的原始碼編譯與燒寫仍是主流,下面就記錄了整個過程

Android實戰技巧九:最新Android開發環境(Eclipse+ADT+Android 5.0)

一、一切由執行時錯誤引起dalvikvm Could not find class '引用包.類', referenced from method... 其實在編譯時也會見到如下錯誤:       [dx]        [dx] trouble processing:   

Android實戰技巧三十五:瞭解native activity

1.native activity的意義 很多人覺得Android的Fwk提供的支援足夠好了,既然Google不推薦用Ndk開發為什麼又放寬Ndk的限制而推出可以無Java開發Android App呢?我的理解是不同的技術實現會有其適合的場景。 Ndk的適用

Android 開發技巧 禁止截圖和螢幕常亮

1 禁止截圖         出於安全考慮,我們需要對某些介面,比如二維碼介面,登入介面禁止截圖。(像支付寶的付款二維碼)   禁止截圖的程式碼很簡單就一行,在Activity 生命初期的onCre

Android實戰技巧二十一:Android原型設計工具探索

移動開發者、移動產品經理和互動設計師在有了產品的想法後會做出一系列的草圖,然後反覆推敲改進,直到自己滿意。這個草圖就是原型設計,是產品設計初期很重要的工作,它是產品的雛形,之後會以此為原型進行開發。 當移動網際網路熱度增加後,一些主打移動原型設計的工具如雨後春

Android實戰技巧三十七:圖片的Base64編解碼

通常用Base64這種編解碼方式將二進位制資料轉換成可見的字串格式,就是我們常說的大串,10塊錢一串的那種,^_^。 Android的android.util包下直接提供了一個功能十分完備的Base64類供我們使用,下面就演示一下如何將一張圖片進行Base64

Android實戰技巧四十 Android5 1 1原始碼編譯與燒寫

                     購買Nexus手機的朋友大多是為了自己修改系統玩,再加上其較高的價效比,在開發者中還是廣受歡迎的。我的5太子被我升級到了6.0預覽版,玩的正嗨,捨不得換回到5.1時代了。不過鑑於距6.0原始碼釋出還有段日子,5.1的原始碼編譯與燒寫仍是主流,下面就記錄了整個過程(持續

JavaScript除錯技巧console.log()詳解

對於JavaScript程式的除錯,相比於alert(),使用console.log()是一種更好的方式,原因在於:alert()函式會阻斷JavaScript程式的執行,從而造成副作用; alert彈出框需要點選確認比較麻煩,而console.log()僅在控制檯中列印相關資訊,因此不會造成類似的顧慮。

android studio技巧設定monitor視窗模式檢視logcat

在windows下做Android開發最為麻煩就是看logcat,巨硬的自帶cmd視窗太難用,而且還存在列印utf-8亂碼問題。幸好Android studio的monitor能夠看logcat,嚴格上將monitor是Android SDK的tools工具集,只是Android studio集