热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《AndroidDevGuide》系列教程1:什么是Android?

Android是一个移动设备的软件集,他包括一个操作系统、中间件,和一些重要的应用程序。AndroidSDK提供了Android开发平台的必要的工具和A

Android是一个移动设备的软件集,他包括一个操作系统、中间件,和一些重要的应用程序。AndroidSDK提供了Android开发平台的必要的工具和APIs,他使用Java编程语言。

 

特点:

 

应用程序框架:支持组件的重用和替换。

Dalvik虚拟机:转为移动设备优化的虚拟机。

集成的浏览器:基于开源浏览器WebKit引擎。

优化的图形图像处理:采用定制的2D图形库,基于OpenGL ES1.0规范,可选的硬件加速。

SQLite:结构化的数据存储。

媒体支持:支持厂家爱呢的音频视频,如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF。

GSM技术:硬件依赖。

蓝牙、EDGE网络、3G、WIFI:硬件依赖。

拍照、导航、指南针、加速度计:硬件依赖。

丰富的开发环境:包括一个虚拟器、调试工具、内存和性能分析、Eclipse插件。

 

 

Android 系统结构:

 

下面那张图表显示了Android操作系统的主要部件,每一部分将会详细讲解

 

 

应用程序

 

Android 将会有一些核心的应用,比如邮件客户端、SMS程序、计算器、地图、浏览器、联系人等等。所有的应用程序都用Java语言开发。

 

应用层

 

通过提供一个开源的平台,Android可以让开发者自由的开发丰富、创新的应用程序。开发者可以免费利用设备的硬件,访问本地信息、启动后台服务、设置闹铃、给状态栏增加提醒功能,等等灰常多的应用。

 

开发人员通过核心应用程序,可以完全访问同一框架的APIs。(?)[开发者对于框架APIs的访问有与核心程序同样的权限(楼下whyou指正,表示感谢)]。结构化的应用框架为了提高组件的客服用性而设计。任何程序都可以公布他的功能让其他程序来调用(在框架许可的前提下)。相同的机制允许用户替换掉某些功能。

 

和所有程序相关的是一些服务和系统,包括:

 

一些丰富的可扩展视图:可以用来构造应用程序,包括列表、表格、输入框、按钮、可以写内置的浏览器。

内容提供:可以让程序访问其他程序的数据,例如联系人列表,或者共享自己的数据。

资源管理器:提供访问非代码的资源的方法,例如本地化的一些字符串、图像、布局文件。

一个提示管理器:可以让程序在状态栏显示自定义的提示信息。

一个Activity管理器:管理activity的生命周期并且提供一个公共的导航功能。

 

更多详细信息可以通过一个例子来学习:参考 Noteoad Tutorial。

 

 

Libraries:

 

Android包含了一些系统各个部分使用到的C/C++库,通过Android应用程序程序框架,这些功能对于开发者来说是公开的,部分核心库如下:

 

系统C库:一个继承自BSD的标准C系统库,专门为了嵌入式Linux设为。

多媒体库:基于 PacketVideo's OpenCORE库,支持播放和录制一些主流的音频视频格式,像静态图片文件,包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG格式。

Surface Manager(图形管理器):管理显示子系统,在多个应用程序里无缝综合2D和3D图层。

LibWebCore:一个流行的web浏览器引擎,供Android浏览器和内置的浏览view使用。

SGL:一个底层的2D图像引擎。

3D库:基于OpenGL ES 1.0 的3D图像引擎。包括硬件加速和优化过的3D软件加速。

FreeType:位图和矢量字体的渲染(rendering)。

SQLite:一个强大的轻量级的数据库引擎对所有程序提供使用。

 

Android 运行时库:

 

Android包含了Java语言的大部分的核心库。

 

每一个Android应用程序运行在自己的线程里,有自己的dalvik虚拟机实例,Dalvik虚拟机被重写用来支持在一个移动设备上支持多个虚拟机。Dalvik虚拟机执行文件(.dex)被优化的内存占用很小。VM是基于寄存器,并且通过Java语言编译器运行由class文件转换的.dex文件,通过内置的dx工具。

 

Dalvik虚拟机依赖Linux核心,来管理线程和底层的内存管理。

 

Linux kernel:

 

Android 依赖Linux2.6内核作为核心系统服务,像安全、内存管理、进程管理、网络堆、驱动模型。Kernel扮演者一个软硬件之间的抽象层的角色。

 

 

码在最后:

终于磕磕绊绊的翻译了一篇,太晦涩了,lazybone对不住各位看客。

转:https://www.cnblogs.com/lancidie/archive/2013/06/01/3112976.html



推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
author-avatar
风里火
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有