隨著手機(jī)平臺(tái)的發(fā)展和所提供應(yīng)用的提升,質(zhì)量成為應(yīng)用成功的重要因素。如果那些應(yīng)用無(wú)法提供強(qiáng)大的功能和穩(wěn)定的用戶(hù)體驗(yàn),那會(huì)很快被用戶(hù)卸載。開(kāi)發(fā)者需要記住的是,雖然Android智能手機(jī)和平板電腦的速度日益提升,但其應(yīng)用仍然運(yùn)行在資源有限的環(huán)境中,其電池及處理器性能與新的臺(tái)式電腦、手提電腦仍存在差距。以下是某些優(yōu)化應(yīng)用運(yùn)行效果的方法:

我們先來(lái)闡述某些讓?xiě)?yīng)用反應(yīng)靈敏的編程技巧。

 

Android_development(from apalon)

技巧1:從的編程開(kāi)始

要采用已為用戶(hù)所接受的運(yùn)算法則和標(biāo)準(zhǔn)的設(shè)計(jì)樣式,這些被人們長(zhǎng)期使用的編程法則也同樣適用于Android應(yīng)用,尤其當(dāng)這些應(yīng)用使用內(nèi)在設(shè)備服務(wù)時(shí)。

比如,假設(shè)你編寫(xiě)的應(yīng)用需要以地理定位服務(wù)為基礎(chǔ)。只需要在必要時(shí)開(kāi)始注冊(cè)進(jìn)行位置更新,在無(wú)需更新信息時(shí),確保應(yīng)用停止更新進(jìn)程。這會(huì)幫助節(jié)省設(shè)備的電量和系統(tǒng)處理器的負(fù)擔(dān)。

技巧2:保持應(yīng)用的靈活性

通過(guò)使用AsyncTask、IntentService或自定義背景服務(wù)來(lái)保持應(yīng)用的靈活性。使用加載器來(lái)簡(jiǎn)化加載時(shí)間較長(zhǎng)數(shù)據(jù)的狀態(tài)管理,比如光標(biāo)。不可讓?xiě)?yīng)用在其他進(jìn)程進(jìn)行時(shí)顯得緩慢或完全靜止。

如果某些操作需要一定的時(shí)間和資源,應(yīng)當(dāng)將這個(gè)進(jìn)程單獨(dú)分離出來(lái)異步處理,這樣你的應(yīng)用才能夠保持流暢的運(yùn)行?梢赃\(yùn)用這種方法的操作包括:磁盤(pán)讀寫(xiě),訪問(wèn)內(nèi)容供應(yīng)方、數(shù)據(jù)庫(kù)和網(wǎng)絡(luò),其他需要較長(zhǎng)時(shí)間的任務(wù)。

技巧3:使用新的Android SDK版本和API

保持應(yīng)用的更新,使用Android平臺(tái)提供的新內(nèi)容。隨著Android平臺(tái)的發(fā)展,它也在逐步改善中。某些功能被移除,或者替換成更好的選項(xiàng)。其核心API中的漏洞已修復(fù),整個(gè)API性能已得到提升。該平臺(tái)已引入裝載器之類(lèi)的新API,幫助開(kāi)發(fā)者編寫(xiě)更為穩(wěn)定和反應(yīng)靈敏的應(yīng)用。

Android 3.0應(yīng)用支持硬件加速,你可以加以應(yīng)用。應(yīng)當(dāng)理解的是,佳的表現(xiàn)情況會(huì)隨著時(shí)間逐漸改變。睿智的開(kāi)發(fā)者會(huì)更新平臺(tái)發(fā)布的新內(nèi)容和API。

技巧4:檢查Strict Mode

你可以使用稱(chēng)為“StrictMode”的Android API來(lái)查找編程中的問(wèn)題。StrictMode會(huì)幫助你識(shí)別應(yīng)用是否正在耗費(fèi)內(nèi)存,也可以幫你檢查應(yīng)用是否正在嘗試開(kāi)展漫長(zhǎng)的模塊化操作。

