国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現不同apk間共享數據的方法(2種方法)

2020-04-11 10:57:44
字體:
來源:轉載
供稿:網友

本文實例講述了Android實現不同apk間共享數據的方法。分享給大家供大家參考,具體如下:

Android給每個APK進程分配一個單獨的用戶空間,其manifest中的userid就是對應一個Linux用戶(Android 系統是基于Linux)的.

所以不同APK(用戶)間互相訪問數據默認是禁止的.

但是它也提供了2種APK間共享數據的形式:

1. Share Preference. / Content Provider

APK可以指定接口和數據給任何其他APK讀取. 需要自己實現接口和Share的數據.本文對于這個不做詳細解釋

2. Shared User id

通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中.所以默認就是可以互相訪問任意數據. 也可以配置成運行成不同的進程, 同時可以訪問其他APK的數據目錄下的數據庫和文件.就像訪問本程序的數據一樣.

比如某個公司開發了多個Android 程序, 那么可以把數據,圖片等資源集中放到APK  A中去. 然后這個公司的所有APK都使用同一個User ID, 那么所有的資源都可以從APK A中讀取.

舉個例子:

APK A 和APK B 都是C公司的產品,那么如果用戶從APK A中登陸成功.那么打開APK B的時候就不用再次登陸. 具體實現就是 A和B設置成同一個User ID:

* 在2個APK的AndroidManifest.xml 配置User ID:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.demo.a1"android:sharedUserId="com.c">

這個"com.c" 就是user id, 然后packagename APK A就是上面的內容,  APK B可能
是"com.android.demo.b1" 這個沒有限制

這個設定好之后, APK B就可以像打開本地數據庫那樣 打開APK A中的數據庫了.

APK A把登陸信息存放在A的數據目錄下面. APK B每次啟動的時候讀取APK A下面的數據庫

判斷是否已經登陸:

APK B中的代碼:

friendContext = this.createPackageContext(  "com.android.demo.a1",  Context.CONTEXT_IGNORE_SECURITY);

通過A的package name 就可以得到A的 packagecontext

通過這個context就可以直接打開數據庫

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双牌县| 龙州县| 马尔康县| 梅河口市| 香格里拉县| 嘉定区| 榆中县| 中宁县| 河南省| 台南市| 马公市| 于田县| 冕宁县| 鲁山县| 四川省| 辽阳县| 阿鲁科尔沁旗| 平和县| 乐清市| 华池县| 隆林| 盐城市| 刚察县| 丰原市| 满城县| 新泰市| 西青区| 南涧| 庆云县| 监利县| 绍兴县| 行唐县| 怀来县| 泰兴市| 东宁县| 云林县| 温州市| 岳西县| 新乡县| 哈尔滨市| 九台市|