原文:Android零基础入门第15节:掌握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目录结构分析
01、Project目录
那么接下来我们就来一一了解每一个目录和文件的作用,首先来看看主目录结构,和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版本和存放路径、其他各种依赖库。
02、Module目录
前面大致了解了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目录。
03、res目录
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,我的第一趟旅程出发点。
从下一期正式开始学习Android界面设计有关内容,都准备好了吗?赶紧上车准备出发。
今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!
往期总结分享:
Android零基础入门第1节:Android的前世今生
Android零基础入门第2节:Android 系统架构和应用组件那些事
Android零基础入门第3节:带你一起来聊一聊Android开发环境
Android零基础入门第4节:正确安装和配置JDK, 高富帅养成第一招
Android零基础入门第5节:善用ADT Bundle, 轻松邂逅女神
Android零基础入门第6节:配置优化SDK Manager, 正式约会女神
Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅
Android零基础入门第8节:HelloWorld,我的第一趟旅程出发点
Android零基础入门第9节:Android应用实战,不懂代码也可以开发
Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio
Android零基础入门第11节:简单几步带你飞,运行Android Studio工程
Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌
Android零基础入门第13节:Android Studio配置优化,打造开发利器
Android零基础入门第14节:使用高速Genymotion,跨入火箭时代
此文章版权为微信公众号分享达人秀(ShareExpert)——鑫鱻所有,若转载请备注出处,特此声明!
Android零基础入门第15节:掌握Android Studio项目结构,扬帆起航的更多相关文章
-
Android零基础入门第17节:Android开发第一个控件,TextView属性和方法大全
原文:Android零基础入门第17节:Android开发第一个控件,TextView属性和方法大全 前面简单学习了一些Android UI的一些基础知识,那么接下来我们一起来详细学习Android的 ...
-
Android零基础入门第16节:Android用户界面开发概述
原文:Android零基础入门第16节:Android用户界面开发概述 相信通过前面15期的学习,Android的开发环境已经基本掌握了,如果仍有问题,欢迎到Android零基础入门技术讨论微信群交流 ...
-
Android零基础入门第13节:Android Studio配置优化,打造开发利器
原文:Android零基础入门第13节:Android Studio配置优化,打造开发利器 是不是很多同学已经有烦恼出现了?电脑配置已经很高了,但是每次运行Android程序的时候就很卡,而且每次安装 ...
-
Android零基础入门第1节:Android的前世今生
原文:Android零基础入门第1节:Android的前世今生 现在网上有很多各色Android资料了,但相对来说还是比较零散,Android覆盖的范围极广,最近刚好有机会全部拉通整理一遍,也保存起来 ...
-
Android零基础入门第36节:Android系统事件的响应
原文:Android零基础入门第36节:Android系统事件的响应 在开发Android应用时,有时候可能需要让应用程序随系统设置而进行调整,比如判断系统的屏幕方向.判断系统方向的方向导航设备等.除 ...
-
Android零基础入门第35节:Android中基于回调的事件处理
原文:Android零基础入门第35节:Android中基于回调的事件处理 通过前面两期掌握了Android中基于监听的事件处理的五种形式,那么本期一起来学习Android中基于回调的事件处理. 一. ...
-
Android零基础入门第33节:Android事件处理概述
原文:Android零基础入门第33节:Android事件处理概述 通过对Android基本组件的学习,也有接触少部分Android的事件处理,比如按钮的点击事件.选框的状态切换事件. 一.Andro ...
-
Android零基础入门第34节:Android中基于监听的事件处理
原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...
-
Android零基础入门第9节:Android应用实战,不懂代码也可以开发
原文:Android零基础入门第9节:Android应用实战,不懂代码也可以开发 通过上一期的学习,我们成功开发了Android学习的第一个应用程序,不仅可以在Android模拟器上运行,同时还能在我 ...
随机推荐
-
深入理解OOP(三):多态和继承(动态绑定和运行时多态)
在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 深入理解OOP(一):多态和继承(初期绑定和编译时 ...
-
一群猴子排成一圈,按1,2,...n 编号,数到m只,踢出局,直到剩下最后一个猴子是大王
<?php/***function king*@param $m 数到m个数, $n 猴子个数*return int*/function king($m, $n){ //定义数组, 值为猴 ...
-
QtSpim实现MIPS指令的编写
QtSpim实现MIPS指令的编写 由于各种对齐问题,cnblogs的格式难以控制,故贴图片,谅解.
-
SQL语法集锦一:显示每个类别最新更新的数据
本文转载http://www.cnblogs.com/lxblog/archive/2012/09/28/2707504.html (1)显示每个类别最新更新的数据 在项目中经常遇到求每个类别最新显示 ...
-
武汉科技大学ACM :1005: 零起点学算法101——手机短号
Problem Description 大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号.假设所有的短号都是是 6+手机号的后5位,比 ...
-
SpriteBuilder实现2D精灵光影明暗反射效果(二)
使用SpriteBuilder新建一个项目,将默认MainScene.ccb中的内容统统删掉,此时场景应该是一片漆黑. 将官网中的2张图片以及我自己做的2张图片全部拖拽到其文件视图中去: 其中加_n后 ...
-
Linux内核通用队列的使用笔记(读linux内核设计与实现)
Linux内核通用队列实现 Kfifo位置:kernel/kififo.c 使用需要包含头文件#include <kernel/kififo> 1.创建队列(动态创建)int kfifo_ ...
-
4 Values whose Sum is 0 [POJ2785] [折半搜索]
题意 给你长度为n四个数列,每个数列选一个数使总和为4,有多少种选法(不同选法仅当起码有一个元素的下标不同) 输入 第一行,n 下面n行,每行四个数,代表ai,bi,ci,di 输出 选法数量 样例输 ...
-
Back up and restore information in Firefox profiles
Click the menu button , click Help and select Troubleshooting Information. The Troubleshooting Infor ...
-
ClientImageViewController
package com.vcredit.ddcash.server.web.controller.common; import com.vcredit.ddcash.server.commons.mo ...