掌握Android Studio项目结构,扬帆起航

经过前面的学习,Android Studio开发环境已准备OK,运行Android应用程序的原生模拟器和Genymotion模拟器都准备妥当。在之前简单讲过Eclipse中Android工程的项目结构和运行原理,那么本期就来一起来了解一下Android Studio的项目结构。

一、项目查看模式

前面在熟悉Android Studio界面中提到了Project项目工具窗口,一共支持10种查看模式:

1、project模式:

展示全部文件信息,文件的位置是真实的物理结构,因此在查看文件的时候建议切换到project模式。

2、package模式:

仅显示项目本身的代码和资源,其它的信息都被隐藏了,代码和资源都以层级文件的形式显示。

3、Scratches模式:

Scratches模式只显示草稿文件。Scratch Files(草稿文件)是一个非常方便的功能,可以帮助我们快速的实验和建立原型,使用Scratch Files可以在不修攺项目和创建任何文件的情况下快速画出草图, Android Studio(Intellij idea)为Scratch Files提供了所有的辅助编码功能。

4、Android模式:

所有的文件会通过类型进行归类,这个并不是实际在电脑中的文件结构。

5、Project Files模式:

类似Eclipse的项目结构形式。

6、Problems模式:

仅显示报错的文件结构。

7、Production模式:

仅显示生产文件结构。

8、Tests模式:

仅显示测试文件结构。

9、Local Unit Tests:

仅显示本地单元测试文件结构。

10、Android Instrumented Tests:

仅显示设备化单元测试文件结构。

根据查看效果图可以知道,每一种查看模式用途都不同,在实际开中根据自己的需求选择性切换。平时用的最多的就是Project模式、Android模式,有时候也会用到Package模式。

我们今天主要学习的就是物理结构的Project模式,和电脑文件系统中看到的文件层次一模一样,非常清晰。

二、Project目录结构分析

01Project目录

那么接下来我们就来一一了解每一个目录和文件的作用,首先来看看主目录结构,和Eclipse的目录结构相比变化很大。

在Android Studio中,Project可以理解为一个完整的APP项目,由Application的Module和一些依赖的Module组成,相当于Eclipse中的workspace。

1、.gradle

Gradle编译系统,版本由wrapper指定。

2、.idea

自动生成的用于存放Android Studio配置文件的目录,主要包括版权、检查配置、jar包信息、项目名、编译、编码、gradle、模块等。

3、app

工程中的模块——Module,是一个可以单独运行和调试的application或公共库。Android Studio中的module相当于Eclipse中的project,一个Project中可以有多个Module。

4、build

工程编译目录。

5、gradle

gradle构建目录。

6、.gitignore

工程中的Git忽略配置文件。

7、build.gradle

工程的gradle构建配置文件。

8、gradle.properties

gradle相关的全局属性配置文件。

9、gradlew

gradlew的配置文件。

10、gradlew.bat

Windows上的gradlew配置文件。

11、HelloWorld.iml

工程配置文件。

12、local.properties

本地属性配置文件(key设置、androidsdk位置等属性)

13、setting.gradle

全局配置文件。

14、External Libraries

项目中使用到的依赖库存放目录,主要有Android SDK版本和存放路径、JDK版本和存放路径、其他各种依赖库。

02Module目录

前面大致了解了Android Studio工程的主目录,接下来一起来看app目录,也就是Module目录。

1、build

模块编译后的文件存放目录。

2、libs

模块依赖的jar包存放目录。

3、src/androidTest

设备化测试代码存放目录。

4、src/main/java

代码存放目录,该目录等同于Eclipse里面的src目录。

5、src/main/res

资源文件存放目录,该目录等同于Eclipse里面的res目录,后面详细介绍。

6、src/main/AndroidManifest.xml

应用程序的基本信息清单,等同于Eclipse中的AndroidManifest.xml文件。

7、src/test

测试代码存放目录。

8、.gitignore

模块中Git版本管理忽略文件,标记出哪些文件不用进入git库中。

9、app.iml

模块配置文件。

10、build.gradle

模块的gradle构建配置文件。

11、proguard-rules.pro

代码混淆文件。

除了上述所描述的文件和文件夹,以后开发过程中可能还会遇到这些:

