欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android的UI調(diào)優(yōu)-創(chuàng)新互聯(lián)

對于一個App的UI而言,在流暢性上的改進目標(biāo)其實就是降低屏幕繪制的延遲,創(chuàng)建流暢和穩(wěn)定的幀率以避免卡頓。

成都創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:自適應(yīng)網(wǎng)站建設(shè)、成都品牌網(wǎng)站建設(shè)、全網(wǎng)整合營銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機等移動端的優(yōu)質(zhì)呈現(xiàn)。成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運營、VI設(shè)計、云產(chǎn)品.運維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。

   在理想情況下,全部的測量、布局和繪制的時間最好在16ms以內(nèi),這樣才能保證屏幕運行的順暢性。而如何對屏幕渲染和UI性能進行評估和分析呢,在Android SDK中集成了一些工具用來策略APP的渲染性能問題。

一、視圖的層級分析:

        對于每一個視圖而言,都需要經(jīng)過三個步驟:測量、布局和渲染。而App如何繪制視圖,它需要從頂部節(jié)點開始測量,沿著布局樹逐個渲染,視圖樹的層級越多,嵌套測量的次數(shù)越多,測量的時間也會越長。而一旦測量完畢就會進行布局,每個視圖都會對自己的子視圖進行布局,子視圖布局完畢后回到父視圖,然后再到根視圖,布局完成后,每個視圖都會被繪制在屏幕上。

        顯然,App的視圖越多,層級越深就需要越長的時間測量、布局和繪制,為了減少這些時間,需要盡可能保持視圖層級的扁平化并刪除所有沒有必要渲染的視圖。

        雖然在XML布局文件中可以查看布局的節(jié)點視圖,單很難找到多余的視圖,為了找到這些多余的視圖,可以利用Android Studio中的Hierarchy Viewer工具來分析Android App中的視圖。

        Hierarchy Viewer(層次結(jié)構(gòu)查看器)能夠便捷地以可視化方式查看各種視圖嵌套關(guān)系,可用于研究XML視圖結(jié)構(gòu)。(需要一個運行Android App的設(shè)備)

        Android的UI調(diào)優(yōu)

利用這個工具可以查看我們的View的層次,從而借助它修改我們的布局。

一般的建議:

使用抽象布局標(biāo)簽(include, viewstub, merge)主要是為了優(yōu)化布局,去除不必要的嵌套和View節(jié)點。

  1. 視圖重用

多用于ListView和RecylerView等列表形式

  1. 使用include嵌套布局,實現(xiàn)布局的模塊化設(shè)計,這里需要考慮到下面談到的merge標(biāo)簽的使用。

  2. <merge>標(biāo)簽

在使用了include后可能導(dǎo)致布局嵌套過多,多余不必要的layout節(jié)點,從而導(dǎo)致解析變慢,不必要的節(jié)點和嵌套可通過hierarchy viewer或設(shè)置->開發(fā)者選項->顯示布局邊界查看。merge標(biāo)簽在UI的結(jié)構(gòu)優(yōu)化中起著非常重要的作用,它可以刪減多余的層級,優(yōu)化UI。
merge多用于替換FrameLayout或者當(dāng)一個布局包含另一個時,merge標(biāo)簽消除視圖層次結(jié)構(gòu)中多余的視圖組。

merge標(biāo)簽可用于兩種典型情況:
a. 布局頂結(jié)點是FrameLayout且不需要設(shè)置background或padding等屬性,可以用merge代替,因為Activity內(nèi)容視圖的parent view就是個FrameLayout,所以可以用merge消除只剩一個。
b. 某布局作為子布局被其他布局include時,使用merge當(dāng)作該布局的頂節(jié)點,這樣在被引入時頂結(jié)點會自動被忽略,而將其子節(jié)點全部合并到主布局中。

  1. <ViewStub>

viewstub標(biāo)簽同include標(biāo)簽一樣可以用來引入一個外部布局,不同的是,viewstub引入的布局默認(rèn)不會擴張,即既不會占用顯示也不會占用位置,從而在解析layout時節(jié)省cpu和內(nèi)存。
viewstub常用來引入那些默認(rèn)不會顯示,只在特殊情況下顯示的布局,如進度布局、網(wǎng)絡(luò)失敗顯示的刷新布局、信息出錯出現(xiàn)的提示布局等。

比如說,假設(shè)network_error.xml為只有在網(wǎng)絡(luò)錯誤時才需要顯示的布局,默認(rèn)不會被解析。
當(dāng)我們要使用的時候,有兩種方法可以使用,效果是一樣的:

((ViewStub) findViewById(R.id.layout_error)).setVisibility(View.VISIBLE);

// 或者

View importPanel = ((ViewStub) findViewById(R.id.layout_error)).inflate();

二、資源縮減

第一點提到的是將App的視圖結(jié)構(gòu)變扁平,減少視圖的數(shù)量后,其實我們還可以嘗試減少每個視圖里使用的資源數(shù)量。(如加載時引用一個資源,在運行時進行著色)

