android为什么需要签名与数据共享

来源:互联网 发布:大数据预测销售量 编辑:程序博客网 时间:2024/06/07 17:39

点击打开链接 -- 转载

所有的Android应用程序都要求开发人员用一个证书进行数字签名,anroid系统不会安装没有进行签名的由于程序。

数字签名可以进行身份认证,如果包名相同,但签名不同,安装时会报错提示,可以保证包名相同的包不被替换;如果要正式发布应用,都需要一个合适的私钥来生成证书给应用签名。


apk签名带来的好处:

1.方便升级:方便用户无缝升级到新版本,想升级应用程序,签名证书要相同,包名称要相同!

2.应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。

3.代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。


下面是关于数据共享:

点击打开链接

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的数据目录下的数据库和文件.就像访问本程序的数据一样.

(仅有相同签名和相同sharedUserID标签的两个应用程序签名都会被分配相同的用户ID,可以配置为运行在同一进程中,这样就可以访问同样的全局数据等)

0 0
原创粉丝点击