Q: What is a "URI"?
A: The technical meaning of "URI" is defined in RFC 2396:
A Uniform Resource Identifier (URI) is a compact sequence of
characters that identifies an abstract or physical resource.
Q: What is an Android "URI" class?
A: Here is the Javadoc for android.net.Uri
Q: But what do we need the Android "URI" class for?
A: Look at the "Content Providers" section of the Android documentation:
http://developer.android.com/guide/topics/providers/content-providers.html
Content providers manage access to a structured set of data. They
encapsulate the data, and provide mechanisms for defining data
security. Content providers are the standard interface that connects
data in one process with code running in another process.
For example...
public final ContentProviderClient acquireContentProviderClient (Uri uri)
Returns a ContentProviderClient that is associated with the
ContentProvider that services the content at uri, starting the
provider if necessary.
If you're curious, here's what Tim Berners-Lee had to say about URIs (he's the guy who invented them ;)):
http://www.w3.org/DesignIssues/Axioms.html#uri
Universal Resource Identifiers
The Web is a universal information space. It is a space in the sense
that things in it have an address. The "addresses", "names", or as we
call them here identifiers, are the subject of this article. They are
called Universal Resource Identifiers (URIs).
An information object is "on the web" if it has a URI. Objects which
have URIs are sometimes known as "First Class Objects" (FCOs). The
Web works best when any information object of value and identity is a
first class object. If something does not have a URI, you can't refer
to it, and the power of the Web is the less for that.
By Universal I mean that the web is declared to be able to contain in
principle every bit of information accessible by networks. It was
designed to be able to include existing information systems such as
FTP, and to be able simply in the future to be extendable to include
any new information system.
The URI schemes identify things various different types of information
object, wich play different roles in the protocols. Some identify
services, connection end points, and so on, but a fundamental
underlying architectural notion is of information objects - otherwise
known as generic documents. These can be represented by strings of
bits. An information object conveys something - it may be art, poetry,
sensor values or mathematical equations.