android 中的 Uri 和 URI

55 阅读1分钟

1. 结论

android 中的 Uri 是 在 URI 的基础上为 android 系统定制的

2. 为什么要定制

URI是 java 包下,最初目的是定义网络访问的资源路径

android 扩展了 URI 的功能,进而衍生出 Uri,它的功能是提供访本地资源的一种方式

2.1 访问本地资源为什么要用这么一种方式呢,如果不用这种方式有没有其他方式?

a. 访问本地资源如果是文件可以使用绝对路径; 但是 android 为了安全嘛,后续就不允许使用绝对路径访问文件了
b. 本地资源除了文件外,还有其他的资源如短信联系人,还有一些公共文件或者其他应用产生的文件我们压根儿不知道它的路径
c. 所以为了统一访问资源就定制了 Uri

3. Uri 格式

[scheme:][//authority][path][?query][#fragment]

[scheme:][//host:port][path][?query][#fragment]

看看这格式跟 URI 是不是一模一样呀,尤其是第二个这不就是 URI 嘛