Android开发入门(二) | Android应用组件了解

在这里插入图片描述

Android 开源手机操作系统

Android(安卓)是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由谷歌收购注资。2007年11月,谷歌与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后谷歌以Apache许可证的授权方式,发布了Android的源代码。

在这里插入图片描述
1、Android 提供了一个内容丰富的应用框架,支持在 Java 语言环境中为移动设备开发创新应用和游戏:

2、应用提供多个入口点

Android 应用都是将各种可单独调用的不同组件加以组合构建而成。例如,组件可以是为用户界面提供一个屏幕的单个“Activity”,也可以是在后台独立执行工作的“服务”。 您可以使用 Intent 从一个组件启动另一个组件。甚至,您还可以启动不同应用中的组件,例如,启动地图应用中的 Activity 以显示地址。 此模式可为单个应用提供多个入口点,并使任何应用均能够像用户“默认设置”一样处理其他应用可能调用的操作。

3、应用可适应不同的设备

Android 提供了一个自适应应用框架,您可以利用它为不同的设备配置提供独特的资源。例如,您可以针对不同的屏幕尺寸创建不同的 XML 布局文件,系统将根据当前设备的屏幕尺寸确定要应用的布局。 如有任何应用功能需要相机等特定的硬件,则可在运行时查询设备功能的可用性。 如有必要,您还可以声明您的应用所必需的功能,使 Google Play 商店等应用市场不得在不支持这些功能的设备上安装您的应用。

Android 基础知识

Android 应用采用 Java 编程语言编写,通过 Android SDK 工具将你所编写的代码—连同任何数据和资源文件编译到一个 APK软件包中,一个 APK 文件包含 Android 应用的所有内容,它是基于 Android 系统的设备用来安装应用的文件。

  • Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一位不同的用户;
  • 默认情况下,系统会为每个应用分配一个唯一的 Linux 用户 ID(该 ID 仅由系统使用,应用并不知晓)。系统为应用中的所有文件设置权限,使得只有分配给该应用的用户 ID 才能访问这些文件;
  • 每个进程都具有自己的虚拟机 (VM),因此应用代码是在与其他应用隔离的环境中运行;
  • 默认情况下,每个应用都在其自己的 Linux 进程内运行。Android 会在需要执行任何应用组件时启动该进程,然后在不再需要该进程或系统必须为其他应用恢复内存时关闭该进程。

App Components 应用组件

今天我们来了解Android 应用程序的基本构建组价,应用程序组件是Android应用程序的基本构建块。每个组件都是一个不同的点,系统可以通过它进入您的应用。并非所有组件都是用户的实际入口点,有些组件相互依赖,但每个组件都以独立实体形式存在,并发挥特定作用—每个组件都是唯一的构建基块,有助于定义应用的总体行为。

Android应用程序主要由以下四个主要组件构成:

  • Activities: 它们决定了用户界面和处理用户交互的智能手机屏幕。
  • Services: 它们处理与应用程序相关的后台处理。
  • Broadcast Receivers: 它们处理Android OS和应用程序之间的通信。
  • Content Providers: 它们处理数据和数据库管理问题。

Activities 活动

Activity用一个用户界面表示一个屏幕,简而言之 Activity在屏幕上执行操作。 例如,一个电子邮件应用程序可能有一个Activity,显示新电子邮件列表,另一个Activity组成一封电子邮件,另一个Activity阅读电子邮件。 如果应用程序具有多个Activity,则应将其中一个标记为应用程序启动时显示的Activity

一个Activity作为Activity类的一个子类实现如下 :

public class MainActivity extends Activity {
    
    
}

Services 服务

服务Service是在后台运行的组件,能够执行长时间运行的操作, 服务没有用户界面。例如,Service可能在用户处于不同的应用程序时在后台播放音乐,或者可能通过网络获取数据而不阻止用户与Activity交互。诸如 Activity 等其他组件可以启动服务,让其运行或与其绑定以便与其进行交互。
Service是作为Service类的子类实现的:

public class MyService extends Service {
    
    
}

Broadcast Receivers 广播接受器

广播接收器仅响应来自其他应用程序或系统的广播消息, 是一种用于响应系统范围广播通知的组件。 例如,应用程序也可以启动广播,让其他应用程序知道某些数据已经下载到设备中,并可供其使用,因此这是广播接收方将拦截此通信并将启动适当的操作

广播接收器作为BroadcastReceiver的子类实现,并且每条广播都作为Intent对象进行传递。

public class MyReceiver  extends  BroadcastReceiver {
    
    
   public void onReceive(context,intent){
    
    }
}

Content Providers 内容提供者

内容提供者组件根据请求向一个应用程序提供数据,(即管理一组共享的应用数据,其他应用可以通过内容提供程序查询数据,甚至修改数据(如果内容提供程序允许),因此,任何具有适当权限的应用都可以查询内容提供程序的某一部分(如ContactsContract.Data),以读取和写入有关特定人员的信息)。 这些请求由ContentResolver类的方法处理。 数据可以存储在文件系统,数据库或其他地方。

内容提供程序也适用于读取和写入您的应用不共享的私有数据。内容提供者被实现为ContentProvider类的子类,并且必须实现一组标准的API,使其他应用程序能够执行事务。

public class MyContentProvider extends  ContentProvider {
    
    
   public void onCreate(){
    
    }
}

ManifestFile 清单文件

清单文件的主要任务是告知系统有关应用组件的信息

在这里插入图片描述

ManifestFile 作用:

  • Declaring components 声明组件
    在 Android 系统启动应用组件之前,系统必须通过读取应用的 AndroidManifest.xml 文件(“清单”文件)确认组件存在。您的应用必须在此文件中声明其所有组件,该文件必须位于应用项目目录的根目录中。

  • 确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限

  • 根据应用使用的 API,声明应用所需的最低API 级别

  • 声明应用使用或需要的硬件和软件功能,如相机、蓝牙服务或多点触摸屏幕

  • 应用需要链接的 API 库(Android 框架 API 除外),如 Google Maps API 库

  • 其他功能

其他组件

android工程项目在构建上述实体时,还会使用其他组件:

  • Fragments: 表示Activity中的用户界面的一部分。
  • Views: 在屏幕上绘制的UI元素,包括按钮,列表形式等
  • Layouts: 查看控制屏幕格式和视图外观的层次结构。
  • Intents: 消息连接组件在一起。
  • Resources: 外部元素,如字符串,常量和可绘制图片。
  • Manifest: 应用程序的配置文件。

应用资源

一个Android应用程序除了编码外, 还需要其他分离的资源来构建成一个良好体验的应用程序,如图像、颜色、布局定义、音频文件以及任何与应用的视觉呈现有关的内容。一般位于res/文件夹目录下的各个子资源文件夹中,res/目录中包含不同的子目录的不同资源:

在这里插入图片描述

  • drawable/: 像被编译成位图。.png, .jpg, .gif 或XML文件,状态列表,图形,动画可绘制的图像文件。它们被保存在res/drawable/,并可从R.drawable类访问

  • layout/: 定义用户界面布局的XML文件。它们被保存在res/layout/,并可从R.layout类访问

  • mipmap: mipmap是用来放启动器图标的

  • values/: 包含简单的值,如字符串,整数和颜色的XML文件。例如,这里有一些文件名约定资源,可以创建在该目录中:

参考: https://blog.csdn.net/anxpp/article/details/50809160?utm_source=app

猜你喜欢

转载自blog.csdn.net/weixin_43853746/article/details/108564240
今日推荐