愚公搬代码头像
关注
【愚公系列】《Android应用案例开发大全》001-初识庐山真面目Android简介封面图

【愚公系列】《Android应用案例开发大全》001-初识庐山真面目Android简介

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析


🚀前言

Android 一词的本义指“机器人”,同时也是 Google 于 2007 年 11 月 5 日宣布的,基于 Linux 平台的开源手机操作系统的名称。该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的解决方案。

几年前,当“智能手机”被越来越多的用户提及的时候,当手机爱好者手持一款 Symbian S60 手机随意安装一款软件的时候,人们认为智能手机时代已经来临,但是现在看来,那还只是个预热,真正的智能手机时代还没有到来。直到 Android 的诞生,才真正打破了智能手机发展的僵局,带领智能手机市场迅速崛起,为人们的生活和工作带来了与众不同的全新体验。

从此,人们不再受 PC 束缚。无论走到哪里,只要有一部 Android 手机,并且有移动信号,就可以随时随地进行办公、浏览资讯、网上冲浪,极大地方便了人们的生活。正因如此,Android 仅仅用了 3 年左右的时间,就迅速成长为全球第一大移动终端平台,不仅广泛应用到了智能手机领域,在平板电脑、智能导航仪、智能 MP4 领域也有很大的影响,深受移动终端生产厂商和广大用户的青睐。

🚀一、Android 平台概述

🔎1.1 Android 的来龙去脉

Android 的创始人 Andy Rubin 是硅谷著名的“极客”,他离开 Danger 移动计算公司后不久便创立了 Android 公司,并开发了 Android 平台,他一直希望将 Android 平台打造成完全开放的移动终端平台。之后 Android 公司被 Google 公司看中并将其收购。这样,号称全球最大的搜索服务商 Google 大举进军移动通信市场,并推出自主品牌的移动终端产品。

2007 年 11 月初,Google 正式宣布与其他 33 家手机厂商、软硬件供应商、手机芯片供应商、移动运营商联合组成开放手机联盟(Open Handset Alliance),并发布名为 Android 的开放手机软件平台,希望建立标准化、开放式的移动软件平台,在移动行业内形成一个开放式的生态系统。

🔎1.2 掀起 Android 的盖头来

自从 Android 发布以来,越来越多的人关注 Android 的发展,越来越多的开发人员在 Android 系统平台上开发应用,是什么使 Android 备受青睐,是什么使 Android 在众多移动平台中脱颖而出呢?

🦋1.2.1 选择 Android 的理由

Android 基于 Linux 技术开发,由操作系统、用户界面和应用程序组成,允许开发人员自由获取、修改源代码,也就是说这是一套具有开源性质的移动终端解决方案。其具有开放性、平等性、无界性、方便性以及丰富的硬件支持等特点。下面将对以上各个优点进行简单介绍。

1. 开放性

提到 Android 的优势,首先想到的一定是其真正的开放,其开放性包含底层的操作系统以及上层的应用程序等。Google 与开放手机联盟合作开发 Android 的目的就是建立标准化、开放式的移动软件平台,在移动产业内形成一个开放式的生态系统。

2. 平等性

在 Android 的系统上,所有的应用程序完全平等,系统默认自带的程序与自己开发的程序没有任何区别,程序开发人员可以开发个人喜爱的应用程序来替代系统的程序,构建个性化的 Android 手机系统,这些功能在其他的手机平台是没有的。

在开发之初,Android 平台就被设计成由一系列应用程序组成的平台,所有的应用程序都运行在一个虚拟机上面。该虚拟机提供了一系列应用程序和硬件资源通信的 API。这样就成就了在 Android 的系统上,所有应用程序完全平等。

3. 无界性

Android 平台的无界性表现在应用程序之间的无界,开发人员可以很轻松地将自己开发的程序与其他应用程序进行交互。比如应用程序需要播放声音的模块,而正好你的手机中已经有一个成熟的音乐播放器,此时就不需要再重复开发音乐播放功能,只需简单地加上几行代码即可将成熟的音乐播放功能添加到自己的程序中。

4. 方便性

在 Android 平台中开发应用程序是非常方便的,如果对 Android 平台比较熟悉,想开发一个功能全面的应用程序并不是什么难事。Android 平台为开发人员提供了大量的实用库及方便的工具,同时也将百度地图等功能集成了进来,只需简单的几行调用代码即可将强大的地图功能添加到自己的程序中。

5. 硬件的丰富性

由于平台的开放,众多的硬件制造商推出了各种各样的产品,但这些产品功能上的差异并不影响数据的同步与软件的兼容。例如,原来在诺基亚手机上的应用程序,可以很轻松地被移植到摩托罗拉手机上使用,且联系人、短信息等资料更是可以方便地转移。

🦋1.2.2 Android 的应用程序框架

