Android操作系统介绍

news2024/12/23 15:50:40

目录

Android 名词

Android LOGO

体系架构

Android系统架构

Linux 内核

硬件抽象层(HAL)

Android Runtime

原生C/C++库

Java API框架

系统应用

应用组件

活动 (Activity)

服务 (Service )

广播接收器 (BroadcastReceiver )

内容提供者 (Content Provider )

平台优势

开发性

丰富的硬件

方便开发

Google应用


Android 名词

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象征。有时候,它们还会使用纯文字的Logo。


体系架构

Android系统架构

Linux 内核

Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功 能,例如线程和低层内存管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备 制造商为著名的内核开发硬件驱动程序。

硬件抽象层(HAL)

Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 Kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提 下进行发展。

Android Runtime

对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并 且有其自己的 Android Runtime (ART) 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行 多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。编 译工具链(例如 Jack)将 Java 源代码编译为 DEX 字节码,使其可在 Android 平台上运行。

原生C/C++库

许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写 的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以 通过 Android 框架的 Java OpenGL API 访问 OpenGL ES,以支持在应用中绘制和操作 2D 和 3D 图形。如果开发的是需要 C 或 C++ 代码的应用,可以使用 Android NDK 直接从原生代码访问某 些原生平台库。

Java API框架

您可通过以 Java 语言编写的 API 使用 Android OS 的整个功能集。这些 API 形成创建 Android 应 用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用包括以下组件和服务:

  1. 丰富、可扩展的视图系统,可用以构建应用的 UI,包括列表、网格、文本框、按钮甚 至可嵌入的网络浏览器。
  2. 资源管理器,用于访问非代码资源,例如本地化的字符串、图形和布局文件。
  3. 通知管理器,可让所有应用在状态栏中显示自定义提醒。
  4. Activity 管理器,用于管理应用的生命周期,提供常见的导航返回栈。
  5. 内容提供程序,可让应用访问其他应用(例如“联系人”应用)中的数据或者共享其自己 的数据 开发者可以完全访问 Android 系统应用使用的框架 API。

系统应用

Android 随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。平台随附的应 用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览 器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。系统应用可用作用 户的应用,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信,您 无需自己构建该功能,可以改为调用已安装的短信应用向您指定的接收者发送消息。


应用组件

Android开发四大组件

活动 (Activity)

  • Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可 以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。
  • 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间Android的应用 可以进 行相互跳转。

服务 (Service )

  • Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行, 只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。
  • 举个例子,打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览 器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继 续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。

广播接收器 (BroadcastReceiver )

  • 在Android 中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。

内容提供者 (Content Provider )

  • Content Provider 是Android提供的第三方应用数据的访问方案
  • 在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据 库、文件等内容,都是不允许其他直接访问的。Android当然不会真的把每个应用都做成一 座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。

平台优势

开发性

  • 在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android 联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平 台也将很快走向成熟。
  • 开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者 来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以 用更低的价位购得心仪的手机。

丰富的硬件

  • 这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪, 功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同 从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone 上使用、联系人等资料更是可以方便地转移。

方便开发

  • Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可 想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏 如何控制正是留给Android难题之一。

Google应用

  • 在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、 邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的 Google服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BLOOM模型结构详解

《BLOOM: A 176B-Parameter Open-Access Multilingual Language Model》 论文地址: https://arxiv.org/pdf/2211.05100.pdf 代码地址: transformers库-modeling_bloom.py BigScience 官方提供的代码链接并没有找到完整的模型实现代码,只有提示说模型结构代码是在 Megatron 的…

JS 中深拷贝的几种爱恨情仇

页面开发中,经常会碰到需要对数据进行某些处理操作,又不想影响原先的数据,所会经常将数据进行拷贝,当然这里指的是深拷贝。 深拷贝和浅拷贝的区别? 深拷贝通通俗点来讲呢,其实就是不管当前要操作的数据层级…

目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)

超越CIOU/SIOU | Wise-IoU助力YOLO强势涨点!!! 论文题目:Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism 论文链接:https://arxiv.org/abs/2301.10051 ​ 近年来的研究大多假设训练数据中的…

Java实现发送邮件(定时自动发送邮件)

系列文章目录 Redis缓存穿透、击穿、雪崩问题及解决方法Spring Cache的使用–快速上手篇分页查询–Java项目实战篇全局异常处理–Java实战项目篇 该系列文章持续更新,更多的文章请点击我的主页查看哦! 文章目录 目录 系列文章目录 文章目录 前言 一…

算法训练第五十七天 | 647. 回文子串、516.最长回文子序列、动态规划总结篇

动态规划part17 647. 回文子串题目描述思路暴力解法动态规划双指针法 516.最长回文子序列题目描述思路 动态规划总结篇动划基础背包问题系列打家劫舍系列股票系列子序列系列总结 647. 回文子串 题目链接:647. 回文子串 参考:https://programmercarl.com…

hot100:数组——31、33

