一個是響應速度,要保證介面之間跳轉的時候沒有延遲,也就是說要保證onClick之後,1. 此Activity/Fragment的pause不會佔用主執行緒太多時間2. onClick事件裡面不要寫耗時的操作3. 新的Activity的create、start、resume等生命週期函式不要佔用太多時間耗時操作可以等介面初始化好之後再去做,這樣才能保證響應速度能達到使用者可以接受的程度!另外一個是流暢性,這個就是說使用者在某個介面操作的時候,不要出現卡頓(掉幀)的情況!這種情況比較複雜,所以要case by case地去解決!推薦用Systrace和Method Trace等效能工具來發現和排查!以上理論知識大家都懂,不過在實際開發中,情況要複雜的多,有的介面設計就很複雜,所以初始化就很慢,有的業務需求就是耗時,就是得在主執行緒裡面去做……所以其實也是一個博弈的過程,和設計人員博弈、和時間博弈(理論上時間可以搞定一切)、和需求博弈、和自己博弈!不過解決這種問題的流程一般不變:1. 發現問題2. 分析問題3. 找到一個大家都能接受的解決辦法4. Fix5. 以上等於沒說
一個是響應速度,要保證介面之間跳轉的時候沒有延遲,也就是說要保證onClick之後,1. 此Activity/Fragment的pause不會佔用主執行緒太多時間2. onClick事件裡面不要寫耗時的操作3. 新的Activity的create、start、resume等生命週期函式不要佔用太多時間耗時操作可以等介面初始化好之後再去做,這樣才能保證響應速度能達到使用者可以接受的程度!另外一個是流暢性,這個就是說使用者在某個介面操作的時候,不要出現卡頓(掉幀)的情況!這種情況比較複雜,所以要case by case地去解決!推薦用Systrace和Method Trace等效能工具來發現和排查!以上理論知識大家都懂,不過在實際開發中,情況要複雜的多,有的介面設計就很複雜,所以初始化就很慢,有的業務需求就是耗時,就是得在主執行緒裡面去做……所以其實也是一個博弈的過程,和設計人員博弈、和時間博弈(理論上時間可以搞定一切)、和需求博弈、和自己博弈!不過解決這種問題的流程一般不變:1. 發現問題2. 分析問題3. 找到一個大家都能接受的解決辦法4. Fix5. 以上等於沒說