【愚公系列】《Android应用案例开发大全》001-初识庐山真面目Android简介
【行业认证·权威头衔】✔ 华为云天团核心成员特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区全满贯CSDN博客商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金亚马逊51CTO顶级博主✔ 技术生态共建先锋横跨鸿蒙、云计算、AI等前沿领域的技术布道者【荣誉殿堂】 连续三年蝉联华为云十佳博主2022-2024 双冠加冕CSDN年度博客之星TOP220222023 十余个技术社区年度杰出贡献奖得主【知识宝库】覆盖全栈技术矩阵◾ 编程语言.NET/Java/Python/Go/Node…◾ 移动生态HarmonyOS/iOS/Android/小程序◾ 前沿领域物联网/网络安全/大数据/AI/元宇宙◾ 游戏开发Unity3D引擎深度解析文章目录前言一、Android 平台概述1.1 Android 的来龙去脉1.2 掀起 Android 的盖头来1.2.1 选择 Android 的理由1.2.2 Android 的应用程序框架前言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 平台运行到自己的硬件平台之上。

相关新闻

深入解析HRPWM高分辨率PWM技术:原理、配置与Buck变换器、PWM DAC实战

深入解析HRPWM高分辨率PWM技术:原理、配置与Buck变换器、PWM DAC实战

1. 项目概述:为什么我们需要HRPWM? 在数字电源和电机驱动的世界里,PWM(脉宽调制)信号的精度直接决定了系统的性能天花板。传统的PWM,其时间分辨率被系统时钟周期(TBCLK)所限制。举个…

2026/7/21 23:43:12 阅读更多 →
Claude Code AI编程助手实战避坑指南:7大关键陷阱与解决方案

Claude Code AI编程助手实战避坑指南:7大关键陷阱与解决方案

Claude Code 作为一款备受关注的 AI 编程助手,其庞大的教程体系(如 52 万字教程)背后,隐藏着许多新手甚至有一定经验的开发者容易忽视的实践陷阱。这篇文章不打算复述那些冗长的入门步骤,而是直接切入核心:…

2026/7/21 23:43:12 阅读更多 →
Claude模型不可选问题排查与修复:从配置到网络全流程指南

Claude模型不可选问题排查与修复:从配置到网络全流程指南

在实际使用 Claude 或类似 AI 模型时,经常会遇到模型不可选或连接问题,特别是当项目依赖特定模型版本时。这类问题不仅影响开发效率,还会导致功能无法正常使用。本文将以修复 Fable 模型不可选问题为例,详细介绍从问题定位到解决的…

2026/7/21 23:42:11 阅读更多 →

最新新闻

不确定性推理系统构建:从模糊逻辑到贝叶斯网络的智能决策实现

不确定性推理系统构建:从模糊逻辑到贝叶斯网络的智能决策实现

如果你正在寻找关于"矩阵陨落"或"虚构推理"的技术实现方案,可能会有些失望——因为这两个概念本身并不指向某个具体的技术框架或工具。但如果你关注的是如何用技术手段实现复杂的逻辑推理系统,或者想要构建能够处理模糊信息的智能应…

2026/7/22 1:44:28 阅读更多 →
Python GDAL实战:ASTER GDEM V003全国DEM高程数据处理(1123幅分幅合并→34省裁切,30m精度)

Python GDAL实战:ASTER GDEM V003全国DEM高程数据处理(1123幅分幅合并→34省裁切,30m精度)

Python GDAL实战:ASTER GDEM V003全国DEM高程数据处理(1123幅分幅合并→34省裁切,30m精度)摘要:本文详细记录了基于 Python(rasterio GDAL)对 ASTER GDEM V003 原始数据进行全国34省级行政区DE…

2026/7/22 1:44:28 阅读更多 →
电商管理平台Smart Web核心功能与技术架构解析

电商管理平台Smart Web核心功能与技术架构解析

1. Smart Web管理端核心功能解析Smart Web作为一款面向电商企业的综合管理平台,其管理端设计遵循"数据驱动、效率优先"的原则。管理端采用模块化架构,主要包含以下核心功能模块:店铺管理中枢:支持多店铺统一管理&#x…

2026/7/22 1:44:28 阅读更多 →
嵌入式低功耗设计:Deep Sleep模式与SYSCFG模块实战解析

嵌入式低功耗设计:Deep Sleep模式与SYSCFG模块实战解析

1. 项目概述与核心价值在电池供电的嵌入式设备开发中,功耗管理从来都不是一个“锦上添花”的选项,而是决定产品成败的关键。我经历过不少项目,前期功能跑得飞起,一到功耗测试就傻眼,待机电流比预期高出几倍&#xff0c…

2026/7/22 1:44:28 阅读更多 →
明明自己写的期刊却说AI率高?原因和降到合格的方法

明明自己写的期刊却说AI率高?原因和降到合格的方法

明明自己写的期刊却说AI率高?原因和降到合格的方法 你大概正卡在一件特别憋屈的事上:这篇稿子明明是你自己一句一句敲出来的,一段一段查资料写的,投出去却收到编辑部反馈,说你的 AIGC 疑似度偏高,要求你降…

2026/7/22 1:44:28 阅读更多 →
Czkawka:拯救磁盘空间的3大终极武器与5步实战指南

Czkawka:拯救磁盘空间的3大终极武器与5步实战指南

Czkawka:拯救磁盘空间的3大终极武器与5步实战指南 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 你是否曾面对杂乱无章的硬盘空间感到…

2026/7/22 1:43:28 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