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