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:
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中的**:
context friendcontext = this.createpackagecontext(
"com.android.demo.a1",
context.context_ignore_security);
通過a的package name 就可以得到a的 packagecontext
通過這個context就可以直接開啟資料庫.
例程:dealfile.apk
android:shareduserid="com.my.test.file"
public class dealfile extends activity
public string readsettings(context context) catch (exception e) finally catch (ioexception e)
}return data;
}public void writesettings(context context, string data) catch (exception e) finally catch (ioexception e) }}
}例程2
dealfile2,apk
android:shareduserid="com.my.test.file">
public class dealfile2 extends activity catch (namenotfoundexception e)
}public string readsettings(context context) catch (exception e) finally catch (ioexception e)
}return data;
}public void writesettings(context context, string data) catch (exception e) finally catch (ioexception e) }}
}這樣dealfile2,apk
就可以讀寫dealfile.apk中的檔案了
apk與apk 資料共享詳解
案例 apk1 與apk2 資料共享 1 新建儲存類 2 在activity中呼叫 apk2 訪問 經驗總結 注意問題點 android 關於sharedpreferences,createpackagecontext生成的context例項快取清除問題 我的主apk為 a,呼叫的 apk為 b1,...
Android 靜默更新apk
內容 關於以上兩個任務,網上已經有很多例項以及文字說明了,這裡只是記錄一下自己參考他們的部落格後而寫的 demo。基本上參考上面兩個鏈結就能完全實現改功能了。3.0version new viersiondescription info 注意新增許可權 3.靜默安裝 pm install r apx...
Android發布APK詳解
一 android studio發布apk 1.android studio選單build generate signed apk 2.若存在金鑰可選擇存在的,不存在金鑰可建立金鑰 key store path 金鑰庫檔案的位址 password confirm 金鑰庫的密碼 alias 金鑰名稱 ...