編輯:Android開發實例
一、ANR有關
ANR=Application Not Responding
在Android上,如果你的應用程序有一段時間響應不夠靈敏(5秒內沒有輸入響應事件),系統會向用戶顯示一個對話框,這個對話框稱作應用程序無響應(ANR:Application Not Responding)對話框。Handlermessage或者BroadcastReceiver處理過程時間超過十秒也會引起。
避免方法:運行在主線程裡的任何方法都盡可能少做事情。特別是,Activity應該在它的關鍵生命周期方法(如onCreate()和onResume())裡盡可能少的去做創建操作。潛在的耗時操作,例如網絡或數據庫操作,或者高耗時的計算如改變位圖尺寸,應該在子線程裡(或者以數據庫操作為例,通過異步請求的方式)來完成。主線程應該為子線程提供一個Handler,以便完成時能夠提交給主線程。以這種方式設計你的應用程序,將能保證你的主線程保持對輸入的響應性並能避免由於5秒輸入事件的超時引發的ANR對話框。
IntentReceiver執行時間的特殊限制意味著它應該做:在後台裡做小的、瑣碎的工作如保存設定或者注冊一個Notification。和在主線程裡調用的其它方法一樣,應用程序應該避免在BroadcastReceiver裡做耗時的操作或計算。替代的是,如果響應Intent廣播需要執行一個耗時的動作的話,應用程序應該啟動一個Service。順便提及一句,你也應該避免在Intent Receiver裡啟動一個Activity,因為它會創建一個新的畫面,並從當前用戶正在運行的程序上搶奪焦點。如果你的應用程序在響應Intent廣播時需要向用戶展示什麼,你應該使用Notification Manager來實現。
一般來說,在應用程序裡,100到200ms是用戶能感知阻滯的時間阈值。
如果你的應用程序為響應用戶輸入正在後台工作的話,可以顯示工作的進度(ProgressBar和ProgressDialog對這種情況來說很有用)。
特別是游戲,在子線程裡做移動的計算。
如果你的應用程序有一個耗時的初始化過程的話,考慮可以顯示一個Splash Screen或者快速顯示主畫面並異步來填充這些信息。在這兩種情況下,你都應該顯示正在進行的進度,以免用戶認為應用程序被凍結了。
二、自動化測試工具Monkey
1、什麼是Monkey
Monkey是Android中的一個命令行工具,可以運行在模擬器裡或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。
2、 Monkey的特征
A、測試的對象僅為應用程序包,有一定的局限性。
B、 Monky測試使用的事件流數據流是隨機的,不能進行自定義。
C、可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。
3、Monkey的基本用法
$ adb shell monkey –p(包) your.package.name –v(頻率) 500
4、Monkey測試的停止條件
Monkey Test執行過程中在下列三種情況下會自動停止:
A、如果限定了Monkey運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止。
B、如果應用程序崩潰或接收到任何失控異常,Monkey將停止並報錯。
C、如果應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會停止並報錯。
前言 本文主要介紹在Android中怎樣來解析XML文件。主要采用的是SAX機制,SAX全稱為Simple API for XML,它既是一種
目前Android已經在只能手機市場已經具有強大的霸主地位,也吸引了越來越多的追捧者。Android的學習也越來越火。但是,報名費用確實大多人望而卻步 一、新建項
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
前面兩部分分別講了RSS概述和解析XML文件,本節講解怎樣在列表中顯示RSS內