以下是提升你開發的Android應用的效能的十個要點:良好的程式設計習慣、讓阻塞操作遠離主使用者介面執行緒、使用最新的Android SDK、使用限制模式、少用除錯和診斷、佈局簡練、資源適合目標裝置、使用工具幫助分析。
方法/步驟
首先要有良好的程式設計習慣
要成為一名優秀的資源管理員;既要運用常識,還要使用公認的演算法和標準的設計模式。在資源使用方面,如果你打開了資源,要記得關閉資源。要儘量晚地獲取,儘量早地釋放。這些由來已久的程式設計準則同樣適用於你的Android應用程式,如果它們使用底層的裝置服務,更是如此。
比如說,假設你編寫的一個應用程式依賴基於位置的服務。除非你絕對有必要,否則不要開始註冊、獲取位置最新資訊;而且要確保,一旦你不再需要這些資訊,就要取消獲取最新資訊的註冊。這將幫助你避免不必要地耗費裝置電池電量或佔用系統資源。
讓阻塞操作遠離主使用者介面執行緒
想確保你的應用程式執行起來很靈活,就要使用AsyncTask、執行緒、IntentService或自定義後臺服務來處理髒活。應使用裝入器來簡化裝入時間長的資料(如遊標)的狀態管理。你無法容忍你的應用程式在某個操作正在處理的時候出現滯後或停頓。
如果某個操作很費時間和資源,就要解除安裝這部分操作、對它進行非同步處理,那樣你的應用程式仍保持響應迅即,使用者可以處理他們的事務。這個原則適用於下列操作:磁碟讀寫,訪問內容提供方、資料庫和網際網路,以及解析和其他長時間的任務。
使用最新的Android軟體開發工具包(SDK)版本、應用程式設計介面(API)和最佳實踐
確保你開發的應用程式是最新的,因而要使用Android平臺提供的最新工具。隨著Android平臺不斷髮展,它也在不斷改進。一些功能 可能已被棄用,或者換成了更好的功能。核心API得到了修正版(bug fix)和效能改進。已經引入了裝入器等新的API,幫助開發者編寫出執行更穩定、響應更迅即的應用程式。
你知道可以啟用Android3.0應用程式中的硬體加速功能嗎?趕緊啟用吧!要明白最佳實踐會隨著時間的變化而變化。明智的開發者密切關注Android平臺的新功能、哪些功能不再被推薦。
考慮使用限制模式(Strict Mode)
你可以使用名為限制模式(StrictMode)的AndroidAPI,幫助你查明哪裡違反了幾個良好的程式設計習慣。StrictMode 會幫助你確認你的應用程式是不是存在記憶體洩漏,並且檢測你的應用程式是不是在試圖執行長時間的阻塞操作,這些操作應該被解除安裝到執行緒或別的渠道(參閱第二個 要點)。
Android2.3裡面引入StrictMode類(android.os.StrictMode)。
在釋出應用程式之前,禁用或儘量少用除錯和診斷
如果你的Android應用程式開發起來需要一些時間,你可能已將一些日誌和除錯程式碼嵌入到了應用程式中。寫入到日誌及其他此類輸出系統給效能帶來了影響。確保在釋出應用程式之前,儘量少用或完全禁用這些功能。
現在不妨說說如何運用良好的使用者介面設計原則,讓你應用程式的螢幕更快速地裝入:
確保你設計的佈局簡單、簡練和淺層
簡單的螢幕有助於閱讀起來最輕鬆,而簡單的佈局裝入起來最快速。你不應該過於深層地巢狀你的佈局,或者用不必要的過多檢視(View)控制元件 塞滿螢幕。花些時間來開發使用者可以高效使用的簡練使用者介面,而不是試圖把太多功能塞入到單單一個螢幕上。這不但有助於提升應用程式的效能,還有助於讓你的 應用程式對使用者來說更高效。
Fragments有助於在不影響靈活地針對不同型別的裝置進行設計的情況下,劃分使用者介面功能。
讓你應用程式的資源適合目標裝置
新增適合特定裝置配置的資源,那樣它們就能儘可能高效地裝入。我們在談論圖形資源時,這點尤為重要。如果你添加了可利用的龐大影象資源,需要裝入和調整大小,就無法有效地使用其他的應用程式資源。
另一個要點就是,如果你準備你的應用程式可以在許多裝置上執行,為了讓應用程式軟體包檔案保持合理的大小,應該最初只新增執行應用程式所需要的核心資源,然後讓應用程式下載適合該裝置的內容。
使用Hierarchy Viewer工具
Hierarchy Viewer工具可以幫助你除錯你的應用程式佈局。它還提供了寶貴的分析資訊,以便了解佈局裡面的每一個檢視控制元件測量、渲染和繪製要花多少時間。只有準確找到了問題的根源,問題解決起來才容易。
使用layoutopt工具
Layoutopt工具是一款簡單的命令列工具,它可以幫助你找到不必要的控制元件巢狀以及縮減佈局資源的其他方法,以便儘量減少資源的使用。它讓你可以瞭解哪些佈局控制元件可能是多餘的或不必要的。控制元件越少、佈局層次越淺,效能就越好。
最後,你認為你的應用程式做到了最好嗎?現在該對它測試一下了。
使用Traceview及其他Android工具進行分析
Android SDK隨帶了許多工具,可用來對你的應用程式進行分析。其中最流行的工具恐怕莫過於Traceview,這款圖形化工具可以幫助你除錯和找到應用程式中的效能瓶頸。