日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

[原] Android持续优化 - 提高流畅度

發布時間:2025/7/14 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [原] Android持续优化 - 提高流畅度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.形象的感官一下流暢度概念

1. 這是官方給出的概念:Android流暢運行,需要運行60幀/秒, 則需要每幀的處理時間不超過16ms。

2. 每秒幀數,實際上就是指動畫或視頻每秒放映的畫面數。因此“幀”的概念就是指“畫面”,1幅畫就叫做“1幀”,每秒幀數指的就是“每秒播放的畫面數”。幀數就是在1秒鐘時間里傳輸的圖片的量,也可以理解為圖形處理器每秒鐘能夠刷新幾次,通常用fps(Frames Per Second)表示。每一幀都是靜止的圖象,快速連續地顯示幀便形成了運動的假象。高的幀率可以得到更流暢、更逼真的動畫。每秒鐘幀數 (fps) 愈多,所顯示的動作就會愈流暢。

3. 一幀占用內存數

當畫面的分辨率是1024×768,刷新率要達到60幀/秒時,那么顯卡在一秒鐘內需要處理的像素量就達到了“1024×768×60=5713920”。那么一個“像素量”,相當與占用多少內存?我們用位圖來代替粗略計算,把分辨率是1024×768看成一張對應大小的位圖,通過位圖的大小來大概計算占用的內存大小。而位圖的存儲算法,在維基百科上有詳細的介紹,詳見下面的鏈接。

一張1024×768的16位(bit)位圖文件大小 = 1024×768×16/8 = 1572864 B = 1536 KB = 1.5 MB。如果要求畫面的刷新率達到60幀/秒,則每秒需要處理的數據量就達到1.5 * 60 = 90 MB,這個數據是相當大。

實際系統中會通過GPU顯卡處理顯示,減少CPU工作量,或者系統會緩存或局部刷新來降低處理量。沒有研究過,也很想研究一下顯示的流程。

二.Android流暢度的根本:解放UI主線程

1. 不要阻塞UI線程;

2. 不要在UI線程之外操作UI。

三.以ListView加載圖片為例

更流暢?

1. ListView如何流暢順滑加載?

2. ListView使用convertView可以提高兩倍性能?

3. ListView回收item的原理是什么?

4. ListView重復加載調用的問題?

5. 如何解決圖片加載OOM問題?

6. 如何更流暢的加載圖片?

7. ListView加載大量圖片并發問題?

ListView優化要點

1. 優化Adapter,使用convertView,效率提高2倍;

2. 優化item布局,提高整體性能;

3. ListView重復調用問題可以設置layout_height高度固定或者fill_parent,加載的原理;

4. 使用addHeader和addFooter代替ScrollView;

圖片加載優化要點

1. 有效加載大圖片,合理設置BitmapFactory.Options的inSampleSize值,減少圖片內存占用;

2. 僅請求圖片的大小,inJustDecodeBounds = true,僅請求圖片大小,而不會加載圖片到內存;

3. 緩存圖片,內存緩存LruCache,硬盤緩存 DiskLruCache

4. 使用非UI線程加載圖片,使用 AsyncTask

5. 使用軟引用SoftReference,綁定ImageView和url,處理ListView并發加載問

6. Android官方圖片加載利器BitmapFun解析

四.其他

Google官方教程(一定要讀):

Android進程和線程-Processes and Threads

改善布局性能-Improving Layout Performance

1. 優化布局層次結構—Optimizing Layout Hierarchies

2. 使用標簽include重用布局—Re-using Layouts with include

3. 按需加載視圖—Loading Views On Demand

4. ListView的平滑滾動—Making ListView Scrolling Smooth

高效顯示位圖-Displaying Bitmaps Efficiently

1. 有效的處理較大的位圖-Loading Large Bitmaps Efficiently

2. 處理來自UI線程的位圖-Processing Bitmaps Off the UI Thread

3. 緩存位圖-Caching Bitmaps

4. 在你的UI中顯示位圖-Displaying Bitmaps in Your UI

其他好文章:

Android開發規范之編碼規范

Android開發性能優化簡介

參考:

1. 每秒幀數
2. 位圖

總結

以上是生活随笔為你收集整理的[原] Android持续优化 - 提高流畅度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。