首页 > 其他分享 >02.Android项目介绍

02.Android项目介绍

时间:2022-08-25 23:01:40浏览次数:61  
标签:02 文件 xml app 视图 介绍 Android onCreate

一、Android工程的目录结构

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

Android视图

Project视图

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

Android视图

Project视图

详细说明

app/manifests

app/src/main/AndroidManifest.xml

存放AndroidManifest.xml文件,整个项目的配置文件,包括程序版本、四大组件注册、权限声明等。

app/java

app/src/main/java

Java源文件夹,存放项目中所有的Java代码源文件。

app/res

app/src/main/res

存放项目中所有的资源文件,包括图片、布局、字符串等。

Gradle Scripts

app/* + HelloWorld/*

gradle相关配置文件、gradle构建文件。

app/build

包含编译时自动生成的文件,与外层build文件夹类似但更复杂。

app/libs

存放项目中使用的第三方jar包,其中的jar包会自动加入构建路径。

app/src/androidTest

用来编写Android Test测试用例,可以对项目进行自动化测试。

app/src/test

用来编写Unit Test测试用例,可以对项目进行自动化测试。

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

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)

而如果你不加@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...”。

2、Logcat

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

我们来测试一下Logcat

在MainActivity中增加一行语句

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

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

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

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

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

标签:02,文件,xml,app,视图,介绍,Android,onCreate
From: https://www.cnblogs.com/lihuawei/p/16624289.html

相关文章

  • markdown图表语法Mermaid介绍
    Markdown是一种轻量级标记语言,除了编辑文字外,还支持插入图片、表格、公式,它是很流行的一种文档编辑语言,很多博客平台都支持使用Markdown来编辑文章。Markdown还有一个好用......
  • 蔚来杯2022牛客暑期多校训练营10 题解
    D.MiReDoSiLa?SoFa![NOI2016]优秀的拆分原题。枚举周期\(k\),并将位置为\(k\)的倍数的点设为关键点。枚举相邻两个点\(i,i+k\),并求出\(lcp(S[i...n],S[i+k......
  • 2022-08-25 第四组 王佳齐
    学习笔记div的name拿不到,id能拿到,因为div原本有id属性,而没有name属性,元素.属性名只适用于元素原生的属性,后加的是获取不到的,那怎么才能获取到?使用元素.getAttribute("属性......
  • 2022“杭电杯”中国大学生算法设计超级联赛(10) 题解
    C.WavyTree发现修改次数和相邻两数的相对大小有关,所以可先求出差分数组。分两种情况考虑:①奇数位置为波峰②偶数位置为波峰。以情况①为例,若奇数位置差分后值小......
  • 2022-8-24 js
    JavaScript脚本语言,解释性主要给HTML网页增加动态功能通常的JS是运行在浏览器环境下的,是由浏览器解释执行的,可以控制页面JS分两种模型:DOM:文档对象模型,d......
  • 2022-8-25第一组孙乃宇JavaScript
    JavaScript最后元素的属性获取元素的属性所有的HTML元素,我们可以根据具体需求,自定义添加属性<divhaha="abc"id="xyz"name="123"></div>获取这个属性的值为什么na......
  • 2022/8/25 总结
    A.幸福考场上没想起矩阵,写了个\(\mathtt{O(n)}\)的暴力,得\(\mathtt{70pts}\);Solution矩阵乘法。对\(F_n\)进行化简,就可以化得一个式子:\(F_n=F_{n-1}+F_{n-2}......
  • 2022-08-25 第五组 赖哲栋 学习笔记
    元素的设置<!--所有的HTMl元素,我们可以根据具体需求,自定义添加属性--><divhaha="abc"id="xyz"></div>获取属性的值元素.属性名的方式只适用于元素原生的属性......
  • 02379计算机网络管理复习汇总01
    第1章网络管理概论一、网络管理系统的层次结构:  二、网络管理框架的共同特点:管理功能分为了管理站(Manager)和代理(Agent)两局部;为了存储管理信息提供数据库支持,例如......
  • Android学习笔记五(JAVA):创建新的Activity,启动新的Activity,管理任务之定义启动模式,从
    本篇笔记给QuizDemo新增一个HelpActivity,用户点击Help按钮,会跳转到HelpActivity屏幕,并选择是否查看答案。查看答案之后,返回到答题屏幕,但是如果已经看了答案,这一题的作答就......