概述
Android学习笔记
疯狂Android讲义
文章目录
- Android学习笔记
- 疯狂Android讲义
- 第1章 Android 应用和开发环境
- 1.6 Android应用结构分析
- 1.6.1 Android项目结构分析
- 1.6.2 自动生成的Java类
- 1.6.3 res目录说明
- 1.6.4 Android应用的清单文件:AndroidManifest.xml
- 1.6.5 应用程序权限说明
第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。
-
在java代码中使用资源
R.string.xxxx R.xxx.xxxx
-
在XML文件中使用资源
@<资源对应的内部类的类名>/<资源项的名称>
1.6.4 Android应用的清单文件:AndroidManifest.xml
AndroidManifest.xml清单文件是每个Android项目所必需的,它是整个Android应用的全局描述文件。AndroidManifest.xml清单文件说明了该应用的名称、所使用的图标以及包含的组件等。
- 应用程序的包名,该包名将会作为该应用的唯一标识。
- 应用程序所包含的组件,如 Activity、Service、BroadcastReceiver和 ContentProvider
- 应用程序兼容的最低版本。
- 应用程序使用系统所需的权限声明。
- 其他程序访问该程序所需的权限声明。
- android:label=“@string app_name”,这说明该应用的标签(Label)为 appIsrcmainreslvalue目录下strings.xml文件中名为“ app name”的字符串值。
- androidicon=“@mipmap/ic_launcher”,这说明该应用的图标为 appIsrclmainIreslxxx-mipmap目录下主文件名为“ic _launcher”的图片。
1.6.5 应用程序权限说明
一个 Android应用可能需要权限才能调用Android系统的功能,因此它也需要声明调用自身所需要的权限。
通过为<manifest.…./>元素添加<uses-permission…/>子元素即可为程序本身声明权限。
Android系统的常用权限
官方文档
https://developer.android.google.cn/reference/android/Manifest.permission
可为程序本身声明权限。
Android系统的常用权限
官方文档
https://developer.android.google.cn/reference/android/Manifest.permission
[外链图片转存中…(img-25CwSfzt-1661041652760)]
最后
以上就是整齐航空为你收集整理的Android学习笔记 1.6 Android应用结构分析的全部内容,希望文章能够帮你解决Android学习笔记 1.6 Android应用结构分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复