Android项目结构
新建个空的安卓项目,打开,切换到project模式:
一、工程结构
1/ .gradle和.idea
这两个目录下都是AS自动生成的,无须关心,也不要手动编辑。
2/ app
项目中的代码、资源等几乎都在这里,后面开发也基本在这里,等下细谈这里。
3/ gradle
这个目录下包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。
AS默认没有启用gradle wrapper的方式,修改设置:
AS导航栏-File-Settings-Build,Execution,Deployment-gradle。
4/ .gitgnore
用来将指定的目录或文件排除在版本控制外。
5/ build.gradle
项目全局的gradle构建脚本,通常内容不需修改。
细节内容可参考:AndroidStudio的Gradle基础
6/ gradle.properties
全局的gradle配置文件,这里配置的属性将会影响到项目中所有的gradle编译脚本。
7/ gradlew和gradlew.bat
用于在命令行界面中执行gradle命令,其中gradlew是在linux或mac系统,gradlew.bat是在windows系统使用。
8/ local.properties
用于指定本机中AndroidSDK路径,通常内容是自动生成,除非本机SDK位置发生变化,否则无须修改。
9/ settings.gradle
用于指定项目中所有引入的模块,新工程demo只有一个app模块,所以该文件中就只引入了app这一个模块。通常模块的引入都是自动完成的。
include ':app'
二、app目录结构
1/ build
包含了一些在编译时自动生成的文件,无需过多关心。
2/ libs
若项目中使用到了第三方jar包,就需要把这些jar包都放在libs目录下,放在这个目录下的jar包都会被自动添加到构建路径去。
3/ androidTest
这个是用来编写androidTest测试用例的,可以对项目进行一些自动化测试。
4/ java
放置我们所有的java代码的地方。
5 / res
在項目里用到的所有**图片(drawable)、布局(layout)、字符串(values)**等资源都要存放在这。下面着重说下。
6 / AndroidManifest.xml
整个安卓项目的配置文件,在程序中定义的所有四大组件(Activity、Service、Broadcast Receiver、Content Provider)都需要在这个文件里注册,另外还可以在这里给应用程序添加权限声明。
7/ test
此处是来编写Unit test测试用例的,是对项目进行自动化测试的另一种方式。
8/ .gitgnore
同外部的类似,排除版本控制。
9/ app.iml
IntelliJ IDEA项目自动生成的文件,不需关心,无须修改。
10/ build.gradle
app模块的gradle构建脚本,文件中会指定很多项目构建相关的配置。
细节内容可参考:AndroidStudio的Gradle基础
11/ proguard-rules.pro
用于指定项目代码的混淆规则,当代码开发完成后打成安装包文件,如果不希望代码被人破解,通常会将代码混淆,从而让破解者难以阅读。
三、res目录结构
1/ drawable开头 放图片
2/ mipmap开头 放应用图标
3/ layout开头 放布局xml文件
4/ values 放字符串、样式、颜色等配置
前缀后面接的“-”后面内容是为了更好地兼容各种设备。(不同分辨率)
e.g. res/values/string.xml的内容:
<resources>
<string name="app_name">HelloWorld</string>
</resource>
这里定义了一个应用程序名的字符串,有两种方式引用它:
- 代码中通过R.string.app_name可以获得该字符串的引用
- 在XML中通过@string/app_name可以获得该字符串的引用
esource>
这里定义了一个应用程序名的字符串,有两种方式引用它:
- 代码中通过R.string.app_name可以获得该字符串的引用
- 在XML中通过@string/app_name可以获得该字符串的引用