一、总体结构
目前最主流的Android IDE是Android Studio,它的项目总体结构如下:
一个Project(工程)可以包含多个模块(Module),如图中的HttpDemo、SocketDemo、WebSocketDemo等,模块可以是直接运行的项目,也可以是供其它模块或工程调用的库,这个需在Module的build.gradle中做不同配置:
- apply plugin: ‘com.android.application’———可运行的项目
- apply plugin: ‘com.android.library’———不可运行的库
上图中未标注的文件都是系统自动生成的,有些可以根据需要进行配置和修改,主要包扩下列几种:
- build.gradle:Gradle配置文件,经常需要修改
- proguard-rules.pro:代码混淆配置文件,需要时可修改
- .gitignore:git版本管理配置文件:忽略其中的文件类型,需要时可修改
- xxx.iml:IDEA 项目文件,基本无需修改
- build:编译文件目录,编译中生成的中间文件就在这里,无需修改
- 其它:Gradle配套的配置文件,一般不需修改
未标注文件的详细说明,可以参考这篇博客:https://blog.csdn.net/wx198210/article/details/50248915
二、业务程序结构
真正的业务程序内容在下列main目录下:
main部分主要分为配置文件、代码和资源三大部分(assets可以归类为资源,aidl可以归类为代码):
1. 配置文件
AndroidManifest.xml,每个Module唯一的配置文件,非常重要。配置程序入口、各组件及其属性等。详细信息请参见另一篇博客:https://blog.csdn.net/xotty/article/details/80412950。
2. 代码
- java:在包名目录或多个包名的公共目录下放置源代码,它下面可以根据模块需要任意自定义目录。入口程序、启动Activity和公共数据通常放在根目录下。
- aidl:在包名目录下放置用于进程间通讯的aidl接口文件
3.资源(只可引用,不可以修改)
- assets:该目录用来存放无需Android编译的各种原生资源,通常是文件、音频、视频、数据库等。每个文件不能超过1M大小, assets下面可以任意设置子目录。
- res:该目录(这个可以在module的build.gradle中用res.srcDirs = [‘src/main/res-activity’]来修改)用来放置需要Android编译后即可在代码中引用的资源,通常是:图片、布局、菜单、动画、字符串、数组、xml文档….,其中:
- raw目录放置的内容与assets类似,其下不可以在设置子目录。
- mipmap目录通常只放启动图标,该目录下的图片默认 setHasMipMap 为 true,可以提高Bitmap图片缩放的速度和质量
- values目录:可以包括各种类型的简单数据,如下图所示:
Android资源的定义、使用等详细内容请参见《Android应用资源全面分析》