• Contacts源码分析(一、概述)


    代码版本: 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

  • 相关阅读:
    收藏网站制作常用经典css.div.布局.设计实例打包下载2
    下拉菜单 效果
    鼠标放在一个连接上,会显示图片(类似tooltip)
    收藏网站制作常用经典ajax.prototype.javascript实例打包下载2
    开发速查手册
    Visual Studio 2005 的 101 个示例(转)
    多行文本框限制输入字符长度(跳出窗体提示)
    发一个不用图片实现圆角代码,非常经典
    收藏网站制作常用经典css.div.布局.设计实例打包下载1
    Linux下php动态添加扩展
  • 原文地址:https://www.cnblogs.com/hushpa/p/5616599.html
Copyright © 2020-2023  润新知