不同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就可以直接開啟資料庫
相關文章
- AJAX 開發的兩種不同的方法(轉)
- MySQL建立資料庫的兩種方法MySql資料庫
- 交換兩個資料的三種方法
- laravel建立新model資料的兩種方法Laravel
- 【SQL】時間遞增的兩種方法SQL
- 修改資料檔案的位置的兩種方法
- ASP建立SQL Server資料庫的兩種方法SQLServer資料庫
- 保障兩種不同的軟體在交換資料時可以互相相容
- Flutter 頁面間資料傳遞(共享)的幾種常用方式Flutter
- MySQL防止delete命令刪除資料的兩種方法MySqldelete
- Python遍歷資料夾常用的兩種方法!Python
- Python 爬取網頁資料的兩種方法Python網頁
- vue-cli中模擬資料的兩種方法Vue
- MongoDB資料庫的兩種正確停庫方法MongoDB資料庫
- Java連線oracle資料庫的兩種常用方法JavaOracle資料庫
- sql取兩個值之間的資料方法(轉)SQL
- 在不同字符集的資料庫之間匯入資料的方法(轉)資料庫
- RAC各節點時間同步的兩種方法
- 不同Oracle資料庫之間的資料同步Oracle資料庫
- 教你兩種資料庫覆蓋式資料匯入方法資料庫
- MySQL innodb共享表空間新增表空間資料檔案方法MySql
- React中兩種遍歷資料的方法(map、forEach)React
- Oracle資料的優化器有兩種優化方法:Oracle優化
- 計算頁面執行時間的兩種方法
- 不同資料庫間傳遞資料的問題資料庫
- 如何在程式間共享資料
- fragment之間相互傳資料、共享資料Fragment
- 兩種在 Rational Team Concert 中融合不同步程式碼的方法
- Qt中使用QLabel顯示時間的兩種方法QT
- 微信小程式--資料共享與方法共享微信小程式
- python 程式池的兩種不同實現Python
- Mysql兩種情況下更新欄位中部分資料的方法MySql
- 兩種簡單分析和優化MySQL資料庫表的方法優化MySql資料庫
- Treeset的兩種排序方法排序
- 解決MySQL的主從資料庫沒有同步的兩種方法MySql資料庫
- 事件溯源模式:分離事件的發生和捕獲兩種不同時間 - verraes事件模式
- DBMS_XPLAN的不同資料來源呼叫的不同方法
- 兩種啟動資料庫的方式資料庫