Android-sharedUserId資料許可權
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 系統是基於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資料庫許可權體系入門(5)---管理資料庫許可權MySql資料庫
- 資料分析的許可權控制
- 資料庫的許可權管理資料庫
- 許可權+訂單資料模型模型
- 資料安全之許可權控制
- Oracle 使用者許可權管理與常用許可權資料字典列表Oracle
- 【專案實踐】一文帶你搞定頁面許可權、按鈕許可權以及資料許可權
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- ylbtech-許可權管理-資料庫設計-功能許可權管理技術資料庫
- MySQL資料庫許可權體系入門(4)---管理全域性許可權MySql資料庫
- 查詢沒有許可權但資料字典中顯示有許可權
- 資料許可權技術驗證
- 資料許可權驗證MyBatis版MyBatis
- 往hdfs寫資料無許可權
- 資料庫學習:許可權管理資料庫
- Mysql資料庫許可權問題MySql資料庫
- sap資料--sap許可權解剖(一)
- sap資料--sap許可權解剖(二)
- EBS 臨時資料夾許可權
- 修改檔案、資料夾許可權
- 基於RBAC做資料許可權
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 許可權之選單許可權
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- 資料庫安全之許可權與角色資料庫
- SAP BO: 資料夾的許可權管理
- 資料庫許可權-儲存過程資料庫儲存過程
- 系統許可權相關資料字典
- linux 檔案、資料夾許可權Linux
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- 提取使用者許可權或是不同資料庫使用者許可權的同步資料庫
- 使用者許可權設計(三)——通用資料許可權管理系統設計
- 資料湖統一後設資料與許可權
- MySQL資料庫Root許可權MOF方法提權研究MySql資料庫
- Linux-許可權管理(ACL許可權)Linux