Android开发自学笔记(二):工程文件剖析
无论使用何种ide开发android,集成官方android sdk并创建android工程之后,该工程都会默认包括一整套android项目文件,这个工程都可以直接run在你的真机或者模拟器上。
本文主要简单剖析这个默认的完整的一套项目工程的文件结构,这样我们在开发我们自己的项目的时候才能熟练做到有的放矢。
androidmanifest.xml
这个androidmanifest.xml文件可谓是整个android工程的灵魂架构师,它不仅定义了你的android程序运行时所需的功能特性,同时也定义了该android程序所需权限以及android核心组件。
这里简单介绍目前我们所遇到最重要的节点元素之一:<uses-sdk> 。
这个节点定义了你的应用的设备兼容性问题,我们都知道android设备五花八门,但不同的设备都是有android版本,比如我们常听说的android2.2, 2.3,平板专用的android3.0和现在的android4.x,这些版本都有定义好的sdkversion,所在这个节点里面我们得指定最小android版本(android:minsdkversion)以及目标android版本(android:targetsdkversion)这两个属性。所以应该形如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minsdkversion="8" android:targetsdkversion="19" />
...
</manifest>
其中最小android版本指定为8,并且指定目标版本为19,需要注意的是:
1.android:targetsdkversion应设置尽可能的高,这个属性的作用是当设备的sdk version和指定的目标版本一致,无需设备打开兼容功能;
2.android:minsdkversion而这个属性则提现了你的应用向下兼容程度,一旦设备的sdk version低于这个数字,则无法安装出现下述错误:
installing com.example.helloworld
device shell command: pm install -r "/data/local/tmp/com.example.helloworld"
pkg: /data/local/tmp/com.example.helloworld
failure [install_failed_older_sdk]
1.如果不显式指定targetsdkversion,则默认等同于minsdkversion;
2.另外,我们有时会看到android:maxsdkversion,其作用和minsdkversion相反,这个属性主要体现在android 1.5, 1.6, 2.0, 和2.0.1中,这些老的系统一旦在做完系统更新时,会重现验证并安装老系统中安装的应用程序,一旦发现maxsdkversion低于升级之后的新系统,则新系统不予安装这些应用。
src/
src目录,顾名思义存放的是应用程序的源码文件,当然程序在编译之后这个目录就不复存在了,否则源码被人家盗了不是?
res/
res目录是指资源文件resource的存放目录,这个目录包含了一些子目录。
比如存放图片的目录drawable-xxx,在现在的默认环境中,一般有4个类似的目录,分别用来存放不同分辨率的图片(drawable-xhdpi/hdpi/mdpi/ldpi),好的应用为了尽可能多的适配多种不同分辨率的机型,是需要做多套不同分辨率的图片,并分别存放在这4个目录中。
res目录下还有用来存放定义用户界面gui(应用程序界面)的布局文件,这些布局文件则存放在layout目录下;
另外还有一个用来存放定义变量集的xml的目录,即values,这个目录可以定义颜色和字符串等变量集合。