【Android系统原理与开发要点详解】02_Android系统的开发综述

更新时间:2023-09-03 07:51:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《Android系统原理与开发要点详解》韩超著

Android系统的开发综述

《Android系统原理与开发要点详解》韩超著

Android系统的开发综述

第一部分 Android的系统架构第二部分 Android源代码的开发环境

《Android系统原理与开发要点详解》韩超著

第一部分 Android的系统架构

1.1软件结构 1.2 Android的工具

《Android系统原理与开发要点详解》韩超著

1.1软件结构第四层: Java应用程序第三层: Java框架

第二层:本地框架和Java运行环境

第一层: Linux操作系统及驱动

《Android系统原理与开发要点详解》韩超著

1.1软件结构Android的软件结构的几个层次: 1.操作系统层( Linux,相关驱动) 2.库( Libraries )和运行环境( RunTime ) 3.应用程序框架( Application Framework ) 4.应用程序( Application )操作系统层使用 C语言编写,运行于内核空间。底层库和 JAVA虚拟机使用 C语言编写,运行于用户空间。 JAVA框架和 JAVA应用程序使用 C语言编写,运行于用户空间。

《Android系统原理与开发要点详解》韩超著

1.1软件结构Android的第 1层次由 C语言实现,第 2层次由 C和/C++实现,第 3、 4层次主要由 Java代码实现。第 1层次和第 2层次之间,从 Linux操作系统的角度来来看,是内核空间与用户空间的分界线,第 1层次运行于内核空间,第 2、 3、 4层次运行于用户空间。第 2层次和第 3层次之间,是本地代码层和 Java代码层的接口。第 3层次和第 4层次之间,是 Android的系统 API的接口,对于 Android应用程序的开发,第 3层次以下的内容是不可见的,仅考虑系统 API即可。

《Android系统原理与开发要点详解》韩超著

1.1软件结构 Linux操作系统和驱动: Android的核心系统服务依赖于 Linux 2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux内核也同时作为硬件和软件栈之间的抽象层。

《Android系统原理与开发要点详解》韩超著

1.1软件结构Android本地框架( C/C++ ):

Android包含一些 C/C++库,这些库能被 Android系统中不同的组件使用。它们通过 Android应用程序框架为开发者提供服务。 系统 C库:一个从 BSD继承来的标准 C系统函数库,专门为基于嵌入式 linux的设备定制的。 媒体库:基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制。 Surface Manager:对显示子系统的管理,图层功能。 WebCore:一个最新的 web浏览器引擎用,支持 Android浏览器和一个可嵌入的 web视图。 SGL: Skia的 2D图形引擎 3D libraries:基于 OpenGL实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的 3D软加速。 FreeType:位图( bitmap )和矢量( vector )字体显示。

《Android系统原理与开发要点详解》韩超著

1.1软件结构Android运行库: Android包括了一个核心库,该核心库提供了 JAVA编程语言核心库的大多数功能。每一个 Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例。 Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统

。 Dalvik虚拟机执行( .dex )的 Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由 JAVA编译器编译,然后通过 SDK中的"dx"工具转化成 .dex格式由虚拟机执行。 Dalvik虚拟机依赖于 linux内核的一些功能,比如线程机制和底层内存管理机制。

《Android系统原理与开发要点详解》韩超著

1.1软件结构Android应用程序框架:开发人员也可以完全访问核心应用程序所使用的 API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括; 丰富而又可扩展的视图( Views ),可以用来构建应用程序,它包括列表( lists ),网格( grids ),文本框( text boxes ),按钮 ( buttons ),甚至可嵌入的 web浏览器。 内容提供器( Content Providers ):使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据 资源管理器( Resource Manager ):提供非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。 通知管理器 ( Notification Manager ):使得应用程序可以在状态栏中显示自定义的提示信息。 活动管理器( Activity Manager ):用来管理应用程序生命周期并提供常用的导航回退功能。

《Android系统原理与开发要点详解》韩超著

