Android實(shí)現(xiàn)不同apk間共享數(shù)據(jù)的方法(2種方法)
本文實(shí)例講述了Android實(shí)現(xiàn)不同apk間共享數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
Android給每個(gè)APK進(jìn)程分配一個(gè)單獨(dú)的用戶空間,其manifest中的userid就是對應(yīng)一個(gè)Linux用戶(Android 系統(tǒng)是基于Linux)的.
所以不同APK(用戶)間互相訪問數(shù)據(jù)默認(rèn)是禁止的.
但是它也提供了2種APK間共享數(shù)據(jù)的形式:
1. Share Preference. / Content Provider
APK可以指定接口和數(shù)據(jù)給任何其他APK讀取. 需要自己實(shí)現(xiàn)接口和Share的數(shù)據(jù).本文對于這個(gè)不做詳細(xì)解釋
2. Shared User id
通過Shared User id,擁有同一個(gè)User id的多個(gè)APK可以配置成運(yùn)行在同一個(gè)進(jìn)程中.所以默認(rèn)就是可以互相訪問任意數(shù)據(jù). 也可以配置成運(yùn)行成不同的進(jìn)程, 同時(shí)可以訪問其他APK的數(shù)據(jù)目錄下的數(shù)據(jù)庫和文件.就像訪問本程序的數(shù)據(jù)一樣.
比如某個(gè)公司開發(fā)了多個(gè)Android 程序, 那么可以把數(shù)據(jù),圖片等資源集中放到APK A中去. 然后這個(gè)公司的所有APK都使用同一個(gè)User ID, 那么所有的資源都可以從APK A中讀取.
舉個(gè)例子:
APK A 和APK B 都是C公司的產(chǎn)品,那么如果用戶從APK A中登陸成功.那么打開APK B的時(shí)候就不用再次登陸. 具體實(shí)現(xiàn)就是 A和B設(shè)置成同一個(gè)User ID:
* 在2個(gè)APK的AndroidManifest.xml 配置User ID:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.demo.a1" android:sharedUserId="com.c">
這個(gè)"com.c" 就是user id, 然后packagename APK A就是上面的內(nèi)容, APK B可能
是"com.android.demo.b1" 這個(gè)沒有限制
這個(gè)設(shè)定好之后, APK B就可以像打開本地?cái)?shù)據(jù)庫那樣 打開APK A中的數(shù)據(jù)庫了.
APK A把登陸信息存放在A的數(shù)據(jù)目錄下面. APK B每次啟動(dòng)的時(shí)候讀取APK A下面的數(shù)據(jù)庫
判斷是否已經(jīng)登陸:
APK B中的代碼:
friendContext = this.createPackageContext( "com.android.demo.a1", Context.CONTEXT_IGNORE_SECURITY);
通過A的package name 就可以得到A的 packagecontext
通過這個(gè)context就可以直接打開數(shù)據(jù)庫
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
- Android通過ViewModel保存數(shù)據(jù)實(shí)現(xiàn)多頁面的數(shù)據(jù)共享功能
- Android開發(fā)之5.0activity跳轉(zhuǎn)時(shí)共享元素的使用方法
- Android數(shù)據(jù)共享 sharedPreferences 的使用方法
- android與asp.net服務(wù)端共享session的方法詳解
- 詳解Android(共享元素)轉(zhuǎn)場動(dòng)畫開發(fā)實(shí)踐
- Android 仿摩拜單車共享單車進(jìn)度條實(shí)現(xiàn)StepView效果
- Android開發(fā)中多進(jìn)程共享數(shù)據(jù)簡析
- Android設(shè)備間實(shí)現(xiàn)藍(lán)牙(Bluetooth)共享上網(wǎng)
- android編程實(shí)現(xiàn)設(shè)置、打開wifi熱點(diǎn)共享供他人連接的方法
- Android編程實(shí)現(xiàn)兩個(gè)Activity之間共享數(shù)據(jù)及互相訪問的方法
- android不同activity之間共享數(shù)據(jù)解決方法
- Android 7.0應(yīng)用之間如何共享文件
相關(guān)文章
SwipeRefreshLayout+RecyclerView實(shí)現(xiàn)上拉刷新和下拉刷新功能
這篇文章主要介紹了SwipeRefreshLayout+RecyclerView實(shí)現(xiàn)上拉刷新和下拉刷新功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01adnroid已安裝應(yīng)用中檢測某應(yīng)用是否安裝的代碼實(shí)例
這篇文章主要介紹了Android怎么檢測一個(gè)應(yīng)用是否安裝的方法,大家參考使用吧2013-11-11利用Android中BitmapShader制作自帶邊框的圓形頭像
這篇文章給大家介紹了一下如何利用BitmapShader制作圓形頭像,可以自定義要顯示的圖片,邊框顏色和邊框?qū)挾鹊?,有需要的朋友們可以參考借鑒。2016-09-09基于adbkit的android設(shè)備管理(精簡版stf)
這篇文章主要為大家介紹了基于adbkit的android設(shè)備管理(精簡版stf)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Android App中使用SurfaceView制作多線程動(dòng)畫的實(shí)例講解
這篇文章主要介紹了Android App中使用SurfaceView制作多線程動(dòng)畫的實(shí)例講解,SurfaceView經(jīng)常被用來制作游戲中的動(dòng)畫,不過同時(shí)要注意畫面閃爍的問題,需要的朋友可以參考下2016-04-04Android開發(fā)疫情查詢app(實(shí)例代碼)
這篇文章主要介紹了用Android開發(fā)一個(gè)疫情查詢的APP,文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06Android使用BottomNavigationBar實(shí)現(xiàn)導(dǎo)航欄功能
這篇文章主要介紹了Android使用BottomNavigationBar實(shí)現(xiàn)導(dǎo)航欄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08Android 實(shí)現(xiàn)定時(shí)任務(wù)的過程詳解
這篇文章主要介紹了Android 定時(shí)任務(wù)過程詳解的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11