相关文章
Broadcast Receiver(广播接收者)
什么是Service(服务)?
Android开发-Intent(意图)
为什么需要Content Provider(内容提供者)?简单来说,就是另外一个应用想要访问此应用中私有的数据库,此应用中提供了一个中间对象来供其他应用访问,这个中间对象就是内容提供者。
1.1 内容提供者概述
内容提供者组件通过请求从一个应用程序向其他的应用程序提供数据。这些请求由类 ContentResolver 的方法来处理。内容提供者可以使用不同的方式来存储数据。数据可以被存放在数据库,文件,甚至是网络。有时候需要在应用程序之间共享数据。这时内容提供者变得非常有用。
内容提供者可以让内容集中,必要时可以有多个不同的应用程序来访问。内容提供者的行为和数据库很像。可以查询,编辑它的内容,使用insert(), update(), delete() 和 query() 来添加或者删除内容。多数情况下数据被存储在 SQLite 数据库。
内容提供者被实现为类 ContentProvider 类的子类。需要实现一系列标准的API,以便其他的应用程序来执行事务。
1.2 创建内容提供者
1.创建自己的内容提供者的简单步骤。
第一步:继承类 ContentProviderbase 来创建一个内容提供者类。
第二步:定义用于访问内容的你的内容提供者URI地址。
第三步:创建数据库来保存内容。通常,Android 使用 SQLite数据库,并在框架中重写onCreate()方 法来使用 SQLiteOpenHelper 方法创建或者打开提供者的数据库。当应用程序被启动,它的每个内容提 供者的onCreate()方法都将在应用程序主线程中被调用。
第四步:使用<provider…/>标签在 AndroidManifest.xml中注册内容提供者。
2.为了让内容提供者正常工作,需要在类 ContentProvider 中重写的一些方法,如下图所示。
onCreate():当提供者被启动时调用。
query():该方法从客户端接受请求,结果是返回指针(Cursor)对象。
insert():该方法向内容提供者插入新的记录。
delete():该方法从内容提供者中删除已存在的记录。
update():该方法更新内容提供者中已存在的记录。
getType():该方法为给定的URI返回元数据类型。
1.3 实战
1.创建一个app读取手机短信:
第一步:创建一个安卓工程,定义一个按钮,如下图所示。
第二步:在MainActivity中绑定按钮,并实现监听,如下图所示。
第三步:在监听中实现读取短信信息的代码,如下图所示。
第四步:安装到雷电模拟器并观看控制台输出,记得在短信里添加点信息,否则可能没有信息出现。
小结
主要分享了内容提供者的概念,内容提供者被实现的方法,创建内容提供者,详细步骤以及创建过程中的概念问题。
如果你也对安卓逆向感兴趣。可以加下方的群,大家一起讨论问题,或者扫描下方二维码,关注回复 “安卓逆向” 获取免费教程
安卓逆向交流学习:342647370
vx:yijin1108an