![](https://csdnimg.cn/release/download_crawler_static/88005752/bgc.jpg)
形如:content://com.xxxxx。所有东西看着像 REST 的样子,但实际上,它比 REST
更为灵活。和 REST 类似,uri 也可以有两种类型,一种是带 id 的,另一种是列
表的,但实现者不需要按照这个模式来做,给你 id 的 uri 你也可以返回列表类型
的数据,只要调用者明白,就无妨,不用苛求所谓的 REST。
另 外 , Content Provider 不 和 REST 一 样 只 有 uri 可 用 , 还 可 以 接 受
Projection,Selection,OrderBy 等参数,这样,就可以像数据库那样进行投影,
选 择 和 排 序 。 查 询 到 的 结 果 , 以 Cursor ( 参 见 :
reference/android/database/Cursor.html )的形式进行返回,调用者可以移动 Cursor
来访问各列的数据。
Content Provider 屏蔽了内部数据的存储细节,向外提供了上述统一的接口
模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更
方便的途径。Content Provider 内部,常用数据库来实现,Android 提供了强大的
Sqlite 支持,但很多时候,你也可以封装文件或其他混合的数据。
在 Android 中,ContentResolver 是用来发起 Content Provider 的定位和访问
的。不过它仅提供了同步访问的 Content Provider 的接口。但通常,Content
Provider 需要访问的可能是数据库等大数据源,效率上不足够快,会导致调用线
程的拥塞。因此 Android 提供了一个 AsyncQueryHandler 帮助进行异步访问
Content Provider。
在各大组件中,Service 和 Content Provider 都是那种需要持续访问的。Service 如
果是一个耗时的场景,往往会提供异步访问的接口,而 Content Provider 不论效
率如何,都提供的是约定的同步访问接口。
2.3 安卓平台的搭建
2.3.1 JDK 及 eclipse 的安装
下载 JDK 及 eclipse 后,其安装大致分为以下步骤,
对于 JDK1、默认路径安装。
2、设置好环境变量后,单击“开始”—>“运行”—>输入:cmd 命令,在 CMD
窗口中输入:javac 看是否有帮助信息输出。
3、 上一步如果该命令未执行成功,可能是 PATCH 路径问题,可在“系统属性”