Android在中国,被叫做安卓,此名是来源于其英文发音。广义来讲,其实它就是一款运行在手机上的操作系统。它的开发商Google提供了相应的SDK包给开发者,这样我们才能够使用其API和工具在安卓系统的平台上开发相应的手机端软件。
特性
- 应用程序框架 包含了一系列可复用的通用组件
- Dalvik虚拟机 手机端优化的Java程序运行时环境
- 集成浏览器 基于开源项目Webkit引擎
- 流畅的图形画面 自定义的二位图形库;基于OpenGL ES 1.0规范(可选的硬件加速)的三维图形
- SQLite 结构化的数据库
- 多媒体支持 支持音频,视频和各种图片格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- GSM电话 传统的GSM网络通信能力(硬件相关)
- 蓝牙,EDGE, 3G 和WiFi(硬件相关)
- 摄像头,GPS定位,罗盘,加速度(硬件相关)
- 多种开发环境 设备模拟器,调试工具,内存和性能调优,Eclipse IDE的插件
Android架构
应用程序
Android系统中已经装配一些核心的应用程序:邮件客户端,短信程序,日历,地图,浏览器,联系等,所有的应用程序是用Java语言编写的。
应用框架
通过提供了开放的开发平台,开发者可以在上面创造各种丰富的程序。
开发者拥有所有对框架接口的访问权限。
- 丰富并且可扩展的视图 列表,网格,文本框,按钮,嵌入式浏览器
- Content Providers 帮助应用程序访问其他程序的数据(例如联系人)或者共享自己的数据
- A Resource Manager 帮助访问其他的资源,本地化字符串,图片,视图文件
- A
Notification Manager
帮助所有程序在状态栏中显示自定义的通知 - An
Activity Manager
管理应用程序的生命周期,并提供公用的历史后退导航栈
库
Android包含了一组C/C++的库,这些库是被各种各样的系统组件使用的。
- 系统C库 标准的C系统库(libc)的BSD系的实现,应用于嵌入式Linux的设备
- 媒体库 基于PacketVideo OpenCORE; 支持各种音视频格式的制作和播放
- 皮肤管理器 管理系统和各种应用程序的显示
- LibWebCore web浏览器引擎
- SGL 底层的二维图形引擎
- 三维库 基于OpenGL ES 1.0 接口的实现库;
- FreeType 位图和适量字体渲染
- SQLite 强大的轻量级的关系型数据库引擎
Android运行时
Androi包含了一组使用Java语言编写的核心库,它们提供了大部分功能。
每一个应用,系统都会提供单独的DVM虚拟机实例,运行在各自独立的进程中。
Dalvik VM虚拟机运行的是.dex格式的文件,这种文件已经根据最小化内存的原则进行过优化。
Java编译器首先将Java代码编译成.class字节码,然后dx工具将前面生成的.class文件编译成.dex文件。
Dalvik VM虚拟机运行在Linux内核上,由Linux内核提供了线程和底层级别的内存管理。
Linux内核
Android依赖在Linux 2.6版本,这个版本的内核提供了一些核心的系统服务,安全,内存管理,进程管理,网络协议栈,驱动模型。内核也充当着在硬件和软件之间的抽象层。
相关推荐
什么是Android? 开始 安装SDK 更新SDK 开发与调试 Hello Android 应用程序解析 记事本教程 开发工具 应用程序模型 应用程序生命周期 开发应用程序 用户界面工具 组成部分 数据存储与取回 安全模型 ...
Android开发教程:Android SDK中文开发文档 pdf版电子书下载,介绍什么是 Android?Android特性及架构,Android应用程序框架和程序库,Android 运行库和Linux内核,如何安装配置Android SDK、建立应用程序签名、移植...
什么是 Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android 平台上使用JaVa语言进行Android应用开发必须的工具和API接口。 ...
什么是 Android? Android? Android? Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 ...
一、什么是 Android? Android 是一个基于 Linux 的开放源代码操作系统,主要用于移动设备如智能手机和平板电脑。Android 的出现改变了移动设备的开发模式,允许开发者自由地创建和发布应用程序。 二、 Android 的...
什么是 Android? Android是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 ...
As there are a lot questions about "how to disable home button in android?" on Stack Overflow, such as how to disable home button in android? Android - Is It possible to disable the click of home ...
ANDROID-SDK-VERSION :2.1 导入包:android_core.jar android_framework.jar android_common.jar 这三个包需要编译android源码,才可以得到。 简介:该范例用来统计android手机中已经安装的所有APK程序,分为4中...
组件开发,Android自定义,???????????????????????????????????????????????????????? Android ???????????????? ?????????????????????????????????????? IT ???????? 10 ???????????????????????????????? ??????...
想破解Android?把它冻—下就可以了!.pdf
学习Android有一段时间了,虽然前段时间对软件测试有了...在这篇文章中,我将介绍Instrumentation这种测试方法,那么什么是Instrumentation?Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而
开放手机联盟--Open Handset Alliance ...什么是Android? Android 的系统架构 7 个Linux 手机平台 Android 学习方法 Android 开发环境搭建 Android 虚拟机Dalvik Android 中各种JAVA 包的功能描述 ................
Android新编译规则Android.bp文件语法规则详细介绍,条件编译的配置案例。 Android.bp 文件首先是 Android 系统的一种编译配置文件,是用来代替原来的 Android.mk 文件的。在 Android7.0 以前,Android 都是使用 ...
"Android 动画效果translate、scale、alpha、rotate详解" Android 动画效果可以分为四种类型:translate、scale、alpha、rotate,每种类型都有其特点和应用场景。 一、translate 动画效果 translate 动画效果是...
《Android Studio 深度探索:韩语版 Android 开发指南》 在移动应用开发领域,Android Studio 是谷歌推荐的官方集成开发环境(IDE),它为开发者提供了强大的工具集,帮助他们构建高质量的 Android 应用。这篇文档...
如何才能写出贴近Android设计理念、能够更加高效和可靠运行的Android应用?通过Android的源代码去了解其底层实现细节是重要的方之一!然而,Android系统太过于庞,源代码实现复杂,习的技术门槛和时间成本都很高。有...
在Android开发中,串口通信(Serial Port Communication)是一种重要的技术,它允许设备之间通过串行接口进行数据交换。在Android Studio环境下实现串口通信,开发者可以构建与硬件设备交互的应用,例如读取传感器...
什么是Android? 软件层 开发环境 集成开发环境 你好,世界! 项目结构 SDK管理器 AVD经理 活动 活动生命周期 操作视图 列表视图 转接器 意图 意图过滤器 可序列化 可包裹的 可序列化还是可打包? 动作栏菜单 上...
在现代的移动应用开发中,JavaScript与原生平台之间的交互变得越来越常见,特别是在使用Android的WebView组件时。本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 ...
【Android扫雷游戏开发详解】 在移动开发领域,Android Studio是Google推出的官方集成开发环境(IDE),用于构建Android应用程序。本项目"Android扫雷游戏"就是利用Android Studio进行开发的一个实例,旨在帮助初学...