1.1软件结构Android应用程序: Android会同一系列核心应用程序包一起发布,这些应用程序包也就是预置的应用程序,主要包括 email客户端, SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用 JAVA语言编写的。

《Android系统原理与开发要点详解》韩超著

1.2 Android的工具aapt ( Android Asset Packaging Tool )用于建立 Zip兼容的包 (zip, jar, apk),也可用于编译资源到二进制的 assets。 abd ( Android Debug Bridge, Android调试桥)使用 Adb工具可以在模拟器或设备上安装应用程序的 .apk文件,并从命令行访问模拟器或设备。也可以用它把 Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。$./out/host/linux-x86/bin/adb$./out/host/linux-x86/bin/adb$./out/host/linux-x86/bin/adb$./out/host/linux-x86/bin/adb shell install XXX.apk push{host_path}{target_path} pull{target_path}{host_path}

android工具一个脚本用于创建和管理 Android Virtual Devices (AVDs)。

《Android系统原理与开发要点详解》韩超著

1.2 Android的工具AIDL工具 ( Android Interface Description Language, Android接口描述语言)可以生成进程间的接口的代码,诸如 service可能使用的接口。 AVD

s ( Android Virtual Devices, Android虚拟设备)用于配置仿真器的选项,使用实际的设备。 DDMS ( Dalvik Debug Monitor Service, Dalvik调试监视器服务)这个工具集成了 Dalvik,能够在模拟器或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆( heap )和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。

《Android系统原理与开发要点详解》韩超著

1.2 Android的工具dx Dx工具将 .class字节码( bytecode )转换为 Android字节码(保存在 .dex文件中)。 Draw 9-patch Draw 9-patch工具允许使用所见即所得( WYSIWYG )的编辑器轻松地创建 NinePatch图形。 Emulator (模拟器)它是在的计算机上运行的一个虚拟移动设备。可以使用模拟器来在一个实际的 Android运行环境下设计,调试和测试的应用程序。 Hierarchy Viewer (层级观察器)层级观察器工具允许调试和优化的用户界面。它用可视的方法把的视图( view )的布局层次展现出来,此外还给当前界面提供了一个具有像素栅格 (grid)的放大镜观察器。

《Android系统原理与开发要点详解》韩超著

1.2 Android的工具mksdcard帮助创建磁盘映像( disk image ),可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如 SD卡)。 Monkey Monkey是在模拟器上或设备上运行的一个小程序,它能够产生为随机的用户事件流,例如点击 (click),触摸 (touch),挥手 ( gestures ),还有一系列的系统级事件。可以使用 Monkey来给正在开发的程序做随机的,但可重复的压力测试。 sqlite3 sqlite3工具能够方便地访问 SQLite数据文件。 Traceview这个工具可以将的 Android应用程序产生的跟踪日志 ( trace log )转换为图形化的分析视图

《Android系统原理与开发要点详解》韩超著

第二部分 Android源代码的开发环境

2.1源代码结构 2.2编译 Android 2.3运行 Android

《Android系统原理与开发要点详解》韩超著

2.1源代码结构开发 Android主机环境的需求: Git工具 Repo工具 Java的 JDK 主机编译工具Ubuntu:$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6dev build-essential zip curl libncurses5-dev zlib1gdev

《Android系统原理与开发要点详解》韩超著

2.1源代码结构获取 Android完全的源代码:初始化代码仓库:$ repo init -u git://http://www.77cn.com.cn/platform/manifest.git获取代码:$ repo sync

初始化指定的版本:$ repo init -u git://http://www.77cn.com.cn/platform/manifest.git -b release-1.0$ repo init -u git://http://www.77cn.com.cn/platform/manifest.git -b android-sdk-1.5_r2

《Android系统原理与开发要点详解》韩超著

2.1源代码结构同步单个工程代码:$ repo sync{project_name}获取一个工程的代码:$ git clone git://http://www.77cn.com.cn/+ project path

例如,获取通用内核的代码:$ git clone git://http://www.77cn.com.cn/kernel/common.git

本文来源:https://www.bwwdw.com/article/8dri.html

Top