不同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就可以直接開啟資料庫
相關文章
- MySQL建立資料庫的兩種方法MySql資料庫
- 交換兩個資料的三種方法
- 修改資料檔案的位置的兩種方法
- Python 爬取網頁資料的兩種方法Python網頁
- Python遍歷資料夾常用的兩種方法!Python
- Flutter 頁面間資料傳遞(共享)的幾種常用方式Flutter
- Python中新增兩個數字的6種不同方法Python
- MySQL防止delete命令刪除資料的兩種方法MySqldelete
- React中兩種遍歷資料的方法(map、forEach)React
- vue-cli中模擬資料的兩種方法Vue
- 保障兩種不同的軟體在交換資料時可以互相相容
- 教你兩種資料庫覆蓋式資料匯入方法資料庫
- Dedecms資料庫恢復與備份的兩種方法資料庫
- 兩種檢視錶空間使用情況的方法
- python 程式池的兩種不同實現Python
- fragment之間相互傳資料、共享資料Fragment
- 程式碼共享的四種方法
- 兩種簡單分析和優化MySQL資料庫表的方法優化MySql資料庫
- Mysql兩種情況下更新欄位中部分資料的方法MySql
- 解決MySQL的主從資料庫沒有同步的兩種方法MySql資料庫
- 事件溯源模式:分離事件的發生和捕獲兩種不同時間 - verraes事件模式
- 亂序的兩種方法
- 微信小程式--資料共享與方法共享微信小程式
- 不同順序InBoundHandler之間的資料傳遞
- 用兩種方法把JSON資料格式轉換為Python的類物件JSONPython物件
- 抖音和微博:兩種不同的@人方案
- vue 跳轉的兩種方法Vue
- 如何比較兩個資料庫表結構的不同資料庫
- Mysql兩種主要資料引擎的區別MySql
- 用 Python 載入資料的 5 種不同方式Python
- 在ABAP裡取得一個資料庫表記錄數的兩種方法資料庫
- 前端中的同源策略與三種跨域資源共享方法前端跨域
- 兩種方法更改windows系統預設資料夾路徑(appdata等資料夾)WindowsAPP
- C++ 與 QML 之間進行資料互動的幾種方法C++
- linux系列之: 你知道檢視檔案空間的兩種方法嗎?Linux
- win10如何設定共享資料夾 win10設定共享資料夾的方法Win10
- 大資料分析的幾種方法大資料
- 關於mpvue中同路由不同頁面共享資料的解決方案Vue路由
- 兩種動態建立表格的方法