专栏首页cwl_Java速读原著-Android应用开发入门教程(一)

速读原著-Android应用开发入门教程(一)

第1章 Android的系统介绍

Android 是 Google 开发的基于 Linux 平台的、开源的、智能手机操作系统。Android 包括操作系统、中间件和应用程序,由于源代码开放,Android 可以被移植到不同的硬件平台上。OHA(Open Handset Alliance,开放手机联盟),为 Google 与 33 家公司联手为 Android 移动平台系统的发展而组建的一个组织。

HTC 和 Google 合作推出了几款手机:G1、G2、Hero 和 Nexus One,其他的手机厂商也推出了几款 Android手机,

围绕在 Google 的 Android 系统中,形成了移植开发和上层应用程序开发两个不同的开发方面。手机厂商从事移植开发工作,上层的应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还可以基于仿真器环境。

1. 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 可能使用的接口。
  • AVDs(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)转换为图形化的分析视图。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 速读原著-Android应用开发入门教程(Android中运行仿真器环境)

    为了运行一个 Android 仿真器的环境,首先需要建立 Android 虚拟设备(AVD)。在 Eclipse 的菜单中,择“Window”>“Android...

    cwl_java
  • 速读原著-Android应用开发入门教程(Android SDK的开发环境)

    Android 的 SDK 开发环境使用预编译的内核和文件系统,屏蔽了 Android 软件架构第三层及以下的内容,开发者可以基于 Android 的系统 AP...

    cwl_java
  • 速读原著-Android应用开发入门教程(应用程序包含的各个文件)

    Android 应用程序一般包含在一个单一的文件夹中,即每一个 Android 应用程序是一个独立的工程,包含了以下文件:

    cwl_java
  • 现已推出 Android 8.1 和 Android Oreo Go 版本 —— 为所有人打造由 AI 驱动的全覆盖移动平台

    Android 开发者
  • GitHub Android 开源项目汇总

    GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很...

    阳光岛主
  • 从0系统学 Android--1.1认识 Android

    默认学习者会简单的 Java 语法!Android 方面完全从零开始!跟着我系统的学习吧!

    开发者
  • 互联网寒冬下那些 Android 开发高手,都在研究什么技术?

    近半年来,很多人都问过我这样的问题。大家对于职业的未来,都有一些迷茫和焦虑,其实我也有,为什么会这样呢?

    Android技术干货分享
  • Android Q Beta 6 终极测试版发布!

    其中,Android的更新速度要比iOS更快,系统的功能也更加丰富多样。从推出至今,Android已经发布更迭了10个系统版本。Android Q Beta 6...

    终端研发部
  • Android学习之路

    子勰
  • Android 学习资料收集

    收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, 节省再去收集学习资料时间.

    咻咻ing

扫码关注云+社区

领取腾讯云代金券