三.屏幕的過度繪制

        屏幕的過度繪制這個概念有點類似于PhotoShop中的圖層的概念,上面的圖層會覆蓋住下面的圖層,而使得下面的圖層不可見。當(dāng)Android系統(tǒng)繪制屏幕時,首先繪制父視圖而后是子視圖,子視圖位于其父視圖上。

        重繪屏幕的行為被稱為過度繪制,多次的屏幕繪制會增加延遲,并且可以導(dǎo)致布局卡頓。

        既然過度繪制的影響那么大,我們應(yīng)該怎么檢測呢?

        Android提供了一些很好的工具來檢測過度繪制,而一般采用的方式是在Debug GPU Overdraw菜單中選擇“Show Overdraw area”,(在本人手機中為開發(fā)者選項中的調(diào)試GPU過度繪制),選擇之后會在App的不同區(qū)域覆蓋不同的顏色來表示過度繪制的次數(shù)。比較屏幕上的這些不同顏色,可以快速定位問題。

        白色:沒有過度繪制

藍色:1次過度繪制(屏幕繪制了2次)

綠色:2次過度繪制

淺紅色:3次過度繪制

深紅色:4次或更多次過度繪制

 Android的UI調(diào)優(yōu)

而另外一種查看方法是借助于前面提到的Hierarchy Viewer工具,將view hierarchy保存為Photoshop文檔,打開這些視圖后可以看到不同層次的過度繪制情況。

四、分析卡頓(策略GPU的渲染能力)

        在優(yōu)化視圖的層次結(jié)構(gòu)和過度繪制后,App還存在丟幀或者不流暢的情況,為了獲得獲得更加全面的卡頓檢測信息,Android系統(tǒng)中有一個Profile GPU Rendering的開發(fā)者選項,它能夠檢測出每一幀在屏幕上用了多久,策略數(shù)據(jù)可以保存到日志文件中,或者在設(shè)備上實時顯示。一般而言,在屏幕上直接展示GPU的渲染數(shù)據(jù)能夠更加直觀地看到。

 Android的UI調(diào)優(yōu)

在本人的手機中,在開發(fā)者選項中找到【GPU呈現(xiàn)模式分析】,選擇【在屏幕上顯示為條形圖】,然后打開一個手機QQ,就發(fā)現(xiàn)如下圖所示情況

 Android的UI調(diào)優(yōu)

需要關(guān)注的是底部的那一條水平綠線,它表示設(shè)備渲染一幀要16ms,每一幀就是一個水平條,如果有很多幀超過了這條綠線就說明設(shè)備出現(xiàn)了卡頓情況。

五、讓它看起來更快

        前面講到了如果通過測試發(fā)現(xiàn)問題優(yōu)化布局使得UI繪制更加流暢,其實還有一個方法使得UI繪制更快:讓它看起來更快。

  1. 進度條

  2. 動畫

  3. 即時更新:指用戶更新了一個頁面后,頁面上的數(shù)據(jù)就會立刻發(fā)生變化,即使數(shù)據(jù)還沒有達到服務(wù)器(這里需要確定這些數(shù)據(jù)最終一定可以更新到服務(wù)器)(離線上傳,離線發(fā)送網(wǎng)絡(luò)請求)

或者是另外一種思路,在用戶添加有關(guān)圖片帖子的文字時提前上傳圖片到服務(wù)器。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:Android的UI調(diào)優(yōu)-創(chuàng)新互聯(lián)
URL分享:http://aaarwkj.com/article12/gdjgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、域名注冊全網(wǎng)營銷推廣、網(wǎng)站營銷、App開發(fā)用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
国产一区二区伦理视频| 国产av不卡二区三区| 日韩不卡在线免费观看视频| 黑人巨大欧美一区二区| 亚洲精品中文字幕日本乱码| 国产精品日产三级在线观看| 日韩欧美午夜福利在线视频| 在线不卡日本v二区| 日本高清精品视频在线| 婷婷激情综合亚洲五月色| 中文字幕av在线日韩| 国产三级三级在线观看| 精品福利视频蜜臀91| 色91精品在线观看剧情| 日韩欧美一区二区麻豆| 午夜福利中文字幕在线亚洲| 日本免费高清一区二区| 国产精品久久99真精品| 加勒比久久精品网址系列| 毛片91成人在线播放| 中文字幕乱码日韩一二三区| 深夜av免费在线观看| 日韩精品一区二区三区av在线| 国产精品国产三级国av中文 | 亚洲国产精品成人女人| 先锋av一区二区三区| av免费观看男人的天堂| 黄色免费av片在线观看| 欧美v日韩v亚洲综合国产高清| 日本视频一曲二曲三曲四曲| 日韩三级av在线免费观看| av一区二区三区三| 精品久久久久久亚洲野狼| 激情内射日本一区二区三区| 久久男女激情免费视频| 久久精品噜噜噜成人av农村| 日韩一二区不卡在线视频| 福利午夜福利在线观看| 日本韩国视频一区二区| 国产裸体无遮挡免费精品| 97日韩在线免费视频网站|