什么是 Android

  译文如下: 有些术语和一些模棱两可的地方就不翻译了, 不过我尽量做到通俗易懂, 希望大家多多支持.

什么是 Android?

Android 是一组用于移动设备的软件套件, 它包含了一个操作系统, 一些中间件和关键的应用. Android SDK 提供了基于工具和API 来是开发人员通过使用java 来开发基于Android 平台的应用程序.

功能(Features):
(1)
应用程序框架可以复用并且可以自己写组件来替换默认组件
(2)
针对移动设备而优化的Dalvik 虚拟机(Dalvik virtual machine)
(3)
整合了基于开源的WebKit 引擎的浏览器
(4)
通过定制的2D 图像库提供了强劲的图像处理能力,3D 图像处理基于OpenGL ES 1.0 规范( 硬件加速可选)
(5)
通过SQLite 来提供结构化的数据存储.
(6)
多媒体支持( 常见音频, 视频和一些图片格式,MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
(7)GSM
电话( 依赖于硬件)
(8)
蓝牙,EDGE,3GWiFi 支持( 依赖于硬件)
(9)
照相机,GPS 定位系统, compass, accelerometer 加速计支持( 依赖于硬件)
(10)
丰富的开发环境, 包括一个设备仿真器, 调试工具, 内存和性能检测工具和基于Eclipse 的插件工具.

Android 架构(Android Architecture):

以下的图片展示了Android 操作系统的主要组件, 每一环节都会在后面详细解释.

Android System Architecture

应用程序(Applications):

Android 搭载了一组核心应用, 包括邮件客户端, 短信程序, 日历, 地图, 浏览器, 通讯簿和其它一些常见的应用, 所有的这些应用都是基于java 开发的.

应用程序框架(Application Framework):

开发人员可以全面存取通过核心应用开发的框架, 该架构被设计的更加简单并且方便组件重用, 任何一个应用可以发布它的功能, 并且其它应用程序有可以使用这些功能( 框架对于权限安全方面已经做了限定) 这个相同的机制允许用户使用自己的组件替换原来的组件

以下所有的应用是一组服务和系统, 包括:

  • 一些用于创建应用的丰富的可扩展的视图Views, 包括 列表lists, 网格 grids, 文本框text boxes, 按钮buttons, 甚至是可嵌入的web 浏览器.
  • 内容提供者Content Providers 使应用可以通过其它应用程序获取数据( 比如通讯簿等), 或者共享它们自己的数据
  • 资源管理器Resource Manager , 提供访问本地非程序的资源的能力, 比如本地化字符串, 图片, 和布局文件
  • 消息通知管理器Notification Manager 使所用的应用程序可以在状态栏显示定制的警告信息
  • 作业活动管理器Activity Manager 管理着应用程序的生存周期, 并且提供了 返回操作 的导航操作

更多的详情and a walkthrough of an application, see the Notepad Tutorial .

(Libraries):

Android 包含了了一组用于各种各样组件的C/C++ 的库, 这些能力通过Android 框架曝露给了开发人员, 下面列出了一些核心的类库:

  • 系统CSystem C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • 多媒体库Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • 界面管理Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL - the underlying 2D graphics engine
  • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering
  • SQLite - a powerful and lightweight relational database engine available to all applications

Android 运行时(Android Runtime):

Android 包含了一组核心类库, 并且提供了许多可用的功能.

每一个Android 应用都携带者他自己的Dalvik 虚拟机以进程方式单独运行.Dalvik 被设计出来就是满足设备可以高效的运行多个虚拟机的需求. Dalvik 虚拟机执行在Dalvik 中的 *.dex 格式的文件which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

Linux 内核(Linux Kernel):

Android 依赖于linux2.6 版本, 通过linux2.6 来实现核心系统服务, 例如安全, 内存管理, 进程管理, 网络堆栈, 和驱动模型. 该内核还在硬件和应用软件间作为一个衔接的桥梁.

本项目采用C++编程语言结合ROS框架构建了完整的双机械臂控制系统,实现了Gazebo仿真环境下的协同运动模拟,并完成了两台实体UR10工业机器人的联动控制。该毕业设计在答辩环节获得98分的优异成绩,所有程序代码均通过系统性调试验证,保证可直接部署运行。 系统架构包含三个核心模块:基于ROS通信架构的双臂协调控制器、Gazebo物理引擎下的动力学仿真环境、以及真实UR10机器人的硬件接口层。在仿真验证阶段,开发了双臂碰撞检测算法和轨迹规划模块,通过ROS控制包实现了末端执行器的同步轨迹跟踪。硬件集成方面,建立了基于TCP/IP协议的实时通信链路,解决了双机数据同步和运动指令分发等关键技术问题。 本资源适用于自动化、机械电子、人工智能等专业方向的课程实践,可作为高年级课程设计、毕业课题的重要参考案例。系统采用模块化设计理念,控制核心与硬件接口分离架构便于功能扩展,具备工程实践能力的学习者可在现有框架基础上进行二次开发,例如集成视觉感知模块或优化运动规划算法。 项目文档详细记录了环境配置流程、参数调试方法和实验验证数据,特别说明了双机协同作业时的时序同步解决方案。所有功能模块均提供完整的API接口说明,便于使用者快速理解系统架构并进行定制化修改。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值