zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    快速理解Kafka分布式消息队列框架
    消息系统Kafka介绍
    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
    CSS学习笔记(10)--nth-child和nth-of-type
    CSS学习笔记(9)--详解CSS中:nth-child的用法
    CSS学习笔记(8)--纯CSS绘制三角形(各种角度)
    CSS学习笔记(7)--html页面的CSS、DIV命名规则
    CSS学习笔记(6)--浮动,三列布局,高度宽度自适应
    CSS学习笔记(5)--导航ul,li浮动问题
    Git中保存用户名和密码
  • 原文地址:https://www.cnblogs.com/hushpa/p/5616599.html
Copyright © 2011-2022 走看看