标签:
Android最早由安迪•罗宾(Andy Rubin)创办,2007年被Google公司收购,Google公司凭借Android操作系统在智能手机上取得了巨大的成功。
1、Android操作系统的特点
Android操作系统是一个多用户的Linux系统,每一个应用程序都是一个独立的用户。系统默认为每一个应用程序分配一个唯一的Linux用户ID(这个ID只能被系统使用,并且对于应用程序来说,这个ID是未知的)。系统为一个应用程序的所有文件设置了权限,所以,只有分配给这个应用程序的用户ID才可以访问它们。
每一个进程有它主机的虚拟机(VM),所以一个应用程序的代码会独立于其它的应用程序运行。
默认情况下,每一个应用程序在它自己的Linux进程中运行。Android会在一个应用程序的任何一个组件需要被调用的时候启动这个进程。然后,当没有任何组件被调用或者系统需要为其它应用程序回收内存的时候,就关闭这个进程。
通过这种方式,Android系统实现了最少的特权原则。就是说,每一个应用程序,默认都只能调用它所需要的工作组件。这就创造了这样一种非常安全的环境,在这个环境中,一个应用程序不能访问没有被授予其权限的系统部分。
尽管如此,也有很多途径可以让一个应用程序和其它的应用程序共享数据,也可以让一个应用程序去调用系统服务:
2、Android程序在系统中的存在方式
开发在Android操作系统上运行应用程序时,Android SDK工具负责编译代码,以及将任意数据并连同相关资源一块打包进一个Android包内,它实际上是一个以.apk为后缀的压缩文件。一个.apk文件中的所有代码就是一个Android应用程序。
在Android设备上安装应用程序就是安装.apk文件。
一旦安装成功,该Android程序就拥有了自己独立的运行沙盒(沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限)。
每个Android版本都有一个唯一的整数标识,称为API Level。由于用户使用的程序总是早于最新发布的API版本,所以实际的Android应用程序必须确保能在多版本API的环境中都能工作。
1、Android SDK和项目配置
Android SDK为我们提供了API链接库以及用于建立、测试与调试android应用的开发工具的集合。指定Android API版本配置前,要确保已经用Android SDK Manager安装了对应版本的Android SDK。
每个Android应用程序必须正确配置所使用的API级别,有三种:
默认情况下,三种API设置为相同的值:
将“Target framework”更改为某个API版本,即可拥有该版本的所有API功能。如果希望兼容早期的Android版本,可修改“Minimum Android to target”选项:
上图中的选项表明开发的Android应用程序可以安装在Android 4.0.3到Android 5.0之间所有版本的手机上,即API 15~API 21。但是,虽然可以安装在这些平台上,可并不能保证应用程序都能在这些平台上正常运行。例如,将程序安装到Android 4.0.3(API 15)平台上,可代码中却调用了比API 15更高版本的API,那么该程序肯定无法在Android 4.0.3平台上正常运行。因此,这种情况下,必须显式包含运行时检查:
if (Android.OS.Build.Version.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
{
builder.SetCategory(Notification.CategoryEmail);
}
(注:Android.OS.BuildVersionCodes.Lollipop是指Android 5.0)
2、Android API版本对照表
下表列出了各种Android版本及其对应的信息:
从表中可以看出,Android的版本发布非常频繁,有时一年就发布几个版本。如何确保在如此多的版本中仍然能让应用程序可靠地运行?这就是API Level的作用。
3、API级别和自定义库
当创建Android Libraries项目时,应该让开发的库函数能应用于各种版本的API,因此一般不需要设置最低级别的API和最高级别的API,而是应遵循以下的最佳做法:
总之,要确保开发的库函数使用尽可能少的API,以便让所设计的库适用范围更广。
标签:
原文地址:http://www.cnblogs.com/rainmj/p/5180875.html