列表滑動、mdelay or msleep和對齊喚醒

1、列表滑動
     記得從去年快放假的那兩週,剛開始的時候,是很多人信息列表卡頓。通過不停的跟蹤發現
在顯示文本的時候,Android不提倡使用硬件加速的方式。雖然Android 4.0以後,Android在很多地方
都提倡用硬件加速的方式去繪圖,以提高繪圖效率,但對於中文的文本,這種方式是不可取的。原因在於
中文編碼比較多,而使用硬件加速的時候,進行了緩存操作,導致在中文文本比較多的時候,停的刷新緩存,出現
卡頓現象。在中文文本比較多的情況下,可以通過View設置爲software方式來解決這樣的問題。
     卡頓的問提解決後,大家都開始關注滑動效果這塊了,結果是列表滑動效果很差。效果差,那就改效果吧!
確實是,有同事對這塊的效果做出了改動,把Android原始的效果進行了改動。改回原始的,試了一下,效果比較差
無論是跟隨效果,還是滑動效果,都不令人滿意。於是重新實現了一個列表滑動算法,跟隨效果上有改進,但在有的項目上,滑動效果一般。
      如果不是在驍龍600上把這個算法移過去,也許我真不知道是什麼原因引起的。原始的平臺在刷新上,根本上達不到60fps的幀率,可惜的是,配置高了,要求也高了,重新實現的算法,在這個平臺上,滑動效果和跟隨性,還不是很好,對比了一下HTC的手機,發現他們比我們的效果好,參考HTC的列表滑動算法,移植到驍龍600上,效果果然編好了,可惜移植到其他平臺上,效果確實一塌糊塗,原因是沒有這麼高的配置,刷新幀率根本上就跟不上。
     可見,在列表滑動效果上,我們有四種列表滑動效果算法,然而到目前爲止,並沒有找到一種實現方式,
能夠跟蘋果的列表滑動效果相比。如果說以前是平臺性能不行的話,還可以理解,但是現在在驍龍600,也沒有好的實現方式。
其實在整個以Android平臺上,就沒有看到蘋果的列表滑動效果,都是粗獷型的,不夠優雅。這是硬傷,是我揮之不去的噩夢。


2、mdelay or msleep?
mdelay:mdelay是忙等待函數,在延遲過程中無法運行其他任務,延遲的時間是準確的。
msleep:休眠函數,它不涉及忙等待,延遲的時間不準確,會延長。

之所以記下這,是因爲有同事在應該使用msleep的地方使用了mdelay,導致系統不時的卡頓一下,加班處理完,吸取一下血的教訓。


3、對齊喚醒
針對Android第三方應用的不規範行,小米2S添加了一種對齊喚醒機制。傳說是爲了省電,
有些軟件會不定時自己喚醒運行,聯網檢測消息,交換數據等,每次喚醒會比較費電,CPU等要進入高速運轉,
而如果把這些軟件統一到每個點一起處理的話,要比它們分開處理消耗的能量總合少。不知道是不是有傳說中的這麼神。
發佈了54 篇原創文章 · 獲贊 43 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章