11、src/main/jniLibs

so文件存放目录。

12、src/main/assets

附加的资源文件存放目录,作用同Eclipse中的assets目录。

03res目录

res目录和Eclipse里面的res目录大同小异,由于该目录和java目录为Android开发的重点部分,这里再单独抽取出来了解一下,关于里面的具体内容后续再逐渐学习。

1、drawable

存放能转换为绘制资源的位图文件或定义了绘制资源的xml文件。

2、layout

存放定义了用户界面布局的xml文件。

3、mipmap-hdpi

高分辨率图标目录。

4、mipmap-mdpi

中等分辨率图标目录,一般较少使用,除了兼容老旧手机。

5、mipmap-xhdpi

超高分辨率目录。

6、mipmap-xxhdpi

超超高分辨率目录,当前主流手机的分辨率。

7、mipmap-xxxhdpi

超超超高分辨率目录,如平板电视。

8、values

存放定义了多种类型资源的xml文件,主要包括以下这些:

demens.xml:定义尺寸资源

string.xml:定义字符串资源

styles.xml:定义样式资源

colors.xml:定义颜色资源

arrays.xml:定义数组资源

attrs.xml:自定义控件时用的较多,自定义控件的属性。

除了上述这些,可能还会涉及到以下目录:

9、menu

存放定义了菜单资源的xml文件。

10、raw

存放各种原生资源(音频、视频、一些XML文件等)。

11、anim

存放补间动画的XML文件。

关于Android Studio的项目结构先讲到这里,里面涉及到的一些具体文件会在后续陆续接触来学习,关于Android应用的启动原理可以参照之前Eclipse的内容HelloWorld,我的第一趟旅程出发点

原文发布于微信公众号 - 分享达人秀(ShareExpert)

原文发表时间:2017-07-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

Linux常用网络工具总结(一)

本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如、、、等。 本文不会深入研究这些命令的强大用法,因为...

3217
来自专栏北京马哥教育

最实用也最容易被遗忘的 Linux 命令行使用技巧

作为一个日常在Linux环境下工作的工程师,每天都要大量使用Linux命令行。有时候我们会在网上翻查命令行的使用技巧,但是一旦未能及时进行练习,很快就会把这些小...

1682
来自专栏北京马哥教育

如何判断目标站点是否为Django开发

老文一篇,几个月以前发在【代码审计】小密圈里的文章,当时是写一个系列(Django安全漫谈),抽出其中的一部分,分享一下。 在黑盒测试的情况下,如何判断一个站是...

3278
来自专栏Vamei实验室

树莓派:文本编辑器与文件

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。

1611
来自专栏乐百川的学习频道

Golang学习笔记 包和项目构成

工作目录 先来说说Golang的工作目录,安装好Golang后,需要做的一件事情就是设置工作目录,所有的项目、工具、第三方包会存放到工作目录中。默认情况下工作目...

1899
来自专栏移动应用测试

adbui 使用说明

adbui 所有的功能都是通过 adb 命令,adbui 的特色是可以通过 xpath,ocr 获取 ui 元素。

34716
来自专栏菩提树下的杨过

架设ftp反向代理服务器

因网络环境限制,需要从内网(不能直接连通外网)向外部的ftp上传、下载文件,只能在网关服务器上架设ftp反向代理(网关服务器可同时连通外网与内网,但是不允许内部...

5065
来自专栏CRPER折腾记

Angular 2 + 折腾记 :(1)初识Angular-cli[官方脚手架]及脱坑要点

这个系列的进度有些跳跃性,我尽量直白点解释,但是我不是官方文档,直入主题!!!!

1031
来自专栏iKcamp

走进Node.js 之 HTTP实现分析

作者:正龙(沪江Web前端开发工程师) 本文为原创文章,转载请注明作者及出处 上文“走进Node.js启动过程”中我们算是成功入门了。既然Node.js的强...

3616
来自专栏*坤的Blog

Word文件乱码XML

一个朋友写的文档因为异常关机,导致全部文件变成了xml的乱码,正好帮他解决了,感觉这些或许有些帮助,就先记录下来了.

3329

扫码关注云+社区

领取腾讯云代金券