1、sharedUserIdjava
android:sharedUserId="com.rongqin"
userid的特色:android
1. 做爲APK身份的標識 ide
2. userid對應一個Linux用戶,因此不一樣APK(用戶)間互相訪問數據默認是禁止的.spa
不一樣APK之間如何經過userid進行數據互訪?插件
在android系統中,apk之間能夠相互讀取數據的條件是:有一樣的簽名,而且AndroidManifest.xml文件中配置的android:sharedUserId屬性值相同,那麼兩個apk運行在同一個進程中,能夠互相訪問任意數據。orm
經過userid訪問其餘apk資源的方法:
xml
1.應用程序和插件(好比皮膚)程序的AndroidManifest.xml中配置相同的sharedUserId:對象
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lonshine.skin" android:versionCode="1" android:versionName="1.0" android:sharedUserId="com.rongqin" >
2.訪問apk中的資源:進程
Context context = createPackageContext("com.lonshine.skin", Context.CONTEXT_IGNORE_SECURITY);
獲取到com.lonshine.skin對應的Context,經過返回的context對象就能夠訪問到com.lonshine.skin中的任何資源。圖片
例如,應用apk要得到插件apk中的bg.png:
Drawable drawable = context.getResources().getDrawable(R.drawable.bg);
這樣就獲得了圖片的引用,其餘xml資源文件的獲取方式也是相似的。