关于Android的详细信息,如果你英文很好的话,建议直接去看它的SDK文档。现在我也是根据SDK来总结下,它的一些基本概念。
Android的主要依赖Linux内核。Linux内核应该来说是一个广泛认可并且稳定的。那么Linux充当Android的后勤部长的角色。也就是为Android提供了硬件抽象层,这样便于将Android移植到更多的平台上。
从内部上看,Android使用Linux完成其内存管理、进程管理、网络和其他操作系统服务工作。最近有信息表明Google已经有开发Android手机了。这样也加大了Android的宣传。在这里我就不将Android的系统构架图链接过来了,想了解的直接去google上面搜索下吧.
接下来再看看Android的一些库,下面的库是本机库
Linux内核层上面的一层中包含了Android的本机库。这些共享库都是使用C或C++语言编写的,并且针对电话使用的特定硬件架构进行了编译,并已由手机制造商预先安装到手机中。
1. 界面管理器(Surface Manager)。Android使用与Visita或Compiz类似的组合窗口管理器,但是它要更简单一些。它并不是将显示内容直接绘制到屏幕缓冲区中,而是将绘制命令传递给屏幕外的位图,然后将该位图与其他位图组合起来,形成用户看到的显示内容。这种方法允许系统实现所有有趣的效果。
2. 2D和3D图形。 使用Android时候,二维和三维元素可结合到一个用户界面中。
3. 媒体编解码。 Android可播放视频内部,并可用各种格式录制和播放音频,兼容的格式有:AAC、AVC(H.264)、H.263、MP3和MPEG-4.
4. SQL数据库。 Android提供了轻量级的SQLite数据库引擎,使用该引擎可在应用程序中持续存储。
5. 浏览器引擎。为了保证快速显示HTML内容,Android使用了WebKit库。Google Chrome浏览器、苹果的Safari浏览器等。
大家都知道Java有JVM,那么Android运行呢?
在Linux内核层上面还有一个Android运行时的层,该层包括Dalvik虚拟机以及Java核心库。
Dalvik虚拟机是Google的Java的实现(就像Sun的JVM一样),专门针对移动设备进行了优化。为了Android编写的所有代码使用的都是Java语言,这些代码都在虚拟机中运行。
下面看看Dalvik和JVM的不同之处。
1. Dalvik VM 运行.dex文件,即编译时会将标准的.class和.jar文件转换为.dex文件。.dex文件比类文件更加紧凑并且更高效,这是针对运行Android的设备内存有限且通过电池供电的特点所作出的重要的改进。
2. Android附带的Java核心库与Java SE库和J2ME库不同。但是,它们之间很大一部分还是一样的。
Android应用程序框架
位于本机类库和运行时上面的是应用程序框架层。该层提供了在创建应用程序时需要使用的各种高级构建块。该框架已随Android一起安装,开发人员也可以根据需要使用自己的组件扩展该框架。该框架最重要的部分有以下5部分:
1. 活动管理器。 该管理器控制应用程序的生命周期,同时维护一个公共的“后退栈”供用户导航。
2. 内容提供者。 这些对象封装需要在应用程序之间共享的数据
3. 资源管理器。 资源是程序中涉及的任何非代码内容。
4. 位置管理器。 Android手机始终知道目前所处的位置
5. 通知管理器。 像收到短信、临近预约时间、临近状态报警、异常入侵等等时间都可以通过友好的方式通知用户。
不过Android有一个不同一般的系统认识的地方。那就是
进程不等于应用程序。
从内部看,每个用户界面窗口都是通过一个Activity类表示的,而每个活动activity都有其自己的生命周期。一个应用程序就是一个或者多个活动加上包含这些活动的Linux进程。
注意:在Android中,你kill一个进程,但是相应的应用程序可能还是"live"。
也就说,活动的生命周期与进程的生命周期没有关系。进程只是各种活动的一个随意使用的一个容器。这一个点和其他的系统中的情况不大应用。因此大家要注意。有时间在好好看看Android应用程序生命周期。
分享到:
相关推荐
**Android 蓝牙基本概念** 蓝牙技术是一种短距离无线通信技术,允许设备之间进行数据交换,常用于手机、电脑、智能硬件等设备之间的连接。在Android系统中,蓝牙功能被广泛应用于文件传输、音频流播放、健康监测...
在Android开发领域,掌握基本概念是至关重要的。本篇文章将深入探讨"android理论学习——基本概念"中的三个关键要素:Manifest、Content Providers以及Intent和Intent-filter。这些元素构成了Android应用程序的基础...
这篇“【菜鸟谈android】(二) android基本概念及处理过程”可能会深入浅出地介绍Android开发的一些核心要素。虽然没有具体的描述内容,但从标题我们可以推测文章可能涵盖了以下几个方面: 1. **Android系统架构**:...
Android开发是近年来非常热门的一个领域,随着智能手机和平板电脑的普及,越来越多的开发者开始关注如何为这个平台创建出色的应用程序...在本文中,我们将详细介绍Android开发的基本概念和流程,并分享一些心得和建议。
在Android开发领域,创建一个基本的应用程序涉及到多个关键知识点,这些知识点构成...以上就是"Android基本的例子"项目中可能涵盖的一些核心知识点。通过学习和实践这些概念,开发者可以构建出功能完善的Android应用。
本文将深入探讨Android的基本概念、控件使用以及一些关键特性。 首先,让我们从【第1章 Android开发基础】开始。Android是一个开源的操作系统,主要应用于移动设备,如智能手机和平板电脑。开发Android应用主要使用...
Android界面设计中的基本概念.pdf 学习资料 复习资料 教学资源
"Java4Android"这个主题,从标题"03_Java基本概念(一)"来看,旨在为初学者提供Java语言的基础知识,这通常是任何Java或Android开发者的入门起点。描述中提到的内容清晰易懂,表明这一部分可能包含了一系列易于理解...
Android GDI 基本框架 Android GDI 基本框架是 Android 中最复杂的代码之一,涉及到显示缓冲区的操作和管理。GDI 主要管理图形图像的输出,从整体方向上来看,GDI 可以被认为是一个物理屏幕使用的管理器。 GDI 的...
### Android基本控件Widget概述 #### 一、Widget概念与特点 Widget是Android 1.5版本引入的新特性,它允许应用程序在用户的桌面主屏幕上显示常用的重要信息。这些信息可以是一些简短的状态更新,也可以是更为复杂的...
本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android的基本概念和开发技术。 一、Android系统架构 Android系统架构是Android开发的基础,系统架构包括Linux Kernel、...
这个讲座内容详实,覆盖了Android开发的基础知识,旨在帮助新手快速理解并掌握Android应用开发的基本概念和技术。 首先,我们从Android操作系统的基础开始。Android是由Google主导开发的开源移动操作系统,它基于...
Gradle插件引入了依赖注入的概念,允许开发者在`build.gradle`文件中声明依赖库,如Google的Play Services、AndroidX库等。当运行构建时,Gradle会自动下载并添加这些库到项目中。 在实际开发中,我们还需要了解...
通过"复习基本OOP知识d.mp4"这个视频资源,你将能够深入理解并掌握这些关键概念,从而在Android架构设计中游刃有余。不断地学习和实践,将帮助你成长为一名出色的Android架构师,实现高质量、高性能的应用开发。
理解并熟练掌握Activity的基本概念和生命周期管理是Android开发的基础,这对于创建高效、稳定且用户体验良好的应用程序至关重要。开发者需要根据应用需求合理设计Activity的交互方式和生命周期,以提供流畅的用户...
这个"android的基本知识的demo"压缩包很可能是为了教学或自我学习目的而设计的,它包含了Android开发的一些基础特效的实例代码。下面,我们将深入探讨Android开发中的核心概念和关键知识点。 1. **Android SDK**:...
1. **Kotlin基础**:Kotlin的语法特性,如空安全、类型系统、扩展函数、高阶函数、lambda表达式等,这些都是在Android开发中编写路由器概念应用时需要掌握的基本技能。 2. **Android Studio集成开发环境**:作为...
1. **Shape**: Shape是Android XML绘图中的基本元素,它允许开发者定义各种几何形状,如矩形、椭圆、线和路径。Shape元素通常用于创建自定义背景,可以设置颜色、渐变、边框等属性。例如,你可以定义一个矩形形状...
下面将详细探讨Android串口通信的基本概念、实现方法以及使用Android Studio开发的相关注意事项。 1. **基本概念** - **串口通信**:串口通信是通过串行数据传输的方式进行设备间的通信,常见的串口接口有RS-232、...
2. **基本概念**:讲解Android应用程序的基本架构,包括Activity、Intent、Broadcast Receiver、Service和Content Provider等核心组件的用途和交互方式。 3. **用户界面**:介绍XML布局文件的使用,如何设计和构建...