温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

四大组件(4) - ContentProvider

发布时间:2020-07-03 18:22:57 来源:网络 阅读:54 作者:lm8751 栏目:移动开发

一、功能

应用之间共享数据

常见使用场景:通讯录 短信等



二、使用步骤

1.提供数据App - 定义ContentProvider

继承ContentProvider 复写相关初始化和查询方法,同时在Manifest中声明

<provider 

android:name=xxx

android:authorities=testProvider //访问路径名称

android:enabled=true

android:exported=true/>


2.获取数据app 使用ContentResolver获取数据

Uri uri = Uri.parse(“content://xxx”);

ContentResolver contentResolver = getContentResolver();

Curor cursor = contentResolver.query(uri,null,”query_where”,null,null);



三、原理

匿名共享内存(ASM) - binder机制

假设A应用访问B应用数据

1.A发送消息给AMS,想要访问B中的CP

2.AMS检查发现,B中的CP没启动过,为此新开一个进程,启动B,然后获取到B启动的CP,把CP的代理对象返回给A

3.A拿到CP的代理对象,也就是IContentProvider,就调用它的增删改查4个方法了,接下来就是使用ASM来传输数据或者修改数据了

参考:https://www.jianshu.com/p/c2ac0a54cdaa



四、扩展

Binder机制

https://www.jianshu.com/p/47731149c93c

AIDI使用

https://www.jianshu.com/p/29999c1a93cd

https://www.jianshu.com/p/23612b2cce30

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI