`
deaboway
  • 浏览: 57030 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Android是什么

 
阅读更多

一、简介

黑莓和 iPhone 都提供了受欢迎的、高容量的移动平台,但是却分别针对两个不同的消费群体。黑莓是企业业务用户的不二选择。但是,作为一种消费设备,它在易用性和 “新奇特性” 方面难以和 iPhone 抗衡。Android 则是一个年轻的、有待开发的平台,它有潜力同时涵盖移动电话的两个不同消费群体,甚至可能缩小工作和娱乐之间的差别

如今,很多基于网络或有网络支持的设备都运行某种 Linux 内核。这是一种可靠的平台:可经济有效地进行部署和提供支持,并且可直接作为面向部署的良好的设计方法。这些设备的 UI 通常是基于 HTML 的,可通过 PC 或 Mac 浏览器查看。但并不是每个设备都需要通过一个常规的计算设备来控制。想象一下传统的家用电器,例如电炉、微波炉或面包机。如果您的家用电器由 Android 控制,并且有一个彩色触摸屏,会怎么样?如果电炉上有一个 Android UI,那么操控者甚至可以烹饪点什么东西。

二、Android术语

在 Eclipse 环境中开发 Android 应用程序需要了解 Eclipse 环境和 Android 平台的知识。了解以下术语会有助于用 Eclipse 插件开发 Android 应用程序。

Open Handset Alliance

这是一个由 Google 公司主导的组织,它由许多公共和私人组织组成。

Android

这是 Open Handset Alliance 的主打产品。它是一种针对移动设备的开放源码操作环境。

模拟器

模拟另一个系统的软件工具 — 这常常是在个人计算机(IBM®、Mac、Linux®)上运行的一个环境,它模拟另一个环境,比如移动计算设备。

Linux

一种开放源码的操作系统内核,许多计算平台都使用这种操作系统,包括服务器、桌面计算机、网络设备和移动计算设备。Android 在 Linux 内核上运行。

Dalvik Virtual Machine

Dalvik VM 是 Android 产品组合中的一种操作环境,它在运行时解释应用程序代码。Dalvik VM 与 Java VM 相似,但是两者不兼容。

三、Android简史

Android 平台是 Open Handset Alliance 的成果,Open Handset Alliance 组织由一群共同致力于构建更好的移动电话的公司组成。这个组织由 Google 领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。从软件开发的观点看,Android 正处在开源领域的中心位置。

市场上第一款支持 Android 的手机是由 HTC 制造并由 T-Mobile 供应的 G1。这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的 SDK 发行版。随着 G1 发行日的临近,Android 团队发布了 SDK V1.0,用于这个新平台的应用程序也浮出水面。

为了鼓励创新,Google 举办了两届 “Android Developer Challenges”,为优胜的参赛作品提供数百万美金的奖励。G1 问世几个月之后,随后就发布了 Android Market,它使用户可以浏览应用程序,并且可以将应用程序直接下载到他们的手机上。经过大约 18 个月,一个新的移动平台进入公众领域。

四、 Android 平台

Android 平台被称为一个产品组合,因为它是一系列组件的集合,包括:

  • 基于 Linux 内核的操作系统
  • Java 编程环境
  • 工具集,包括编译器、资源编译器、调试器和模拟器
  • 用来运行应用程序的 Dalvik VM

Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构建在 Linux 内核的基础上,它包括丰富的功能。UI 子系统包括:

  • 窗口
  • 视图
  • 用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件

Android 包括一个构建在 WebKit 基础上的可嵌入浏览器,iPhone 的 Mobile Safari 浏览器同样也是以 WebKit 为基础。

Android 提供多种连接选项,包括 WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如 GPRS、EDGE 和 3G)。Android 应用程序中一项流行的技术是链接到 Google 地图,以便在应用程序中显示地址。Android 软件栈还提供对基于位置的服务(例如 GPS)和加速计的支持,不过并不是所有的 Android 设备都配备了必需的硬件。另外还有摄像支持。

过去,移动应用程序努力向桌面应用程序看齐的两个领域分别是图形/媒体和数据存储方法。Android 通过提供对 2D 和 3D 图形的内置支持,包括 OpenGL 库,解决了图形方面的挑战。由于 Android 平台包括流行的开源 SQLite 数据库,因此缓解了数据存储的负担。图 1显示一个简化的 Android 软件层次结构。

1. Android 软件层次结构
clip_image001[1]

五、应用程序架构

如前所述,Android 运行在 Linux 内核上。Android 应用程序是用 Java 编程语言编写的,它们在一个虚拟机(VM)中运行。需要注意的是,这个 VM 并非您想象中的 JVM,而是 Dalvik Virtual Machine,这是一种开源技术。每个 Android 应用程序都在 Dalvik VM 的一个实例中运行,这个实例驻留在一个由 Linux 内核管理的进程中,如下图所示。

2. Dalvik VM
clip_image002[1]

Android 应用程序由一个或多个组件组成:

活动

具有可视 UI 的应用程序是用活动实现的。当用户从主屏幕或应用程序启动器选择一个应用程序时,就会开始一个动作。

服务

服务应该用于任何需要持续较长时间的应用程序,例如网络监视器或更新检查应用程序。

内容提供程序

可以将内容提供程序看作数据库服务器。内容提供程序的任务是管理对持久数据的访问,例如 SQLite 数据库。如果应用程序非常简单,那么可能不需要创建内容提供程序。如果要构建一个较大的应用程序,或者构建需要为多个活动或应用程序提供数据的应用程序,那么可以使用内容提供程序实现数据访问。

广播接收器

Android 应用程序可用于处理一个数据元素,或者对一个事件(例如接收文本消息)做出响应。

Android 应用程序是连同一个 AndroidManifest.xml 文件一起部署到设备的。AndroidManifest.xml 包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络 — 例如为了下载一个文件 — 那么 manifest 文件中必须显式地列出该许可。很多应用程序可能启用了这个特定的许可。这种声明式安全性有助于减少恶意应用程序损害设备的可能性。

六、所需工具

开始开发 Android 应用程序的最简捷的方式是下载 Android SDK 和 Eclipse IDE。Android 开发可以在 Microsoft® Windows®、Mac OS X 或 Linux 上进行。

本文假设您使用的是 Eclipse IDE 和用于 Eclipse 的 Android Developer Tools 插件。Android 应用程序是用 Java 语言编写的,但是是在 Dalvik VM(非 Java 虚拟机)中编译和执行的。在 Eclipse 中用 Java 语言编程非常简单;Eclipse 提供一个丰富的 Java 环境,包括上下文敏感帮助和代码提示。Java 代码通过编译后,Android Developer Tools 可确保适当地将它打包,包括 AndroidManifest.xml 文件。

虽然没有 Eclipse 和 Android Developer Tools 插件也可以开发 Android 应用程序,但是那样就需要熟悉 Android SDK。

Android SDK 是作为一个 ZIP 文件发布的,可以将该文件解压到硬盘上的一个目录中。由于有多个 SDK 更新,建议有意识地组织开发环境,以便在不同的 SDK 安装之间轻松地切换。SDK 包括:

android.jar

Java 归档文件,其中包含构建应用程序所需的所有的 Android SDK 类。

documention.html docs 目录

本地和网上提供的 SDK 文档。这些文档的主要形式为 JavaDocs,以便于在 SDK 中导航大量的包。文档还包括一个高级开发指南和 Android 社区的链接。

Samples 目录

samples 子目录包含各种应用程序的源代码,包括 ApiDemo,该应用程序演示了很多 API。这个示例应用程序可以作为 Android 应用程序开发的良好起点。

Tools 目录

包含所有用于构建 Android 应用程序的命令行工具。最常用、最有用的工具是 adb 实用程序(Android Debug Bridge)。

usb_driver

该目录包含将开发环境连接到支持 Android 的设备(例如 G1 或 Android Dev 1 解锁开发手机)所需的驱动程序。只有 Windows 平台的开发人员才需要这些文件。

Android 应用程序可以在实际的设备上运行,也可以在 Android SDK 附带的 Android Emulator 上运行。图 3 显示 Android Emulator 的主屏幕。

图 3. Android Emulator
clip_image004[1]

七、Android Debug Bridge

adb 实用程序支持一些可选命令行参数,以提供强大的特性,例如复制文件到设备或从设备复制文件。可以使用 shell 命令行参数连接到手机本身,并发送基本的 shell 命令。图 4 显示在通过 USB 线连接到 Windows 笔记本电脑的一个实际设备上运行的 adb shell 命令。

4. 使用 adb shell 命令
clip_image005[1]

在这个 shell 环境中,可以:

  • 显示网络配置,网络配置可显示多个网络连接。注意这多个网络连接:
    • lo 是本地或 loopback 连接。
    • tiwlan0 是 WiFi 连接,该连接由本地 DHCP 服务器提供一个地址。
  • 显示 PATH 环境变量的内容。
  • 执行 su 命令,以成为超级用户。
  • 将目录改为 /data/app,其中存放用户应用程序。
  • 列出包含某个应用程序的目录。Android 应用程序文件实际上是归档文件,可通过 WinZip 之类的软件查看。扩展名为 apk。
  • 发出 ping 命令,查看 Google.com 是否可用。

从相同的命令提示符环境中,还可以与 SQLite 数据库交互,启动程序以及执行许多其他系统级任务。想像一下您正在连接到电话,因此这是非常了不起的功能。

分享到:
评论

相关推荐

    14天学会Android开发 飞龙整理 20141005

    一、Android是什么? * Android是一个针对移动设备的操作系统和软件平台 * 基于Linux内核,由Google和开放手机联盟OHA开发 * 允许使用Java语言来开发和管理代码 * Android开放源代码,遵从Apache Software License ...

    Android串口通信(Android Studio)

    在Android开发中,串口通信(Serial Port Communication)是一种重要的技术,它允许设备之间通过串行接口进行数据交换。在Android Studio环境下实现串口通信,开发者可以构建与硬件设备交互的应用,例如读取传感器...

    判断android手机是华为小米魅族系统

    在Android开发中,有时我们需要根据设备制造商或操作系统版本来实现特定功能或适配。这个"判断android手机是华为小米魅族系统"的工具类就是针对这种情况设计的,它可以帮助开发者识别用户设备是属于华为、小米还是...

    JS调用Android方法,向Android方法传递json数据

    在现代的移动应用开发中,JavaScript与原生平台之间的交互变得越来越常见,特别是在使用Android的WebView组件时。本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 ...

    android抽屉菜单 android panel

    在Android应用开发中,抽屉菜单(Drawer Menu)是一种常见的设计模式,用于提供导航功能,让用户可以从屏幕边缘滑出一个包含多个选项的列表。这种设计通常遵循Material Design指南,是Google推荐的Android应用界面...

    Android扫雷游戏(基于Android Studio)

    【Android扫雷游戏开发详解】 在移动开发领域,Android Studio是Google推出的官方集成开发环境(IDE),用于构建Android应用程序。本项目"Android扫雷游戏"就是利用Android Studio进行开发的一个实例,旨在帮助初学...

    Android.bp文件说明.pdf

    Android新编译规则Android.bp文件语法规则详细介绍,条件编译的配置案例。 Android.bp 文件首先是 Android 系统的一种编译配置文件,是用来代替原来的 Android.mk 文件的。在 Android7.0 以前,Android 都是使用 ...

    Android组件设计思想

    这样就可以在组件再次需要使用时,原地满血复活,就像什么都没发生过一样。这种设计思想非常适合内存较小的移动设备。理解Android组件设计思想,对Android应用程序架构会有更好的认识。这一节讲Android组件化设计的...

    Android SDK离线包合集(Android 4.0-5.0)

    Android SDK离线包合集(Android 4.0-5.0)。不用去Google下载,直接国内下载离线包,各版本文件独立,任意下载。手机流量上传了一部分,好心疼。如不能下载,请告诉我更新地址。 附上简单教程。 这是Android开发所...

    Android开发入门60个小案例+源代码

    在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与设备硬件交互等。"Android开发入门60个小案例+源代码"这个资源提供了丰富的...

    Android点餐系统项目

    《Android点餐系统项目》是一门深度探讨如何在Android平台上构建无线点餐系统的视频教程,旨在教授学员如何利用Android技术实现一个完整的点餐系统,包括客户端和服务端的开发。这门课程涵盖了移动应用开发的多个...

    Android设置虚线、圆角、渐变

    在Android开发中,为UI元素添加虚线、圆角和渐变效果是常见的需求,可以提升应用的视觉吸引力。下面将详细讲解如何实现这些效果。 ### 一、虚线(Dashed Line) 在Android中,我们可以使用`Shape Drawable`来创建...

    android4.0源代码

    Android 4.0源代码是Android操作系统的冰激凌三明治(Ice Cream Sandwich)版本的底层实现,它包含了Android应用程序框架以及系统服务的核心组件。这个压缩包包含了一系列的源码目录,每个目录对应不同的模块,如...

    Android studio 小案例

    在Android开发领域,Android Studio是谷歌官方推荐的集成开发环境(IDE),用于构建高质量的Android应用。本小案例将深入探讨如何使用Android Studio进行实际项目开发。以下将详细介绍Android Studio的一些核心功能和...

    android 经典代码例子

    在Android开发领域,经典代码例子是开发者学习和提升技能的重要资源。这些例子涵盖了各种关键功能和组件的实现,有助于深入理解Android应用的工作原理。在这个压缩包中,我们可能找到了多个有关Android编程的示例...

    android应用开发范例精解

    第2篇为应用开发篇,通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计、Android传感器、Android游戏开发基础、Android与Internet,以及...

    android 以太网 添加设置Ethernet

    在Android系统中添加以太网(Ethernet)功能是一项涉及到网络接口和系统服务集成的重要操作。在Android设备上,以太网通常用于提供稳定的有线网络连接,尤其在没有Wi-Fi或者无线信号不稳定的情况下。以下是对如何在...

    android viewpager android-support-v4.jar

    标题中的“android viewpager android-support-v4.jar”指的是Android平台上的一个关键组件——ViewPager,以及它依赖的Android Support Library v4。ViewPager是Android SDK中用于实现页面滑动效果的控件,常见于...

    Android自定义日期选择器源码

    在Android开发中,系统默认的日期和时间选择器虽然实用,但往往无法满足所有场景的需求。因此,开发者经常需要自定义日期选择器来提供更符合应用风格或特定功能的交互体验。这篇内容将深入探讨如何在Android中创建一...

    Android BLE蓝牙例子(包括android版Lightblue)实例源码

    源码里面有Bluetooth4_3/BLEDemo/Android_Lightblue.apk三个.前两个是BLE的demo。BLEDemo这个功能较Bluetooth4_3多一些,有兴趣的可以都看下。Android_Lightblue.apk是Android版的lightblue,在进行ble开发的时候用...

Global site tag (gtag.js) - Google Analytics