很多有4到5年开发经验的Android程序员都不了解Android项目中各个文件夹的功能及作用,现在给大家普及一下。
先看下图,我们从文件夹和文件的顺序往下讲解。
1、src,这个是存放java源文件的,Java程序员都不陌生,无需多讲。
2、gen,这个文件夹存放的是自动生成的java类,不建议修改,否则会出现一些莫名其妙的错误,一般有BuildConfig.java和R.java这两个类。项目中添加的任何资源都会在R类中自动生成对应的资源唯一id,当你在项目中添加一个按钮Button是,在R类中会自动生成一个按钮的资源id。
3、assets,这个文件夹存放的是随应用打包生成的文件,方便应用运行时动态读取。
4、bin,该文件夹存放应用编译时的文件,包含有apk安装文件,无需过多关注。
5、libs,存放应用相关的第三方类库文件。
6、res,这个文件非常重要,它是resource单词的简称,顾名思义,主要是存放应用相关的资源文件,例如图片、布局、菜单、按钮、字符串等资源。gen文件夹中的R类就是根据这个文件夹中的资源生成的。点开该文件夹,可以看到如下的内容
drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi这5个文件夹都是存放图片用的,例如应用的起始图片和桌面图标,为什么有如此多的文件夹呢?这是为了兼容不同分辨率的Android设备,应用会根据设备的不同分辨率读取对应文件夹中的图片,当没有对应的分辨率时则读取drawable-hdpi中的图片资源。layout用于存放布局资源,menu用于存放菜单资源,values开头的文件夹都是存放字符串文件的。
7、AndroidManifest.xml,Android项目的配置文件,应用的权限、定义的组件、应用兼容的最低版本和目标版本等都是在该文件中定义的。
8、ic_launcher-web.png,这是为了在google Play市场上展示该应用图标,需要512×512分辨率。
9、proguard-project.txt,混淆配置,保护该项目的源码不容易被反编译。
10、project.properties,指定编译项目是所指定的SDK版本。