真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么優(yōu)化Android的性能-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“怎么優(yōu)化Android的性能”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都做網(wǎng)站、壺關(guān)網(wǎng)絡(luò)推廣、成都微信小程序、壺關(guān)網(wǎng)絡(luò)營銷、壺關(guān)企業(yè)策劃、壺關(guān)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供壺關(guān)建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

Android中的Java代碼會需要經(jīng)過編譯優(yōu)化再執(zhí)行的過程。代碼的不同寫法會影響到Java編譯器的優(yōu)化效率。例如for循環(huán)的不同寫法就會對編譯器優(yōu)化這段代碼產(chǎn)生不同的效率,當程序中包含大量這種可優(yōu)化的代碼的時候,運算性能就會出現(xiàn)問題。想要知道如何優(yōu)化代碼的運算性能就需要知道代碼在硬件層的執(zhí)行差異。
2)Slow Function Performance

如果你寫了一段代碼,它的執(zhí)行效率比想象中的要差很多。我們需要知道有哪些因素有可能影響到這段代碼的執(zhí)行效率。例如:比較兩個float數(shù)值大小的執(zhí)行時間是int數(shù)值的4倍左右。這是因為CPU的運算架構(gòu)導致的,如下圖所示:

怎么優(yōu)化Android的性能

雖然現(xiàn)代的CPU架構(gòu)得到了很大的提升,也許并不存在上面所示的那么大的差異,但是這個例子說明了代碼寫法上的差異會對運算性能產(chǎn)生很大的影響。

通常來說有兩類運行效率差的情況:第1種是相對執(zhí)行時間長的方法,我們可以很輕松的找到這些方法并做一定的優(yōu)化。第2種是執(zhí)行時間短,但是執(zhí)行頻次很高的方法,因為執(zhí)行次數(shù)多,累積效應(yīng)下就會對性能產(chǎn)生很大的影響。

修復(fù)這些細節(jié)效率問題,需要使用Android SDK提供的工具,進行仔細的測量,然后再進行微調(diào)修復(fù)。
3)Traceview Walkthrough

通過Android Studio打開里面的Android Device Monitor,切換到DDMS窗口,點擊左邊欄上面想要跟蹤的進程,再點擊上面的Start Method Tracing的按鈕,如下圖所示:

怎么優(yōu)化Android的性能

啟動跟蹤之后,再操控app,做一些你想要跟蹤的事件,例如滑動listview,點擊某些視圖進入另外一個頁面等等。操作完之后,回到Android Device Monitor,再次點擊Method Tracing的按鈕停止跟蹤。此時工具會為剛才的操作生成TraceView的詳細視圖。

怎么優(yōu)化Android的性能

關(guān)于TraceView中詳細數(shù)據(jù)如何查看,這里不展開了,有很多文章介紹過。
4)Batching and Caching

為了提升運算性能,這里介紹2個非常重要的技術(shù),Batching與Caching。

Batching是在真正執(zhí)行運算操作之前對數(shù)據(jù)進行批量預(yù)處理,例如你需要有這樣一個方法,它的作用是查找某個值是否存在與于一堆數(shù)據(jù)中。假設(shè)一個前提,我們會先對數(shù)據(jù)做排序,然后使用二分查找法來判斷值是否存在。我們先看***種情況,下圖中存在著多次重復(fù)的排序操作。

怎么優(yōu)化Android的性能

在上面的那種寫法下,如果數(shù)據(jù)的量級并不大的話,應(yīng)該還可以接受,可是如果數(shù)據(jù)集非常大,就會有嚴重的效率問題。那么我們看下改進的寫法,把排序的操作打包綁定只執(zhí)行一次:

上面就是Batching的一種示例:把重復(fù)的操作拎出來,打包只執(zhí)行一次。

怎么優(yōu)化Android的性能

Caching的理念很容易理解,在很多方面都有體現(xiàn),下面舉一個for循環(huán)的例子:

怎么優(yōu)化Android的性能

上面這2種基礎(chǔ)技巧非常實用,積極恰當?shù)氖褂媚軌蝻@著提升運算性能。
5)Blocking the UI Thread

提升代碼的運算效率是改善性能的一方面,讓代碼執(zhí)行在哪個線程也同樣很重要。我們都知道Android的Main Thread也是UI Thread,它需要承擔用戶的觸摸事件的反饋,界面視圖的渲染等操作。這就意味著,我們不能在Main Thread里面做任何非輕量級的操作,類似I/O操作會花費大量時間,這很有可能會導致界面渲染發(fā)生丟幀的現(xiàn)象,甚至有可能導致ANR。防止這些問題的解決辦法就是把那些可能有性能問題的代碼移到非UI線程進行操作。
6)Container Performance

另外一個我們需要注意的運算性能問題是基礎(chǔ)算法的合理選擇,例如冒泡排序與快速排序的性能差異:

怎么優(yōu)化Android的性能

避免我們重復(fù)造輪子,Java提供了很多現(xiàn)成的容器,例如Vector,ArrayList,LinkedList,HashMap等等,在Android里面還有新增加的SparseArray等,我們需要了解這些基礎(chǔ)容器的性能差異以及適用場景。這樣才能夠選擇合適的容器,達到***的性能。

怎么優(yōu)化Android的性能

“怎么優(yōu)化Android的性能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


文章名稱:怎么優(yōu)化Android的性能-創(chuàng)新互聯(lián)
URL鏈接:http://weahome.cn/article/dejeoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部