StrictMode類(lèi)(注:即android.os.StrictMode)與Android 2.3同期發(fā)布。

技巧5:在發(fā)布之前停用或小化調(diào)試和診斷

你在Android應(yīng)用的開(kāi)發(fā)中可能會(huì)將某些調(diào)試代碼構(gòu)建其中。在應(yīng)用發(fā)布之前確保這些功能被小化或完全停用。

接下來(lái),讓我們來(lái)討論如何用的用戶(hù)界面設(shè)計(jì)原則讓你的應(yīng)用加載速度更快。

技巧6:保持布局簡(jiǎn)潔自然

簡(jiǎn)潔自然的布局會(huì)加快加載速度。不要讓屏幕布局中充斥過(guò)多不必要的內(nèi)容;c(diǎn)時(shí)間開(kāi)發(fā)用戶(hù)可以有效使用的簡(jiǎn)潔用戶(hù)界面,不要將過(guò)多的功能性?xún)?nèi)容塞入單個(gè)屏幕中。這不僅對(duì)應(yīng)用表現(xiàn)有幫助,而且會(huì)幫助用戶(hù)更有效地使用應(yīng)用。

分割內(nèi)容可以幫助劃分用戶(hù)界面功能性,同時(shí)不犧牲應(yīng)用在各種不同設(shè)備上的靈活性。

技巧7:根據(jù)目標(biāo)設(shè)備調(diào)整應(yīng)用資源

根據(jù)特定的設(shè)備配置來(lái)調(diào)整資源,這樣它們能夠有效地加載。在圖像資源方面,這個(gè)顯得尤為重要。如果你的應(yīng)用中有大型的圖片資源需要加載,那么要做好調(diào)整。

另一個(gè)技巧是,當(dāng)以許多種設(shè)備為目標(biāo)時(shí),保持應(yīng)用包文件大小合適,只需要在其中包含應(yīng)用運(yùn)行所需的核心資源即可,然后讓用戶(hù)根據(jù)具體設(shè)備下載應(yīng)用其他內(nèi)容。

技巧8:使用Hierarchy Viewer工具

Hierarchy Viewer工具可以幫助你解除應(yīng)用布局中的漏洞。它還提供了許多有價(jià)值的信息,比如每個(gè)View控制需要多長(zhǎng)的時(shí)間。找到問(wèn)題所屬領(lǐng)域,這樣解決問(wèn)題會(huì)更加簡(jiǎn)單。

技巧9:使用layoutopt工具

layoutopt工具是個(gè)簡(jiǎn)單的命令行工具,可以幫助你識(shí)別不必要的控制和其他讓你布局資源崩潰的事項(xiàng),提升其性能。它可以幫助你找到不必要的多余布局控制。較少和較淺布局可優(yōu)化應(yīng)用運(yùn)行性能。

后,在自認(rèn)為應(yīng)用達(dá)到好狀況時(shí),對(duì)其進(jìn)行測(cè)試。

技巧10:使用Traceview和其他Android應(yīng)用壓縮工具

Android SDK中有許多可以壓縮應(yīng)用的工具。可能流行的工具是Traceview,這個(gè)圖像工具可以幫助你調(diào)試和找到應(yīng)用的性能問(wèn)題。

結(jié)語(yǔ)

目前有許多方法可以讓你的Android應(yīng)用運(yùn)行加速。有些涉及到使用某種具體的運(yùn)算法則,其他依靠某些真正的調(diào)試和運(yùn)行監(jiān)管技術(shù)。Android平臺(tái)中有許多種免費(fèi)的工具可以用來(lái)幫助跟蹤和調(diào)整應(yīng)用中的表現(xiàn)問(wèn)題。你已經(jīng)知道了以上10種技巧,現(xiàn)在可以嘗試使用它們!