31. 下一个排列 思路:其实这道题的意思就是,简单地说,就是找到一个比现有的给出的数组代表的值大的最小的数 比如给出的数组是[1,2,3],它代表的数值是123,现有的元素组成的数值中,比123大的有很多&#xf…

3.6 n维随机变量

学习目标: 学习n维随机变量需要掌握一定的数学知识,包括多元微积分、线性代数和概率论等。要学习n维随机变量,我会采取以下步骤: 复习相关的数学知识:首先,我会复习多元微积分、线性代数和概率论的基本知…

OpenCV介绍与GUI特征(一)

目录0.1 OpenCV-Python教程简介OpenCVOpenCV-PythonOpenCV-Python教程OpenCV需要你!!!贡献者0.2 在Windows中安装OpenCV-Python目标从预制的二进制文件中安装OpenCV从源代码构建OpenCV练习0.3 在Ubuntu中安装OpenCV-Python目标从预制的二进制文件中安装OpenCV-Python从源码构建…

Revit怎么绘制结构梁?一键生成梁?

绘制结构梁是Revit基础的功能,对于不少刚接触Revit的小伙伴来说似乎还无从下手,今天就让小编来告诉大家在Revit中绘制结构梁的方法。 一、Revit中结构梁图文绘制过程 首先,我们选择“结构”选项卡中的“梁”工具,点击选择梁的类…

android12 displayArea学习

一:数据结构分析 1:android 12 WindowContainer 的类继承关系如下 下图为 WindowContainer 简要的对象图。 下图是 Aosp默认的display层次结构对象图。 Aosp定义的feature有如下 FEATURE_ROOT 0; FEATURE_DEFAULT_TASK_CONTAINER 1; FEATURE_WINDOW_…

DNS服务器 - 理论

DNS服务器1. 概念2. DNS域名结构3. 域名的分级4. 域名服务器5. 域名解析过程5.1 递归查询与迭代查询5.2 解析流程1. 迭代查询2. 递归查询6. 高速缓存:7. 加上主机缓存后的DNS解析流程8. 常见的域名解析记录9. DNS正向解析和反向解析1. 概念 DNS服务器(D…

C++指针与其它复合类型

目录 前言: 1.指针与字符串 1.1cout接收char类型的地址的反应 1.2字符串字面值 1.3字符串备份 2.使用new创建动态结构 3.使用new和delete搭配存储键盘输入的字符串 前言: 指针我们已经知道如何使用了,也知道指针和数组配合起来使用&am…

DHCP及中继(UOS)

DHCP服务器 中继器 客户端 服务器 安装DHCP apt install isc-dhcp-server -y 编辑配置文件 vim /etc/dhcp/dhcpd.conf 重启服务 systemctl restart isc-dhcp-server 配置监听网卡 vim /etc/default/isc-dhcp-server 中继器 安装dhcp yum install dhcp -y nmtui 修改…

【LeetCode每日一题: 1042. 不邻接植花 | 图论 | 染色问题】

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎 🍎座右…

Qt中调用C#制作的com组件

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 这里记录一下在 Qt 64位程序中调用 C# 制作的 com 组件的流程,方便后期自己回顾。 1. 了解 TLB 格式 拿到的依赖库最…

hbase进阶操作——读流程与写流程介绍

系列文章目录 centos7虚拟机下hbase的使用案例讲解 文章目录 系列文章目录 一、hbase架构原理 1.1、StoreFile 1.2、MemStore 1.3、WAL 二、hbase的写流程 2.1、写流程的流程图 2.2、写流程的流程图说明 三、hbase读流程 3.1、读流程的流程图 3.2、读流程的流程图解…

C/C++|物联网开发入门+项目实战|指针|嵌入式C语言高级|C语言内存空间的使用-学习笔记(9)

文章目录2-3 : C语言内存空间的使用指针概述示例:指针修饰符指针运算符示例示例1多级指针例子省略argc(个数)的常用写法:参考: 麦子学院-嵌入式C语言高级-内存空间2-3 : C语言内存空间的使用 指针概述 内存类型资源地…

CPU工作原理

CPU(中央处理器)是计算机中的重要组件,它负责执行计算机程序中的指令。在了解CPU的工作原理之前,我们需要先了解一些基本概念。 指令和指令集 指令是计算机程序中的基本单位,它指示计算机执行某个操作。指令集是一组…

我在“Now In Android”中学到的 9 件事

我在“Now In Android”中学到的 9 件事 Now in Android是一款功能齐全的 Android 应用程序,完全使用 Kotlin 和 Jetpack Compose 构建。它遵循 Android 设计和开发最佳实践,旨在为开发人员提供有用的参考。 https://github.com/android/nowinandroid UI…

淘宝悄悄内测“店号一体”的新模式

4月17日消息,淘宝近日已开始小规模测试“店号一体”新模式。新模式下,淘宝店铺将与逛逛、直播等账号完全打通;此前针对达人及内容型商家的新店铺模式“视频内容店”也同步升级。 内测商家透露,目前在淘宝发布的图文、短视频、直播…