上节课我们运行起来了第一个应用,现在我们对这个应用的目录结构进行一下分析。
基础组成:
上图就是一个android工程的基本组成,现在我们来一一讲解。
顾名思义,这里是放java代码的目录
gen目录下的文件是编译器生成,其中有一个R文件,我们看一下它内容:
我们可以看到,R文件有很多内部类组成,内部类里面很多静态int类型常量,这些常量就是一个ID,我们做开发的时候经常用这些ID来找到我们需要的内容,这些ID是编译器生成的我们不能手动修改,就像我们每个人都有一个身份证号一样,它是国家给你的,你自己不能修改。
首先,它不像src和gen一样存在于应用的根目录下,我们看一下工程的真实结构:
可以看到没有Android4.4这个文件,实际上它是和新建工程选择用哪个Android API编译相对应的,我们选的是API 19 ,它对应的是android 4.4的版本,它里面有个android.jar文件,我们要调用的android平台的API,都在里面。
它也不是一个真实目录,它主要展示应用引入的第三方lib。
资产目录,可以打包一些文件,例如MP3、MP4文件。
存放编译后的.class .dex .apk文件的目录,编译器生成,我们不做修改。
我们如果要用别人写好的java lib的时候,把.jar文件直接拷到该目录就可引用。
资源目录,先看一下它的结构:
应用中用到的图片、文字、布局都可以放在这里:
Android系统为了适配移动设备会根据设备的DPI去对应的目录选择图片,因为这节不是讲适配的,我们简单的了解下哪个目录放高分辨率,哪个目录放低分辨率的图片就好。
Layout:上节提到过,android系统为了使控制层和View层做分离,对一些静态的界面尽量写成xml文件的形式放在Layout文件夹下。
Menu:存放菜单文件,Android2.3之前,大部分android手机是有菜单键的,点击菜单键弹出的界面,就存放在menu目录下。
Values:
Values-11 和Values-14:一般只有一个styles.xml文件 11 和14对应Android API版本,因为有些属性在低版本中不支持,为了适配版本,把这些高版本才支持的属性放在这两个文件中。
俗称应用的清单文件,这个文件列出了应用程序所提供的功能,需要什么权限,用到那些服务,当前应用的版本,最低支持android版本,应用的名称、图标和包名,有那些组件,每个组件的配置信息,注意如果我们用到的组件不在这里做配置的话,运行的时候就会找不到这个组件而报错。
默认情况下我们不需要修改它,但是如果你害怕别人反编译你的代码就需要在这里做一下配置来防止反编译,具体怎么防止反编译,这里先不做介绍。
默认情况下,这个文件中中只有一句话:
target=android-19
19就是编译API版本号,这里可以修改用什么版本来编译项目
总结,随着android版本的升级,越来越多的新特性加入,应用的目录结构也随着千变万化,但是万变不离其宗,我们先把基础目录了解下,随着课程的学习,我们再深入了解一些新元素的作用。