【转】Pro Android学习笔记(五):了解Content Provider(上)

时间:2022-08-30 16:58:24

Content Provider是抽象数据封装和数据访问机制,例如SQLite是Android设备带有的数据源,可以封装到一个content provider中。要通过content provider进行读写,需要使用URI。推荐阅读Android学习笔记(四七):Content Provider初谈和Android联系人信息Android学习笔记(四八):提供自己的Content ProviderAndroid学习笔记(四九):通过Content Provider访问数据。Content Provider的重要作用实现应用之间的数据共享,而对于应用内的数据访问,Android提供多种方式,有Preferences,文件,SQLite,以及通过HTTP服务访问Internet。

Android有些内置content Provider,我们可以在android.provider软件包中查看,如contact,mediastore,如非内置,则必须通过content provider接口实现。

Android的数据库

SQLite是内容提供者常用的数据源。我们可以使用Android和SQLite的命令来对SQLite数据进行处理,这些命令位于/sdk/tools和/sdk/platform-tools中。为了方便使用这些命令,我们在Windows中设置脚本文件myandroid.bat,进行环境变量的设置。而在Linux中,则可以通过export PATH=$PATH:$HOME/...来进行设置。

set SDKPATH=D:\developer\adt-bundle-windows-x86\adt-bundle-windows-x86-20130522\sdk
PATH=%PATH%;%SDKPATH%\tools;%SDKPATH%\platform-tools

Android提供了adb命令,可以对模拟器或所连接的设备进行操作。adb,即Android Debug Bridge,详细命令可以在http://developer.android.com/tools/help/adb.html中阅读。

在前面我们已经学过使用adb devices来查看当前有效的设备。如果没有连接设备或者没有开启模拟器,我们可以通过emulator @avdname来开启模拟器,而avdname是AVD的名称,有效的avdname可以通过android list avd命令来查看,当然我们可以通过eclipse来打开。

【转】Pro Android学习笔记(五):了解Content Provider(上)

通过下面命令对所连接设备或模拟器进行操作。

adb shell

进去后,我们可以通过ls /system/bin查看可使用的命令。数据信息存放在/data/data目录下,按安装包来分类。我们可以通过ls –R /data/data/*/databases看看那些包下面有SQLite数据库。例如Android内置的一些DB。

【转】Pro Android学习笔记(五):了解Content Provider(上)

这些*.db文件是就SQLite数据库。在Android数据库通常在第一次访问的时候创建。要接近数据库采用:

sqlite3 /data/data/<包名。例如com.android.providers.contacts>/databases/<数据库文件:contacts.db>

下面是一些常用SQLite命令:

sqlite>.exit  退出sqlite 
sqlite>.tables 显示tables列表 
可使用SQL语言,一样要在最后加上分号。

【转】Pro Android学习笔记(五):了解Content Provider(上)
【转】Pro Android学习笔记(五):了解Content Provider(上)

从上图中看,.schema table_name给出的内容很不直观,我们可以将*.db文件拷贝出来,用专门的数据库工具来查看,例如sqliteman,也可以在本地通过sqlite3命令进行操作。将文件拖出来的命令如下,不填写<本地路径>,则为当前目录。

【转】Pro Android学习笔记(五):了解Content Provider(上)

常用SQL语言

记录一些常用的SQL语言。

select * from table1; 
select count(*) from table1; 
select col1, col2 from table1; 
select distinct col1 from table1; 
select count(col1) from (select distinct col1  from table1); 
select count(*), col1 from table1 group by col1; 
select * from table1 t1, table2 t2 where t1.col1 = t2.col1; 
select * from table t1 left outer join table2 t2 on t1.col1 = t2.col1 where ....

相关链接: 我的Android开发相关文章

转自http://blog.csdn.net/flowingflying/article/details/9185809

【转】Pro Android学习笔记(五):了解Content Provider(上)的更多相关文章

  1. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

  2. 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式

    可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...

  3. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  4. 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode

    目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...

  5. 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter

    目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...

  6. 【转】 Pro Android学习笔记(四十):Fragment(5):适应不同屏幕或排版

    目录(?)[-] 设置横排和竖排的不同排版风格 改写代码 对于fragment,经常涉及不同屏幕尺寸和不同的排版风格.我们在基础小例子上做一下改动,在横排的时候,仍是现实左右两个fragment,在竖 ...

  7. 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView

    目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...

  8. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  9. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

  10. 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET

    目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...

随机推荐

  1. springmvc session和model解析

    关于springMVC中的session,有2种使用方法,第一种是直接传递httpsession,第二种是使用@SessionAttributes("userId") 注解 这里附 ...

  2. 一道C语言面试题:写一个宏,将16位的整数转为Big Endian

    题目:输入16位整数x,如0x1234,将其转为Big Endian格式再输出,此例为输出 0x3412 来源:某500强企业面试题目 思路:将x左移8位得到a,将x右移8位得到b,a+b即为所得 / ...

  3. Hive&colon;把一段包含中文的sql脚本粘贴到beeline client运行中文乱码

    背景: 在做项目过程中不可能hive表中都是非中文字段.在最近做的项目中就遇到需要在beeline界面上执行查询脚本,但脚本中包含中文,正常一个脚本用文本写好后,粘贴到beeline窗口运行时,发现中 ...

  4. react-native模拟机调试步骤详解 ——亲测有效!!!!

    步骤 1 下载安装夜神模拟器,去夜神官网下载即可!然后安装完成!进入到初始化项目的目录,打开cmd命令,运行adb connect 127.0.0.1:62001 链接模拟器 2 链接完成之后,运行安 ...

  5. 《锋利的jQuery》笔记:插件的使用和写法

    jQuery插件的种类 1.封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件.此类插件可以发挥出jQuery选择器的强大优势,有相当一部分 ...

  6. Cisco 2960交换机配置

    一. 基本操作 Switch(config)#hostname test01(交换机名称) //全局模式下修改交换机名称 Switch(config)#enable secret 123456 //全 ...

  7. 测试那些事儿—Linux搭建环境基础步骤

    Linux搭建环境基础步骤 准备工具:SecureCRT工具(Linux工具,连接服务器)FTP传输工具(上传文件到服务器)MySQL连接工具 安装包(以下文件均为压缩包rpm格式和tar.gz):J ...

  8. 04&lowbar;web基础(二)之web构建

    03.04.05.06web项目创建 07.第一个Servlet程序 1.拷贝tomcat 中的 servlet-api.jar 在lib包下面 2.新建一个HelloWordServlet类并实现 ...

  9. hdu 4901 划分序列使异或和&equals;&equals;且和

    http://acm.hdu.edu.cn/showproblem.php?pid=4901 给定一个序列,要求选出两个集合,S和T,要求S中选中的元素的下标都要小于T中元素的下标.并且说S中元素的异 ...

  10. 笔记1:jmeter性能测试使用示例(原文:http&colon;&sol;&sol;blog&period;csdn&period;net&sol;zhongweijian&sol;article&sol;details&sol;7619319)

    jmeter是一个简单开源的纯java的性能测试工具.今天学习了jmeter使用了下jmeter,使用起来非常简单. 如果我们要对163的首页性能进行简单测试,我们可以按照以下步骤进行. 1.在测试计 ...