1.Android本身是一套软件堆栈(或称为软件层叠架构),它包含三部分:操作系统、中间件、应用程序。Android SDK提供了完备的工具和API,供开发人员在Android平台上使用Java开发应用程序。
2.何为软件堆栈?首先要知道堆栈是什么,堆栈的实现思想是先进后出(FILO),也就是说栈底的东西是最先进来的,栈底是封死的,只能进去而不能出来;而栈顶的东西都是最后进来的,由于不是封死的,所以它是朝着栈底方向挪移。将这个堆栈概念提升为软件堆栈,假设地说,栈底就是操作系统,栈顶就是实际的应用程序。换句话说就是软件之间的一种层叠的架构,一层叠一层,最底层的当然还是操作系统。
3.Android架构体系:
Android体系结构包含五大部分:Application、Application Framework、Libraries、Android Runtime、Linux Kernel。
上面的体系架构图中
蓝色背景的为Java编写的;
绿色背景的为C/C++编写的;
红色背景的为C编写的。
(1)应用程序(Applications)
Android刚出货时会有整套核心的Java应用程序,其中有email客户端、SMS、日历、地图、浏览器、电话簿等。
(2)应用程序框架(Application Framework)
Android提供了一个开放的开发平台,供开发人员开发出极为丰富且新颖的应用程序;而且开发人员可以完全自由地利用硬件设备的特性定制他们的应用程序。
Android架构体系设计目标是简化组件的复用,详细地说,某个组件发布了它独有的功能,其他任何组件都可以来使用它的功能。这样的同一机制,允许开发人员相互替代那些组件。
所有的应用程序都包含有一套完整的系统和服务:
a) Views System:它是一套丰富且可扩展的服务,提供构建应用程序原型;其中含有下拉列表、表格、文本框、按钮以及嵌入的web浏览器。
b)Content Provides:提供应用程序可以访问到其他应用程序的数据;还可以共享它们自身的数据。
c)Resource Manager:提供可访问非程序代码的资源,比如能够访问本地化字符串、图片以及布局文件。
d)Notification Manager:提供应用程序在状态栏中显示定制化的警告信息。
e)Activity Manager:提供管理应用程序的生命周期和通用的导航回退功能。
f)Window Manager:提供管理所有的窗体的功能。
g)Location Manager:提供利用GPS定位手机所在位置的功能。
h)Telephony Manager:提供拨打/接收电话的功能。
i)Package Manager:提供Android系统内安装程序的功能
(3)函数库(Libraries)
Android内部含有一套C/C++函数库,以供Android系统中各丰富多样的组件使用。Android应用程序框架封装了这些函数库的功能,以API的形式呈现给开发人员。
(4)运行时(Android Runtime)
这部分包含了两个核心:Core Libraries和Dalvik VM
核心库(Core Libraries)
这个库包含了大量Java核心库中有用的API。
Dalvik虚拟机(Dalvik Virtual Machine)
每个Android应用程序都运行在属于它自己的那个进程里,当然,Devil虚拟机也是属于它自己的。
Dalvik虚拟机执行的是Dalivk Executable(.dex)文件,这种文件格式经过优化的,目的是为了最小限度的降低内存占用。Android SDK中的dx工具可以将class文件转换成.dex格式运行。换句话说,Android系统执行的程序代码并非是.class文件,而是.dex文件。另外Dalvik虚拟机的实现原理是基于寄存器的(register-based)。
Dalvik虚拟机依赖于Linux内核的底层实现功能,比如线程管理、低级内存管理。
(5)Linux内核(Linux Kernel)
Android依赖于Linux2.6的核心系统服务,比如有安全、内存管理、进程管理、网络堆栈、驱动模型。在硬件和软件堆栈之间,Linux内核充当着抽象层的角色。
- 大小: 194 KB
分享到:
相关推荐
"android开发笔记1"主要针对6410开发板,提供了移植Android 2.1系统的详尽步骤,是Android初学者理想的自学资源。下面将根据提供的标签和文件名称,深入讲解相关知识点。 1. Android开发环境搭建:在开始Android...
这个AndroidManifest.xml文件可谓是整个Android工程的灵魂架构师,它不仅定义了你的Android程序运行时所需的功能特性,同时也定义了该Android程序所需权限以及Android核心组件。 这里简单介绍目前我们所遇到最重要的...
这份"Android开发教程&笔记"是为初学者设计的,通过13个章节深入浅出地介绍了Android应用开发的基础知识,旨在帮助读者快速入门。下面将详细阐述这份教程中可能涵盖的关键知识点。 1. **Android系统架构**:首先,...
2. **Android基础**:这部分内容将深入Android平台,介绍Android的系统架构、SDK、开发环境的搭建、Activity生命周期、Intent机制、UI设计、数据存储等基础知识,使学习者能够理解如何在Android平台上构建应用程序。...
这份笔记包含了丰富的理论知识和实践代码,是自学者的理想资源。 Android是一种基于Linux内核的开源操作系统,广泛应用于智能手机、平板电脑以及智能电视等设备。学习Android开发,首先需要理解其基本架构,包括...
几个以日期命名的".txt"文件(如201881-Android开发培训.txt等)可能是培训过程中的笔记或讲义,包含了特定日期课程的重点回顾,可能涵盖了一些实际案例分析和问题解答。 通过这些材料,学习者可以从理论到实践...
总之,这个压缩包提供了宝贵的自学和研究资源,对于想要深入理解移动应用开发或者希望提高编程技能的人来说,是一份很好的实践材料。不过,需要注意的是,由于代码未经验证,运行过程中可能遇到问题,因此学习过程...
在【描述】中提到的"比较全面的关于android的详细教程",这意味着这个合集可能包含了从Android系统架构、编程语言Java或Kotlin的基础、Android Studio的使用,到UI设计、数据存储、网络通信、多媒体处理、权限管理、...
这篇笔记是基于黑马程序员28期的课程内容整理而成,旨在为自学安卓开发的初学者提供详实、清晰的学习资料。在安卓开发的道路上,掌握基础至关重要,因为它是构建复杂应用的基石。以下是笔记涵盖的一些关键知识点: ...
它将传统的课堂讲授与课后自学相结合,使得学生能够在课前通过网络自主学习,课堂时间则用于深入讨论和互动。基于Android平台的翻转式课堂教学系统应运而生,旨在优化这一教学模式,为师生提供更加便捷、高效的学习...
总的来说,"Stu_pack(.pdf).zip"是一个可能包含大量IT相关学习资料的压缩文件,无论是自学还是课堂教学,都能提供丰富的信息和支持。为了充分利用这些资源,了解PDF的基本操作和相关领域知识是必要的。
学习iOS(Swift)或Android(Java或Kotlin)开发,了解移动端架构和用户体验设计,对新人来说很有价值。 4. **版本控制**:使用Git进行版本控制是现代软件开发的标准实践,新人应学会如何使用Git进行代码管理和协作...
这意味着除了视频之外,可能还存在其他形式的学习资源(如文档、代码示例等),这些资源共同构成了完整的学习体系。对于学习者而言,这样的安排能够确保他们获得全面且系统的学习体验,便于跟上课程进度,掌握所学...