Android开发学习(Day 1) ——Android项目结构

一、Android Studio提供的结构类型

在这里插入图片描述
  开发结构类型可以根据开发者的习惯进行相应的选择,一般用project类型。

二、Android项目结构中常用的三大节点

以project结构为例:
在这里插入图片描述

1.manifests节点


  manifests节点用于显示Android应用程序的配置文件。通常情况下,每个Android应用程序必须包含一个AndroidManifest.xml文件,位于manifests节点下。它是整个Android应用的全局描述文件。在该文件内,需要标明应用的名称、使用图标、Activity和Service等信息,否则程序不能正常启动。
AndroidManifest.xml文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.timemanager">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/icon"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TimeManager">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

AndroidManifest.xml文件中重要的元素以及说明见下面表。

注意:
  在Android程序中,每一个Activity都需要在AndroidManifest.xml文件中有一个对应的< activity >标记, 一般创建新activity,Android Studio会自动添加标记。

元素说明
manifest根节点,描述了package中所有的内容
xmlns:android包含命名空间的声明,其属性值为 http://schemas.android.com/apk/res/android,http://schemas.android.com/apk/res/android, 表示Android中的各种标注属性能在该xml文件中使用,它提供了大部分元素中的 数据
package声明应用程序包
application包含package中application级别组件声明的根节点,一个manifest中可以包含零个或者一个元素
android:icon应用程序图标
android:label应用程序标签,即为应用程序指定名称
android:theme应用程序采用的主题,例如,Android Studio创建的项目默认采用@Style/AppTheme
activity与用户交互的主要工具,它是用户打开以个应用程序的初始页面
intent-filter配置Intent过滤器
action组件支持的Intent Action
category组件支持的Intent Category,这里通常用来指定应用程序默认启动的Activity

2.java节点

  Java节点用来保存Android程序的所用包以及源文件(.java)
初始Java文件代码如下:

package com.example.timemanager;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity4 extends AppCompatActivity {

    @Override
    /*显示页面,对比少了Main方法启动程序*/
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
    }
}

说明:
  这里使用R.layoutactivity main来获取layout目录中的activity_ main.xml 布局文件。这是因为,在Android程序中,每个资源都会在R.java文件中生成一个索引,而通过这个索引,开发人员可以很方便地调用Android程序中的资源文件。
注意:
  应用Android Studio创建的项目,Rjava 文件位于新创建应用的<应用名称>buid generated sourcer debug<包路径>目录下。Rjava文件是只读文件,开发人员不能对其进行修改,当res 包中资源发生变化时,该文件会自动修改

3.res节点

  该节点用来显示保存在res目录下的资源文件,当res目录中的文件发生改变时,R文件会自动修改,在res文件中还包括一些子包。
  1.drawable子目录
  drawable子目录通常用来保存图片资源(如PNG\JPEG\GIF图片、9-Patch图片或者Shape资源文件等)。
  2.layout子目录
  layout子目录主要用来存储Android程序中的布局文件,在创建Android程序时,会默认生成一个activity main.xml布局文件。
activity_main.xml文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">
    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </DatePicker>

</androidx.constraintlayout.widget.ConstraintLayout>

上述主要元素介绍:

元素说明
androidx.constraintlayout.widget.ConstraintLayout布局管理器
xmlns:android包含命名空间的声明,其属性为 htp://schemas.android.com/apk/res/android, 表示Android中的各种标准属性能在该xml文件中使用,它提供了大部分元素中的数据,该属性一定不能省略
xmlns:tools指定布局默认工具
android:layout_width指定当前视图在屏幕上所占的宽度
android:layout_height指定当前视图在屏幕上所占的高度
DatePicker日期选择器组件


  3.mipmap子目录
  mipmap子目录用于保存项目中应用的启动图标。为了保证良好的用户体验,需要为不同的分辨率提供不同的图片,并且分别存放在不同的目录中。通常情况下,Android Studio会自动创建mipmap-xxhdpi (超超超高)、mipmap-xxhdpi (超超高)、mipmap-xhdpi (超高)、mipmap-hdpi (高)和mipmap-mdpi (中)等5个目录,分别用于存放超超超高分辨率图片、超超高分辨率图片、超高分辨率图片、高分辨率图片和中分辨率图片。并且会自动创建对应于5种分辨率的启动图标文件(ic_launcher.png),如图所示:
在这里插入图片描述
  4.values子目录
  value子目录通常用于保存应用中使用的字符串、样式和尺寸资源。在开发国际化程序时,这种方式尤为方便。
在这里插入图片描述
如string.xml文件代码:

<resources>
    <string name="app_name">时间管理器</string>
    <string name="button_loggin">loggin</string>
</resources>

三、学习感受

  收获
  通过第一天学习我了解各个节点的作用以及资源放置情况,收获不少。
  问题
  一些没有深入了解的地方,例如manifest节点中各个元素具体的用法。

以下元素还需了解:

  • xmls:android元素
  • package元素
  • intent-filter元素
  • action元素
  • catelogry元素
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿Halley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值