Contacts源碼分析(一、概述)

來源:互聯網
上載者:User

標籤:

代碼版本: Contact code version: 4.4.2

 

一 開啟Log開關:

if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate start");
}

開啟: adb shell setprop log.tag.ContactsPerf VERBOSE
該屬性值取值順序為【V,D,I,W,E,A,S】 A表示最進階別的日誌,即assert;S表示Suppress,即停止該日誌的輸出。
次設定重啟後實效,也可以將該屬性添加在data/local.prop屬性檔案中,不同的是,只要存在local.prop,該手機重啟與否都一樣,可以列印VERBOSE


二 Contact代碼結構
主要由Contacts, ContactsCommon, ContactsProvider三個工程組成

1. Conctacts: UI, 使用者互動邏輯
檔案目錄
packages/apps/Contacts

2. ContactsCommon: 實現了基類, 工具類和一些資料結構供Contacts使用
檔案目錄
packages/apps/ContactsCommon

3. ContactsProvider: 連絡人資料增刪改
檔案目錄
packages/providers/ContactsProvider


三 資料庫結構:

device中存放位置
/data/data/com.android.providers.contacts/databases

contacts2.db : 所有連絡人資訊
profile.db : 個人資訊


1. contacts2.db 中幾個重要的表, 跟profile db中表結構差不多
可以添加幾個連絡人然後把db檔案下載下來用SQLiteSpy查看

1) accounts

用於同步contact的帳號相關資訊

2) contacts

連絡人表, 每個連絡人對應一行, 只存放一些標誌性資訊如raw contact id, starred, timestamp等, 具體連絡人資訊存放在raw_contact和data表中。

不可以直接向此表中插入資料, 使用者插入操作通常更改raw_contact表, 然後系統自動merge資訊到contact表

3) data

 詳細資料存放在這個表裡, 如連絡人姓名, 號碼, 地址, 郵箱, 組織等, 

資訊的類別用mimetype_id來指明, 通過引用raw_contact_id關聯到raw_contacts

4) raw_contacts


比contact表更多的資訊,很多標誌資訊, 主要的資料增刪改是操作這個表。
與contact表不同的是, 一個連絡人(contact_id) 可以對應多行資料, 比如這個連絡人存放在多個賬戶上(account_id)

5) mimetype

索引資訊類別, 用於data表


2. 主要視圖

1)view_contacts

2) view_data

3) view_raw_contacts

4)view_entities

 

參考文章

Android 5.0 Contacts源碼分析 http://blog.csdn.net/lsmfeixiang/article/details/44856569

Contacts源碼分析(一、概述)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.