雖然Android智能手機和平板電腦的速度一天比一天快,可是開發者必須記住一點:他們開發的應用程序仍在一種資源緊張的環境下運行,這種環境主要依賴性能與最新的臺式機或筆記本電腦沒法比擬的電池和處理器。下面介紹的一些方法能夠幫助你的應用程序「瘦身」或者說「Android提高開發性能十大要點」,以便它們在今天和明天的Android設備上最順暢地運行。html
先來講說確保應用程序響應迅即的幾個編程要點。android
第一個要點:首先要有良好的編程習慣算法
要成爲一名優秀的資源管理員;既要運用常識,還要使用公認的算法和標準的設計模式。在資源使用方面,若是你打開了資源,要記得關閉資源。要儘可能晚地獲取,儘可能早地釋放。這些由來已久的編程準則一樣適用於你的Android應用程序,若是它們使用底層的設備服務,更是如此。數據庫
好比說,假設你編寫的一個應用程序依賴基於位置的服務。除非你絕對有必要,不然不要開始註冊、獲取位置最新信息;並且要確保,一旦你再也不須要這些信息,就要取消獲取最新信息的註冊。這將幫助你避免沒必要要地耗費設備電池電量或佔用系統資源。編程
第二個要點:讓阻塞操做遠離主用戶界面線程設計模式
想確保你的應用程序運行起來很靈活,就要使用AsyncTask、線程、IntentService或自定義後臺服務來處理髒活。應使用裝入器來簡化裝入時間長的數據(如遊標)的狀態管理。你沒法容忍你的應用程序在某個操做正在處理的時候出現滯後或停頓。異步
若是某個操做很費時間和資源,就要卸載這部分操做、對它進行異步處理,那樣你的應用程序仍保持響應迅即,用戶能夠處理他們的事務。這個原則適用於下列操做:磁盤讀寫,訪問內容提供方、數據庫和互聯網,以及解析和其餘長時間的任務。ide
第三個要點:使用最新的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,這款圖形化工具能夠幫助你調試和找到應用程序中的性能瓶頸。不妨看看Android說明文檔中介紹的一些調試工具。
結束語
有許多方法能夠幫助你提高Android應用程序的性能。有些須要使用特定的算法,有些依賴切實可行的調試和性能監測技巧。幸虧,Android平臺隨帶衆多免費的實用工具,能夠幫助你查明和消除應用程序裏面的性能問題。既然有了這些工具,就要立馬使用!