Android应用程序目录

第一个Android应用程序

1、打开Android Studio主面板

2、Start a new Android Studio project

3、填写ProjectName、PackageName,并选择语言及应用支持的最低版本

4、Finish

注意:关于最低版本的选择,Android Studio帮助开发者提供了各版本的设备数分布的情况,可以在创建项目时进行查看,如下图所示:

 

 

Android 项目目录

Android Studio中可以查看Android项目目录,如下图所示:

AndroidFirst:项目根目录

.idea:Android Studio自动生成的配置目录

gradle:Gradle目录(构建工具)

app:AndroidFirst工程中的Module,根据名称,一个工程下可以有多个Module,默认存在的Module是app

build.gradle文件:gradle配置build文件

External Libraries:外部其他依赖库(SDK等)

 

app Module

app Module是工程最重要的组成部分:

build:module的编译目录,该目录创建时自动生成;

libs:module的依赖包存放目录;

src:module的源码存放目录

build.gradle:本module的gradle配置文件

.gitgnore:代码忽略配置文件

androidTest:系统自动生成的用于测试的目录

test:编写测试案例代码的目录,书写单元测试代码

main:android代码主目录

 

main代码主目录

java:使用Java语言编写的java文件代码

res:module用到的资源目录,包含布局,字体,颜色,图片等资源文件

AndroidMainfest文件:module对应的清单配置文件,该配置文件很重要。每个module都包含一个AndroidMainfest配置文件。该文件名固定,不能修改。该文件中包含了module的整体配置信息,核心作用是供系统能够解析该文件运行对应的Java代码或者,执行正常的功能。

注:分析一个项目,或者进行功能梳理,第一步先从AndroidMainfest.xml文件看起。

res资源目录

drawable:项目图片资源存放目录

mipmap:图片资源目录

values:颜色、字符串、样式等内容

layout:布局文件目录

AnroidMainfest配置文件

该文件是最重要的App配置文件之一,默认的空项目的AndroidMainfest文件如下:

  • mainfest标签:所有的内容都包裹在mainfest标签中,该标签是AndroidMainfest配置文件的根节点。
  • application标签:被包裹在mainfest根标签中,每一个mainfest配置文件中都必须包含一个application标签元素。
  • Activity元素:该元素声明一个实现应用可视化界面的Activity,是一个Java类。所有的activity都必须由清单文件中的activity元素表示。任何该未在androidmainfest文件中声明的activity,对系统来说都是不可见的,即未知的,执行时会报错。
  • 其他:广播broadcast、service等也要在mainfest文件中进行声明。另外还有权限申请等标签,稍后的课程一一介绍。

新建Activity

新建Activity的规则有以下几个:

① 必须继承自Activity,Activity是Android SDK提供的基础类。

② 一个activity对应一个布局文件:比如MainActivity对应的布局文件是activity_main,存放目录在res/layout目录中

③ 在mainfest文件中添加关于新建Activity的注册标签

如下所示:

Activity类文件

在Activity中,通过setContentView方法设置该Activity所对应的布局文件。如上所示,activity_main布局文件在res的layout目录中存在。

布局文件

如何实现Activity和layout的绑定?

R文件

Android项目在进行编译时,会自动生成一个Java文件类,该类名称为R,在该类中包含了所有res目录下的资源的ID,比如布局文件,资源文件,图片的ID等。在写Java代码需要使用到这些资源的时候,可以通过调用R类,并通过R类中的子类+资源名进行访问和使用。

R文件的定义如下所示:

public final class R {
  //attr
  public static final class attr {
    //TODO
  }
  //color 颜色
  public static final class color {
    public static final int colorAccent=0x7f020000;
    public static final int colorPrimary=0x7f020001;
    public static final int colorPrimaryDark=0x7f020002;
  }
  //drawable图片资源  
  public static final class drawable {
    public static final int ic_launcher_background=0x7f030001;
    public static final int ic_launcher_foreground=0x7f030002;
  }
  //id
  public static final class id {
    public static final int barrier=0x7f040000;
    public static final int bottom=0x7f040001;
  }
  //layout
  public static final class layout {
    public static final int activity_main=0x7f050000;
  }
  //mipmap
  public static final class mipmap {
    public static final int ic_launcher=0x7f060000;
    public static final int ic_launcher_round=0x7f060001;
  }
  //string
  public static final class string {
    public static final int app_name=0x7f070000;
  }
  //style
  public static final class style {
    public static final int AppTheme=0x7f080000;
  }
  //styeable
  public static final class styleable {
  }
}

注意:R文件中的内容是自动生成的,开发者不需要修改,也不能修改。