• Android学习笔记 1.6 Android应用结构分析


    Android学习笔记

    疯狂Android讲义

    第1章 Android 应用和开发环境

    1.6 Android应用结构分析
    1.6.1 Android项目结构分析

    app目录结构

    在这里插入图片描述

    这个目录就是一个典型的Gradle项目,

    其中build.gradle是该项目的构建文件;build目录存放该项目的构建结果;

    libs目录存放该项目所依赖的第三方类库;

    src是项目开发的重点,所有源代码和资源都放在该目录下。

    查看build.gradle文件

    在这里插入图片描述

    当然现在gradle已经7.x了,和书上描述的就有些出入了。

    这个指定了该构建文件应用的插件,所有的Android项目构建都需要使用com.android.application插件,除非你打算自己来完成所有的构建工作。

    build.gradle文件的接下来部分则负责为项目定义全局属性:

    在这里插入图片描述

    构建文件的最后部分定义项目依赖

    在这里插入图片描述

    .gitignore是版本控制工具Git所需要的文件,用于列出哪些文件不需要接受Git的管理。一般来说,只有项目源文件和各种配置文件才需要接受Git的管理。

    在这里插入图片描述

    main目录下的 java目录、res目录(对应于标准的 Gradle项目叫作 resources目录)、AndroidManifest.xml文件是Android项目必需的。

    • java目录:保存java或kotlin源文件

    • res目录:res.目录:存放Android项目的各种资源文件。比如 layout子目录存放界面布局文件,values子目录存放各种 XML 格式的资源文件,如字符串资源文件strings.xml、颜色资源文件colors.xml、尺寸资源文件 dimens.xml;drawable子目录存放XML文件定义的 Drawable资源,如 drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdr等子目录分别用于存放低分辨率、中分辨率、高分辨率、超高分辨率、超超高分辨率的5种图片文件。

      与drawable子目录对应的还有一个 mipmap子目录,这两个子目录都用于存放各Drawable资源。其区别在于: mipmap子目录用于保存应用程序启动图标及系统保留的Drawable资源;而drawable子目录则用于保存与项目相关的各种Drawable资源。

    • AndroidManifest.xml文件是 Android项目的系统清单文件,它用于控制Android应用的名称,图标、访问权限等整体属性。除此之外,Andriod应用的Activity、Service、ContentProvider、BroadcastReceiver这4大组件都需要在该文件中配置。

    1.6.2 自动生成的Java类

    在这里插入图片描述

    Android项目自动生成的Java类。

    R.java文件是由AAPT工具根据应用中的资源文件自动生成的 → Android应用的资源字典。

    生成规则:

    • 每类资源都对应于R类的一个内部类。比如所有界面布局资源对应于layout内部类;所有字符串资源对应于string内部类;所有标识符资源对应于id内部类。
    • 每个具体的资源项都对应于内部类的一个public static final int类型的字段。例如,前面在界面布局文件中用到了show标识符,因此R.id类里就包含了这个字段;由于mipmap-xxX文件夹里包含了ic_launcher.png 图片,因此R.mipmap类里就包含了ic_launcher字段。
    1.6.3 res目录说明

    Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片资源、字符串资源、颜色资源、尺寸资源等

    Android按照约定,将不同的资源放在不同的文件夹内,这样可以方便地让AAPT 工具来扫描这些资源,并为它们生成对应的资源清单类:R.java。

    1. 在java代码中使用资源

      R.string.xxxx
      R.xxx.xxxx
      
      • 1
      • 2
    2. 在XML文件中使用资源

      @<资源对应的内部类的类名>/<资源项的名称>
      
      • 1
    1.6.4 Android应用的清单文件:AndroidManifest.xml

    AndroidManifest.xml清单文件是每个Android项目所必需的,它是整个Android应用的全局描述文件。AndroidManifest.xml清单文件说明了该应用的名称、所使用的图标以及包含的组件等。

    • 应用程序的包名,该包名将会作为该应用的唯一标识。
    • 应用程序所包含的组件,如 Activity、Service、BroadcastReceiver和 ContentProvider
    • 应用程序兼容的最低版本。
    • 应用程序使用系统所需的权限声明。
    • 其他程序访问该程序所需的权限声明。

    在这里插入图片描述

    • android:label=“@string app_name”,这说明该应用的标签(Label)为 appIsrc\main\reslvalue目录下strings.xml文件中名为“ app name”的字符串值。
    • androidicon=“@mipmap/ic_launcher”,这说明该应用的图标为 appIsrclmainIreslxxx-mipmap目录下主文件名为“ic _launcher”的图片。
    1.6.5 应用程序权限说明

    一个 Android应用可能需要权限才能调用Android系统的功能,因此它也需要声明调用自身所需要的权限。

    通过为元素添加子元素即可为程序本身声明权限。

    Android系统的常用权限

    官方文档

    https://developer.android.google.cn/reference/android/Manifest.permission

    在这里插入图片描述

    可为程序本身声明权限。

    Android系统的常用权限

    官方文档

    https://developer.android.google.cn/reference/android/Manifest.permission

    [外链图片转存中…(img-25CwSfzt-1661041652760)]

  • 相关阅读:
    LeetCode_Array_42. Trapping Rain Water 接雨水【双指针】【Java】【困难】
    【云备份|| 日志 day1】项目认识 && 环境准备
    HTML5期末大作业 基于HTML+CSS+JavaScript学校官网首页
    Windows MFC 工程应用开发与框架原理完全剖析视频教程(上)
    Go 微服务开发框架 DMicro 的设计思路
    百度飞桨平台使用高级算力的问题
    安森美LM317全系列低压差线性稳压器(LDO)多种不同封装类型 高性能更可靠
    使用GD32F207的高级定时器来产生PWM波出现的隐藏BUG
    C语言库总结
    gulimall基础篇回顾Day-09
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126447140