《Android 应用案例开发大全(第3版)》——第1章,第1.2节掀起Android的盖头来

简介:

本节书摘来自异步社区《Android 应用案例开发大全(第3版)》一书中的第1章,第1.2节掀起Android的盖头来,作者 吴亚峰 , 苏亚光 , 于复兴,更多章节内容可以访问云栖社区“异步社区”公众号查看

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

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

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

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

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

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

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

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

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


90f8d5bc82cbdbbffb6802d8b586333210c849bf

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

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

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


addceb003d48b550bc59594950e11876e667b5a3

活动管理(Activity Manager):用来管理程序的生命周期,以及提供最常用的导航回退功能。
窗口管理(Window Manager):用来管理所有的应用程序窗口。
内容供应商(Content Providers):通过内容供应商,可以使一个应用程序访问另一个应用程序的数据,或者共享数据。
视图系统(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视图。
OpenGLIES:基于OpenGL ES 1.0 API标准实现的3D绘制函数库,该函数库支持软件和硬件两种加速方式执行。
FreeType:提供位图(bitmap)和矢量图(vector)两种字体显示。
SGL:提供2D图形绘制的引擎。
Android运行时库包括核心库及Dalivik虚拟机,如图1-4所示。

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


f0ef2ec5caa7766e9723935275be5530547832e3

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

相关文章
|
20天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
41 19
|
20天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
45 14
|
23天前
|
Java Linux 数据库
探索安卓开发:打造你的第一款应用
在数字时代的浪潮中,每个人都有机会成为创意的实现者。本文将带你走进安卓开发的奇妙世界,通过浅显易懂的语言和实际代码示例,引导你从零开始构建自己的第一款安卓应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇门,让你的创意和技术一起飞扬。
|
21天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
在数字时代,掌握安卓应用开发技能是进入IT行业的关键。本文将引导读者从零基础开始,逐步深入安卓开发的世界,通过实际案例和代码示例,展示如何构建自己的第一个安卓应用。我们将探讨基本概念、开发工具设置、用户界面设计、数据处理以及发布应用的全过程。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上迈出坚实的步伐。
31 5
|
20天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
21天前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
21天前
|
搜索推荐 前端开发 测试技术
打造个性化安卓应用:从设计到开发的全面指南
在这个数字时代,拥有一个定制的移动应用不仅是一种趋势,更是个人或企业品牌的重要延伸。本文将引导你通过一系列简单易懂的步骤,从构思你的应用理念开始,直至实现一个功能齐全的安卓应用。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你提供必要的工具和知识,帮助你将创意转化为现实。
|
24天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
28天前
|
搜索推荐 前端开发 Android开发
安卓开发中的自定义视图——打造个性化用户界面
在安卓应用开发的广阔天地里,自定义视图是实现个性化界面设计的重要手段。通过深入理解安卓绘图基础、触摸事件处理和布局机制,开发者可以突破标准控件的限制,创造出独一无二的用户体验。本文将引导你探索自定义视图的核心概念,提供实用的代码示例,并分享如何有效地解决开发过程中可能遇到的挑战。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创新和个性化的大门。
|
28天前
|
XML 数据库 Android开发
探索Android开发:从入门到精通的旅程
在这篇文章中,我们将一起踏上一段激动人心的旅程,通过深入浅出的方式,解锁Android开发的秘密。无论你是编程新手还是有经验的开发者,本文都将为你提供宝贵的知识和技能,帮助你构建出色的Android应用。我们将从基础概念开始,逐步深入到高级技巧和最佳实践,最终实现从初学者到专家的转变。让我们开始吧!
41 3