Android权限之shareUserId

项目中看到过shareUserId,了解了这个配置特性

1.关于shareUserId

每一个APK在安装到设备上的时候,设备都会为其分配一个单独的空间,mainfest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的Linux用户ID,并且为他创建一个沙箱,以防止影响其他程序。用户ID在应用程序安装到设备中时被分配。

通过在AndroidMainfest.xml设置android:shareUserId可以让拥有同一个Userid的多个应用运行在统一进程,或者不同进程。多个相同UserId的应用可以互相随意访问数据。

2.共享UID步骤

1.在AndroidMainfest.xml设置相同的android:shareUserId

2.在Android.mk中增加LOCAL_CERTIFICATE的定义。

如果增加了上面的属性但没有定义与之对应的LOCAL_CERTIFICATE的话,APK是安装不上去的。提示错误是:Package com.test.MyTest has no signatures that match those in shared user android.uid.system; ignoring!也就是说,仅有相同签名和相同sharedUserID标签的两个应用程序签名都会被分配相同的用户ID。例如所有和media/download相关的APK都使用android.media作为sharedUserId的话,那么它们必须有相同的签名media。

3.把apk的源码放到package/apps/目录下,用mm进行编译

3.使用shareUserId=”android.uid.system“的好处

提升app的优先级,内存不足少被杀