一、Android工程的目录结构

在Android Studio中,一个Android项目的文件结构有许多种表现形式,称之为视图。其中,Android视图是Android Studio默认的视图,在新建一个项目之后,Android Studio就会将项目的文件结构以Android视图表现出来,Android视图显示的比较简洁,适合进行快速开发,但是对于新手来说可能并不易于理解;Project视图是程序员们比较喜欢的视图,Project视图中的文件结构就是项目在硬盘上真实的文件结构。

android 项目开发描述 安卓项目描述_android 项目开发描述

Android视图

android 项目开发描述 安卓项目描述_android 项目开发描述_02

Project视图

android 项目开发描述 安卓项目描述_android 项目开发描述_03

对比发现,Android视图显示的内容主要在Project视图中的app文件夹中。我们用表格做个对比:

下面将分节介绍上面的部分目录中存放什么类型的文件。

1、src/main/java文件夹

顾名思义(src, source code)该文件夹是放项目的源代码的。

java目录是放置我们所有java代码的地方,展开该目录,你将看到有一个MainActivity文件。

打开MainActivity.java文件,会看到如下代码:

package com.sdbi.helloworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

它通过package语句定位该类位于com.sdbi.helloworld包内(对应着文件夹),

通过import语句导入了两个类:android.support.v7.app.AppCompatActivity和android.os.Bundle,

MainActivity类继承自AppCompatActivity且重写了onCreate方法。

在onCreate()中只有两行代码,其中第一句是调用了父类的onCreate()方法,用来获取Activity的状态,

第二句用setContentView(R.layout.activity_main)来设定Activity所要显示的布局文件,它是通过对R类的引用来实现的,实际上就是位于res/layout/activity_main.xml文件。

注意:

(1)@Override用法:

在重写父类的onCreate时,在方法前面加上@Override系统可以帮你检查方法的正确性。

例如,public void onCreate(Bundle savedInstanceState){……}这种写法是正确的,

如果你写成public void oncreate(Bundle savedInstanceState){……}

这样编译器回报如下错误:

Method does not override method from its superclass

以确保你正确重写onCreate方法。(因为oncreate应该为onCreate)

android 项目开发描述 安卓项目描述_android_04

而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。

(2)android.support.v7.app.AppCompatActivity类:在Android Studio中几乎所有的活动Activity都要去继承于AppCompatActivity类,这是新版安卓兼容包Android Support Library中定义的一个类,为了让新的UI控件也可以跑在早期的 Android 版本。我们不用去修改它。我们重点关注onCreate()方法里面的代码。

2、res文件夹

资源目录,在项目中使用到的所有图片、布局、字符串等资源都在该目录下,其中图片放在drawable目录下,布局文件放在layout目录下,字符串放在values目录下。

  • drawable:用来存放.png/.jpg等位图文件。
  • layout:目录下是程序的布局文件,是.xml形式的布局文件。在android应用该程序中可以使用xml布局文件来描述应用程序的布局,同样我们可以在程序中直接通过Java来创建用户界面。使用xml文件的好处是简单,结构清晰,维护容易,但是也有缺点那就是不能动态的控制更改程序的界面。
  • values:目录下包含了所有使用XML格式的参数描述文件,我们可以自己添加我们需要的资源,如字符串(xml)、颜色(colors.xml)、样式(styles.xml)等。
  • mipmap:也是可以存放图片的目录、为了加快渲染速度和减少图像锯齿,一些图片被处理成由一系列被预先计算和优化过的图片文件。一般来说这里只存放Launcher图标。Launcher是Android系统的桌面启动器。

3、AndroidManifest.xml文件

清单文件,是整个Android项目的配置文件,在程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明。

当你新添加一个Activity的时候,一定要在这个文件中进行相应配置,只有配置好后,才能调用此Activity

关于AndroidManifest.xml现在就讲这么多,后面还会详细介绍。

二、设备调试及Logcat查看

1、设备调试

点击项目上方工具栏app图标,然后选择“Edit Configurations...”。

android 项目开发描述 安卓项目描述_Android_05

android 项目开发描述 安卓项目描述_Android_06

2、Logcat

Android日志系统提供了记录和查看系统调试信息的功能。当程序运行后,我们需要在调试的时候查看Logcat的信息,点击Android Studio底部的Logcat按钮,会弹出Logcat查看窗口。

android 项目开发描述 安卓项目描述_Android_07

我们来测试一下Logcat

在MainActivity中增加一行语句

android 项目开发描述 安卓项目描述_android_08

重新运行程序,查看Logcat窗口。

android 项目开发描述 安卓项目描述_android 项目开发描述_09

Android中Log分为五级,分别对应着5个方法:

级别由低到高:v(verbose)< d(debug) < i(info) < w(warning)  < e(error)

我们以上面用到的Log.d("MainActivity", "调试信息")为例,Log.d(String tag, String msg)方法传入两个参数:第一个参数是tag,一般传入当前的类名就好,主要用于对于打印信息进行过滤;第二个参数是msg,即想要打印的具体内容。

我们可以添加过滤器来分级查看。

android 项目开发描述 安卓项目描述_android 项目开发描述_10

android 项目开发描述 安卓项目描述_xml_11