从软件分层的角度来说,Android 平台由应用程序、应用程序框架、Android 运行时库层以及 Linux 内核共 4 部分构成,本节将分别介绍各层的功能,使读者对 Android 平台有一个大致的了解,便于以后对 Android 应用程序的开发。其分层结构如图 1-1 所示。
在这里插入图片描述

1. 应用程序层

本层的所有应用程序都是用 Java 编写的,一般情况下,很多应用程序都是在同一系列的核心应用程序包中一起发布的,主要有拨号程序、浏览器、音乐播放器、通讯录等。该层的程序是完全平等的,开发人员可以任意将 Android 自带的程序替换成自己的应用程序。

2. 应用程序框架层

对于开发人员来说,接触最多的就是应用程序框架层。该应用程序的框架设计简化了组件的重用,其中任何一个应用程序都可以发布自身的功能供其他应用程序调用,这也使用户可以很方便地替换程序的组件而不影响其他模块的使用。当然,这种替换需要遵循框架的安全性限制。

该层主要包含以下 9 部分,如图 1-2 所示。

在这里插入图片描述

  • 活动管理(ActivityManager):用来管理程序的生命周期,以及提供最常用的导航回退功能。
  • 窗口管理(Window Manager):用来管理所有的应用程序窗口。
  • 内容供应商(Content Provider):通过内容供应商,可以使一个应用程序访问另一个应用程序的数据,或者共享数据。
  • 视图系统(View System):用来构建应用程序的基本组件,包括列表、网格、按钮、文本框,甚至是可嵌入的 Web 浏览器。
  • 包管理(Package Manager):用来管理 Android 系统内的程序。
  • 电话管理(Telephony Manager):所有的移动设备的功能统一归电话管理器管理。
  • 资源管理(Resource Manager):资源管理器可以为应用程序提供所需要的资源,包括图片、文本、声音、本地字符串,甚至是布局文件。
  • 位置管理(Location Manager):该管理器是用来提供位置服务的,如 GPRS 定位等。
  • 通知管理(Notification Manager):主要是对手机顶部状态栏的管理,开发人员在开发 Android 程序时会经常使用,如来短信提示、电量低提示,还有后台运行程序的提示等。

3. Android 运行时库

该层包含两部分:程序库及 Android 运行时库。程序库为一些 C/C++ 库,这些库能够被 Android 系统中不同的应用程序调用,并通过应用程序框架为开发者提供服务。而 Android 运行时库包含了 Java 编程语言核心库的大部分功能,提供了程序运行时所需调用的功能函数。

程序库主要包含的功能库如图 1-3 所示。

  • Libc:是一个从 BSD 继承来的标准 C 系统函数库,专门针对移动设备优化过的。
  • Media Framework:基于 PacketVideo 公司的 OpenCORE。支持多种常用音频、视频格式文件的回放和录制,并支持多种图像文件格式,如 MPEG-4、H.264、MP3、AAC、AMR、JPG、PNG 等。
  • Surface Manager:主要管理多个应用程序同时执行时,各个程序之间的显示与存取,并且为多个应用程序提供了 2D 和 3D 图层无缝的融合。
  • SQLite:所有应用程序都可以使用的轻量级关系型数据库引擎。
  • WebKit:是一套最新的网页浏览器引擎。同时支持 Android 浏览器和一个可嵌入的 Web 视图。
  • OpenGL ES:是基于 OpenGL ES 1.0 API 标准来实现的 3D 绘制函数库。该函数库支持软件和硬件两种加速方式执行。
  • FreeType:提供位图(bitmap)和矢量图(vector)两种字体显示。
  • SGL:提供了 2D 图形绘制的引擎。

Android 运行时库包括核心库及 Dalvik 虚拟机,如图 1-4 所示。
在这里插入图片描述

  • 核心库(Core Libraries):该核心库包括 Java 语言所需要的基本函数以及 Android 的核心库。与标准 Java 不一样的是,系统为每个 Android 的应用程序提供了单独的 Dalvik 虚拟机来执行,即每个应用程序拥有自己单独的线程。
  • Dalvik 虚拟机(Dalvik Virtual Machine):大多数的虚拟机(包括 JVM)都是基于栈的,而 Dalvik 虚拟机则是基于寄存器的,它可以支持已转换为 .dex 格式的 Java 应用程序的运行。.dex 格式是专门为 Dalvik 虚拟机设计的,更适合内存和处理器速度有限的系统。

4. Linux 内核

Android 平台中操作系统采用的是 Linux 2.6 内核,其安全性、内存管理、进程管理、网络协议栈和驱动模型等基本依赖于 Linux。对于程序开发人员,该层在软件与硬件之间增加了一层抽象层,使开发过程中不必时时考虑底层硬件的细节。而对于手机开发商而言,对此层进行相应的修改即可将 Android 平台运行到自己的硬件平台之上。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/aa2528877987/article/details/162586867

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--