`
sunnyday55555
  • 浏览: 62801 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

剖析andriod联系人(SQLITE3)应用

阅读更多
在android里面大量用到了sqlite3数据库存储数据,我们的联系人,通话记录,分类,缩略图像都是存放在

    /data/data/com.android.providers.contacts/databases/contacts.db

这个文件里面

我现在带大家仔细研究下这个文件。问了防止误操作,我们把这个文件单独拷出来。
adb shell //进入到手机shell里面
cp /data/data/com.android.providers.contacts/databases/contacts.db / //把contacts.db拷贝到根目录
sqlite3 contacts.db // 加载数据库

    sqlite> .help
    .help
    .bail ON|OFF Stop after hitting an error. Default OFF
    .databases List names and files of attached databases
    .dump ?TABLE? ... Dump the database in an SQL text format
    .echo ON|OFF Turn command echo on or off
    .exit Exit this program
    .explain ON|OFF Turn output mode suitable for EXPLAIN on or off.
    .header(s) ON|OFF Turn display of headers on or off
    .help Show this message
    .import FILE TABLE Import data from FILE into TABLE
    .indices TABLE Show names of all indices on TABLE
    .load FILE ?ENTRY? Load an extension library
    .mode MODE ?TABLE? Set output mode where MODE is one of:
    csv Comma-separated values
    column Left-aligned columns. (See .width)
    html HTML <table> code
    insert SQL insert statements for TABLE
    line One value per line
    list Values delimited by .separator string
    tabs Tab-separated values
    tcl TCL list elements
    .nullvalue STRING Print STRING in place of NULL values
    .output FILENAME Send output to FILENAME
    .output stdout Send output to the screen
    .prompt MAIN CONTINUE Replace the standard prompts
    .quit Exit this program
    .read FILENAME Execute SQL in FILENAME
    .schema ?TABLE? Show the CREATE statements
    .separator STRING Change separator used by output mode and .import
    .show Show the current values for various settings
    .tables ?PATTERN? List names of tables matching a LIKE pattern
    .timeout MS Try opening locked tables for MS milliseconds
    .timer ON|OFF Turn the CPU timer measurement on or off
    .width NUM NUM ... Set column widths for "column" mode



.help可以获取详细的帮助信息,这里列出了很多常用的命令,包括数据库的加载,导入导出,设置输出宽度,格里夫,查看表和备份数据等命令

    sqlite> .table
    .table
    _deleted_groups contact_methods peopleLookup
    _deleted_people extensions phones
    _sync_state groupmembership photos
    _sync_state_metadata groups settings
    android_metadata organizations voice_dialer_timestamp
    calls people



这里我们能得到很多有用的信息,首先我们知道这个数据库里面有一系列的表,包括通话记录,联系人,缩略图像(以base64编码的),联系人组,铃声设置,语音拨号,同步状态,删除组和删除联系人等等。大学学过数据库的同学应该都熟悉基本的sql语句吧,这里我们可以通过DML来管理数据,select查询update更新delete删除

    sqlite> select * from phones;
    select * from phones;
    1045|1032|2|15916266xxx|87066261951||1
    1046|1033|2|02366525xxx|31352566320||1
    1047|1034|2|10607138926xxx|68462983170601||1
    1048|1035|2|13002329xxx|86892320031||1
    1049|1036|2|13476483xxx|82938467431||1
    1050|1037|2|02366685xxx|95158666320||1
    1051|1038|2|07132694xxx|70649623170||1
    1052|1039|2|15971371xxx|75117317951||1
    1053|1040|2|13117151xxx|03215171131||1


这里查询到了所有联系人电话信息,熟悉数据库的朋友肯定知道,这里还关联了其他的表

    sqlite> select * from calls;
    select * from calls;
    1|15823506xxx|1251703788223|33|1|1|鑼?鐜瞸2|
    2|13167870xxx|1251713299121|0|2|1||0|
    3|13167870xxx|1251713377134|0|2|1||0|
    4|13167870xxx|1251713713422|0|2|1||0|
    5|13167870xxx|1251713771272|0|2|1||0|
    6|13167870xxx|1251713865558|0|2|1||0|

分享到:
评论

相关推荐

    基于SQLite3的Android手机数据恢复技术的研究

    在Android手机中,短信、联系人和通话记录等文本信息以SQLite3数据库的形式存储,而多媒体文件通常存储在SD卡上,不受此恢复技术的影响。删除的数据在物理层面上并未立即清除,只是标记为自由区,如果页内仍有其他...

    android联系人APP源码剖析

    首先,Android联系人APP源码剖析这一标题表明本文将重点讲解Android平台上联系人管理应用的源码,尤其是基于Android 2.3版本进行的分析。通过这种剖析,开发者可以更好地理解如何定制及使用源码,以构建或优化联系人...

    Android 系统联系人操作

    这篇博客"Android 系统联系人操作"可能是探讨如何在Android应用中与系统联系人数据库进行交互,包括添加、删除、修改和查询联系人等操作。我们将深入探讨这些关键知识点。 1. **Android权限管理**: 在Android中,...

    android_实战_联系人

    开发者可以通过阅读和分析这些代码,进一步理解如何在实际应用中实现联系人管理功能。 总之,"android_实战_联系人"项目是学习和提升Android ContentProvider应用的绝佳实践。通过这个项目,开发者不仅能了解...

    Android高级应用源码-仿qq通讯录联系人.zip

    3. **数据存储**:Android应用通常使用SQLite数据库来存储联系人数据。在这个项目中,你可能发现数据库操作类,用于增删改查联系人信息。了解如何创建SQLite数据库,定义表结构,以及使用ContentProvider进行数据...

    Android4.0.3系统的联系人应用源码

    总之,通过研究Android 4.0.3系统的联系人应用源码,开发者能够深入了解Android的Content Provider机制、SQLite数据库操作、UI设计、权限管理、事件处理以及异步编程等多个核心知识点。这些对于提升Android应用开发...

    android sqlite 手机通讯录app

    本项目"android sqlite 手机通讯录app"显然利用了SQLite来管理和操作用户的联系人信息。下面我们将深入探讨Android SQLite数据库在通讯录应用中的使用,以及如何结合Android Studio进行开发。 首先,创建一个SQLite...

    Android高级应用源码-android2.3.1系统自带联系人应用源码.zip

    《Android高级应用解析——基于Android 2.3.1系统自带联系人应用源码》 在深入探讨Android系统的高级应用开发时,理解并分析系统自带应用的源码是至关重要的一步。这里我们聚焦于Android 2.3.1版本中的联系人应用...

    Android联系人总结

    Android系统的联系人管理功能是移动通信应用中的重要组成部分,本文将详细解析Android系统中与联系人相关的数据库架构与数据存储方式,帮助开发者更好地理解和掌握Android联系人数据库的工作原理及其实现细节。...

    android4.0 联系人源代码

    总的来说,分析Android 4.0联系人源代码能够帮助开发者深入理解Android系统中数据管理、组件交互、UI设计以及性能优化等方面的知识,这对于开发自己的Android应用,特别是涉及用户数据的应用,具有很高的参考价值。...

    SQLite,android 数据库

    1. 存储用户数据:应用可以将用户的设置、游戏进度、联系人等信息存储在SQLite数据库中,方便随时读取和修改。 2. 数据持久化:当应用关闭或手机重启时,SQLite数据库能保证数据的持久性,避免了数据丢失。 3. 复杂...

    Android 源码分析_Contacts

    一、Android联系人框架概述 Android的联系人框架主要由以下组件构成: 1. 数据存储:联系人的数据存储在ContentProvider中,主要在`com.android.providers.contacts`包下。ContentProvider通过SQLite数据库管理联系...

    Android应用程序开发

    - **运行时权限**:针对敏感操作(如读取联系人、访问位置信息等),应用需要在运行时向用户请求权限。 - **安全机制**:如签名机制、沙盒模型等,确保应用之间的隔离和数据的安全。 #### 十、Android调试与发布 ...

    Android studio+sqlite实现简单的二手交易、失物招领、招生视频+校园通讯录功能

    为了保护隐私,开发者需要合理设计数据访问权限,确保只有合法用户才能查看特定联系人信息。 总的来说,这个项目涵盖了Android应用开发中的多个关键技术点,包括UI设计、SQLite数据库操作、网络请求、数据管理以及...

    SQLite的实际应用

    例如,手机应用可能使用SQLite来存储用户设置、联系人信息、日程表等。这样,即使在离线状态下,应用程序也能访问和修改数据。 SQLite数据库由一系列的表格构成,每个表格包含一个或多个列,列定义了数据类型。通过...

    DB Browser for SQLite.app.zip

    首先,你需要从官方网站下载并安装DB Browser for SQLite应用。这个应用通常以.app文件的形式提供,如"DB Browser for SQLite.app.zip",解压缩后即可得到可执行文件。在Windows、Mac OS或Linux系统上运行该应用,...

    Android内置应用源码_Android系统上层所有应用的源代码

    对这部分源码的分析有助于开发者创建自己的联系人管理应用或增强现有应用的联系人功能。 "android相册源码"则涵盖了图片和视频的管理,包括媒体扫描、缩略图生成、相册视图的实现等。源码会展示如何利用MediaStore...

    android联系人模块分析文档.doc.doc

    【Android联系人模块分析】 1. **简介** Android联系人模块是操作系统核心组件之一,它负责管理和存储用户的联系人信息。本机联系人数据存储在手机内部的SQLite数据库中,由Content Provider(ContactsProvider)...

    Android5.0 Contacts联系人源码

    在Android系统中,联系人应用(Contacts)是用户管理个人通信录的核心组件。Android 5.0(Lollipop)引入了许多新特性和优化,其中包括联系人应用的改进。本源码分析将深入探讨Android 5.0 Contacts的实现机制、核心...

Global site tag (gtag.js) - Google Analytics