Android:shareUserId知多少

本文详细介绍了Android中的shareUserId机制,包括其作用于系统权限获取和apk间数据访问。通过设置相同sharedUserId,应用可以共享进程、数据和权限。设置方法涉及在AndroidManifest.xml中添加标签,并使用相同私钥签名。利用shareUserId,应用可以跨权限访问系统资源或相互读写数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

shareUserId简介

shareUserId设置方法

shareUserId的作用之获取系统权限

shareUserId的作用之apk之间的数据访问


shareUserId简介

        在学习shareUserId之前我们先了解一下Android App Sandbox(android沙箱机制)。在Linux中的Sandbox主要做隔离工作,将不同的任务或者用户间的耦合降到最低。Android应用也借用了Linux Sandbox技术,将不同的APP之间做客隔离,其主要表现就是资源和权限访问隔离。每个Android APP都运行在他们自己的Linux线程中(UID不同),每个应用程序彼此独立,默认情况下无法访问其他应用程序资源。APP权限机制为应用程序之间资源的互访提供了可能性,APP必须申请权限并经过用户的授权才能访问Android系统API或者其他服务。

        通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。所以默认就是可以互相访问任意数据。 也可以配置成运行成不同的进程,同时可以访问其他APK的数据目录下的数据库和文件,就像访问本程序的数据一样。

shareUserId设置方法

在需要共享资源的项目的每个AndroidMainfest.xml中添加shareuserId的标签。

android:sharedUserId="com.example.XX"

id名自由设置,但必须保证每个项目都使用了相同的sharedUserId。一个mainfest只能有一个Shareuserid标签。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.shareusertesta"
    android:versionCode="1"
    android:versionName="1.0" 
    android:sharedUserId="com.example">

shareUserId的作用之获取系统权限

        step1.在AndroidManifest.xml中添加android:sharedUserId = "android.uid.system"

        s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值