第1章Android的系统介绍

1.1 系统介绍
   Android 是Google开发的基于Linux平台的、开源的、智能手机操作系统。Android包括操作系统、中间件和应用程序,由于源代码开放,Android可以被移植到不同的硬件平台上。
OHA(Open Handset Alliance,开放手机联盟),为Google与33家公司联手为Android移动平台系统的发展而组建的一个组织。  HTC和Google合作推出了几款手机:G1、G2、Hero和Nexus One,其他的手机厂商也推出了几款Android手机。

作为一个手机平台,Android在技术上的优势主要有以下几点:
„ 全开放智能手机平台
„ 多硬件平台的支持
„ 使用众多的标准化技术
„ 核心技术完整,统一
„ 完善的SDK和文档
„ 完善的辅助开发工具
Android的开发者可以在完备的开发环境中进行开发,Android的官方网站也提供了丰富的文档、资料。这
样有利于Android系统的开发和运行在一个良好的生态环境中。
1.2 软件结构和使用的工具
从宏观的角度来看,Android是一个开放的软件系统,它包含了众多的源代码。从下至上,Android系统分
成4个层次:
„ 第1层次:Linux操作系统及驱动;
„ 第2层次:本地代码(C/C++)框架;
„ 第3层次:Java框架;
„ 第4层次:Java应用程序。
Android系统的架构如图所示:

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系统需要支持Java代码的运行,这部分内容是Android的运行环境(Runtime),由虚拟机和Java基本类组成。
对于Android应用程序的开发,主要关注第3层次和第4层次之间的接口。
除了软件本身的代码之外,Android还提供了一系列工具来辅助系统开发,这些主要的工具包括:
„ aapt(Android Asset Packaging Tool):用于建立zip兼容的包(zip、jar、apk),也可用于将资源编译到二进制的assets。

„ adb(Android Debug Bridge,Android调试桥):使用adb工具可以在模拟器或设备上安装应用程序的.apk文件,并从命令行访问模拟器或设备。也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。

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

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

„ AVD s(Android Virtual Devices,Android虚拟设备)用于配置模拟器,模拟出类似的设备效果

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

„ dx:dx工具用于将.class 字节码(bytecode)转换为Android字节码(保存在.dex 文件中)这个字节码文件是给Android的Java虚拟机运行用的。

„ Draw 9-patch:Draw 9-patch工具允许使用所见即所得(WYSIWYG)的编辑器轻松地创建NinePatch图形。

„ Emulator(模拟器):模拟器是一个运行于主机上的程序,可以使用模拟器来模拟一个实际的Android系统的运行,使用模拟器非常适合调试和测试应用程序。

„ Hierarchy Viewer(层级观察器):层级观察器工具允许调试和优化用户界面。它用可视的方法把视图(view)的布局层次展现出来,此外,还给当前界面提供了一个具有像素栅格(grid)的放大镜观察器。

„ mksdcard:帮助创建磁盘映像(disk image),可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如SD卡)。

„ Monkey:Monkey是在模拟器或设备上运行的一个小程序,它能够产生随机的用户事件流,例如:点击(click)、触摸(touch)、挥手(gestures),还包括一系列系统级事件。可以使用Monkey给正在开发的程序做随机的但可重复的压力测试。

„ sqlite3:sqlite3工具能够方便地访问SQLite 数据文件,这是一个sqlite标准命令行工具。

„ Traceview:这个工具可以将Android应用程序产生的跟踪日志(trace log)转换为图形化的分析视图。

第1章Android的系统介绍相关推荐

  1. 浅入浅出 Android 安全:第三章 Android 本地用户空间层安全

    第三章 Android 本地用户空间层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 本地用户空间层在 Android ...

  2. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  3. 《Android开发艺术探索》读书笔记 (10) 第10章 Android的消息机制

    第10章 Android的消息机制 10.1 Android消息机制概述 (1)Android的消息机制主要是指Handler的运行机制,其底层需要MessageQueue和Looper的支撑.Mes ...

  4. Android 渗透测试学习手册 第五章 Android 取证

    第五章 Android 取证 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 5.1 取证类型 取证是使用不同的手动和自动方法从设备中提取和分析数据.它可以大致分为两 ...

  5. Android 渗透测试学习手册 第三章 Android 应用的逆向和审计

    第三章 Android 应用的逆向和审计 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们将查看 Android 应用程序或.apk文件,并了解其不同的 ...

  6. Android 渗透测试学习手册 第一章 Android 安全入门

    第一章 Android 安全入门 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 Android 是当今最流行的智能手机操作系统之一. 随着人气的增加,它存在很多安全 ...

  7. 浅入浅出 Android 安全:第四章 Android 框架层安全

    第四章 Android 框架层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 如我们在第1.2节中所描述的那样,应用程 ...

  8. 浅入浅出 Android 安全:第六章 Android 安全的其它话题

    第六章 Android 安全的其它话题 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们会涉及到与 Andro ...

  9. 浅入浅出 Android 安全:第五章 Android 应用层安全

    第五章 Android 应用层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 虽然在这一节中我们描述了应用层的安全性, ...

最新文章

  1. 【 Vivado 】在工程模式下通过jou文件来学习 Tcl 命令
  2. 人造神经元成功操纵植物,让捕蝇草强行闭合,脑机接口新思路打开丨Nature子刊...
  3. 在QT搭建的播放器外壳中嵌入SDL的窗口
  4. isAssignableFrom和isInstance、instanceof
  5. C语言 memset()函数(内存初始化函数)
  6. java使用MD5加密
  7. linux服务器监控zabbix,Linux监控之--使用ZABBIX监控web服务器
  8. Python编写只允许实例化一个对象的类
  9. Mybatis_day1
  10. 使用ajax实现文件上传功能
  11. 运筹学学习笔记2 python-or tools 使用
  12. 工控机运行linux,什么是linux嵌入式工控机
  13. FASTA序列格式说明
  14. MapGuide 添加临时点图层
  15. AAM Alignment最后一篇:Robust AAM Alignment with Occlusion
  16. 2018校招携程测评,赞RP
  17. m-序列简述及其相关性质
  18. 计算机木材染色 配色技术的应用技术,人工林木材颜色怎么调配?木材电脑配色技术...
  19. 如何快速下载Google play里软件APK
  20. swig: error while loading shared libraries: libpcre.so.1: cannot open shared object file 亲测解决方法

热门文章

  1. 项目整体管理(6个过程:制定项目章程,制定项目管理计划,指导与管理项目工作,实施整体变更控制,结束项目或阶段)
  2. 8086cpu中的寄存器(cs、ds、es、ss、ip、sp、bp、si、di)
  3. Linux 安装ryu
  4. 【ParaView教程】第四章 常见问题 —— 怎样在ParaView中绘制矢量分量的等值线/面?
  5. 数据操作层ACCSEE
  6. 免费的天气查询 API 接口分享
  7. 我的极限Scrum实践
  8. 无能狂怒之我对配置类一无所知之自动填充和分页
  9. 一个简单的DGA(Domain Generate Algorithm)
  10. CPU的功能和基本结构