您好,登錄后才能下訂單哦!
一、功能
應用之間共享數據
常見使用場景:通訊錄?短信等
二、使用步驟
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。