情况1 :老平台+老子业务
升级:老平台升级
描述:老平台无androidsharedUserId,新平台加了androidsharedUserId
结果:升级为新平台不会删除数据库等资源文件,但是无法访问老平台数据库。子业务仍然可以访问。
情况2 :老平台+老子业务
升级:子业务升级
描述:老子业务没有androidsharedUserId,新子业务加了androidsharedUserId
结果:子业务无法访问老平台数据库等资源。
研究结果:
1. 资源想要互相访问。必须要有同一个androidsharedUserId
2. 没有配置androidsharedUserId的apk系统会默认分配。所以之后的新平台加androidsharedUserId的话无法和系统默认的进行匹配,无法访问apk资源。
3. 数据库文件放在哪个apk的目录,就想访问其资源就必须要有和他同样的androidsharedUserId,才能访问其资源。
4. 无法访问的原因是由于linux系统的安全机制。他会给每个安装的apk产生的文件加上访问权限。而访问权限的添加一般是一个进程一个权限。
5. 两个apk不可能是一个进程。即使配置相同的android:process,也是只给两个进程同一个名字,实质上并不是一个进程。