Android 號碼查詢效能優化

2021-08-31 05:09:22 字數 1201 閱讀 4949

我的需求是做乙個快速撥號介面!list列表顯示所有聯絡人calllog資料!原來的做法在前面的日誌中有提到!大概是先查

cursor phonecursor = this.managedquery(

contactscontract.commondatakinds.phone.content_uri, null, null,

null, null);

再根據號碼來查聯絡人

經過測試發現效能消耗主要在這個while迴圈當中!因為在迴圈當中在加乙個查詢資料庫操作自然慢!

解決方案:

發現在查詢contactscontract.commondatakinds.phone.content_uri資料庫時其實可以吧

contactscontract.contacts.display_name,

contactscontract.contacts.photo_id查詢出來

那麼把原來的

private final static string mcontactsprojection = new string ;

改為

private final static string mcontactsprojection = new string ;

下面對應改為

while (phonecursor.getposition() != phonecursor.getcount())

}

這樣改變後唯讀一次資料庫!

在1000聯絡人的情況下耗時打log得到不到2000毫秒!

其他優化方向!

1、查詢資料庫時把managedquerey第二引數projection寫時!只查需要的列!不查詢全部!

2、在contactentity.contact_id = phonecursor

.getlong(phonecursor

.getcolumnindex(contactscontract.commondatakinds.phone.contact_id));取值時直接用陣列序號0,1,2代替!

3.等大資料量資料可放在getview方法中直接賦值而不通過物件傳遞!

Android效能優化

android效能優化 1.http用gzip壓縮,設定連線超時時間和響應超時時間 http請求按照業務需求,分為是否可以快取和不可快取,那麼在無網路的環境中,仍然通過快取的httpresponse瀏覽部分資料,實現離線閱讀。2.listview 效能優化 1 復用convertview 在geti...

Android效能優化

1.節制地使用service 如果應用程式當中需要使用service來執行後台任務的話,請一定要注意只有當任務正在執行的時候才應該讓service執行起來。另外,當任務執行完之後去停止service的時候,要小心service停止失敗導致記憶體洩露的情況 2.當介面不可見時釋放記憶體 當使用者開啟另...

Android效能優化

本篇主要是對 google推出的效能優化典範 進行乙個通篇的整理 主要在於一些具體的優化技巧 至於60fps 掉幀 gc 記憶體抖動 閾值 等等這些效能術語的概念裡面不做多概括,請自行查閱 本篇從以下幾點延伸擴充套件 systrace systrace 在android ddms 裡自帶,可以用來跟...