移动开发基础教程:Android是什么 安卓开发 |
Android是基于Linux内核的操作系统,是谷歌公司在2007年11月5日公布的手机操作系统,早期由谷歌开发,后由开 撒手持 设施联盟(Open Handset Alliance)开发 。它采纳了软件堆层(software stack,又名以软件叠层)的架构,重要分为三 部分 。底层Linux内核只提供 根本 性能; 其余的 利用软件则由各公司自行开发, 部分程序以Java编写 。 一、简介 BlackBerry和iPhone都提供了受 欢送的、高容量的移动平台,然而却分别针对两个不同的消费群体 。BlackBerry是企业业务消费者的不二 取舍 。然而,作为一种消费 设施,它在易用性和 “新神奇性” 方面难以和iPhone抗衡 。Android则是一个年轻的、有待开发的平台,它有 后劲同时涵盖移动电话的两个不同消费群体,甚至可能缩短工作和娱乐中间的差异 。 如今,众多基于网络或有网络 支撑的 设施都运行某种Linux内核 。这是一种牢靠的平台:可经济有效地进行部署和提供 支撑,而且可直接作为面向部署的良好的设计 步骤 。这些 设施的UI通常是基于HTML的,可通过PC或Mac阅读器查看 。但并不是每个 设施都需求通过一个 通例的计算 设施来操纵 。 设想一下传统的家用电器,例如电炉、微波炉或面包机 。假如您的家用电器由Android操纵,而且有一个彩色触摸屏,会怎么样?假如电炉上有一个Android UI,那么操纵者甚至 可以烹饪点什么东西 。 二、Android术语 在Eclipse环境中开发Android 利用程序需求了解Eclipse环境和Android平台的 常识 。了解以下术语会有助于用Eclipse插件开发Android 利用程序 。 Open Handset Alliance 这是一个由谷歌公司主导的组织,它由许多公共和私人组织构成 。 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 组织由一群一起致力于构建更好的移动电话的公司构成 。这个组织由谷歌领导,包括移动 经营商、手持 设施创造商、零部件创造商、软件解决 方案和平台提供商以及市场营销公司 。从软件开发的观点看,Android正处在开源领域的 核心位置 。 市场上第一款 支撑Android的手机是由HTC创造并由T-Mobile供给的G1 。这款 设施从 设计到推出花了大概一年的 工夫,惟一可用的软件开发工具是一些 履行增量改良的SDK发行版 。随着G1发行日的 邻近,Android团队公布了SDK V1.0,用于这个新平台的 利用程序也浮出水面 。 为了鼓舞创新,谷歌举办了两届“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 利用程序中一项 风行的技术是链接到谷歌地图,以便在 利用程序中显示地址 。Android软件栈还提供对基于位置的服务(例如GPS)和加快计的 支撑,不过并不是全部的Android 设施都装备了 必须的硬件 。另外还有摄像 支撑 。 过去,移动 利用程序 奋力向桌面 利用程序看齐的两个领域分别是图形/媒体和数据存储 步骤 。Android通过提供对2D和3D图形的内置 支撑,包括OpenGL 库,解决了图形方面的 挑战 。由于Android平台包括 风行的开源SQLite 数据库, 因此缓解了数据存储的 累赘 。图1显示一个简化的Android软件 品位 构造 。 图1.Android软件 品位 构造 五、 利用程序架构 如前所述,Android运行在Linux内核上 。Android 利用程序是用Java编程语言编写的,它们在一个 虚构机(VM)中运行 。需求 留神的是,这个VM并非您 设想中的JVM,而是Dalvik Virtual Machine,这是一种开源技术 。每个Android 利用程序都在Dalvik VM的一个实例中运行,这个实例驻留在一个由Linux内核治理的 历程中,如下图所示 。 图 2. Dalvik VM Android 利用程序由一个或多个组件构成: 运动 存在可视UI的 利用程序是用 运动实现的 。当消费者从主屏幕或 利用程序启动器 取舍一个 利用程序时,就会开始一个动作 。 服务 服务应该用于任何需求 连续较长期的 利用程序,例如网络 监督器或更新 审查 利用程序 。 内容提供程序 可以将内容提供程序看作数据库服务器 。内容提供程序的 使命是治理对 长久数据的 拜访,例如SQLite数据库 。假如 利用程序十分 方便,那么可能不需求 缔造内容提供程序 。假如要构建一个较大的 利用程序,或者构建需求为多个 运动或 利用程序提供数据的 利用程序,那么 可以 使用内容提供程序实现数据 拜访 。 播送 接纳器 Android 利用程序可用于 解决一个数据元素,或者对一个事件(例如 接纳文本 信息)做出响应 。 Android 利用程序是连同一个AndroidManifest.xml文件一起部署到 设施的 。AndroidManifest.xml包括必要的配 相信息,以便将它适当地安装到 设施 。它包括 必须的类名和 利用程序 可以 解决的事件类型,以及运行 利用程序所需的许可 。例如,假如 利用程序需求 拜访网络 — 例如为了下载一个文件 — 那么manifest文件中必须显式地列出该许可 。众多 利用程序可能启用了这个特定的许可 。这种申明式安全性有助于削减 歹意 利用程序伤害 设施的可能性 。 六、所需工具 开始开发Android 利用程序的最简捷的 模式是下载AndroidSDK 和EclipseIDE 。Android开发 可以在微软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 。 AndroidSDK 是作为一个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 七、Android Debug Bridge adb有用程序 支撑一些可选命令行参数,以提供 壮大的 特点,例如复制文件到 设施或从 设施复制文件 。 可以 使用shell命令行参数衔接到手机 本身,并发送 根本的shell命令 。图 4 显示在通过USB线衔接到Windows笔记本的一个实际 设施上运行的adb shell命令 。 图 4. 使用adb shell命令 在这个shell环境中, 可以: 显示网络配置,网络配置可显示多个网络衔接 。 留神这多个网络衔接: lo是当地或loopback衔接 。 tiwlan0是WiFi衔接,该衔接由当地DHCP服务器提供一个地址 。 显示PATH环境变量的内容 。 执行su命令,以成为超级消费者 。 将目录改为/data/app,其中 存放消费者 利用程序 。 列出包括某个 利用程序的目录 。Android 利用程序文件实际上是归档文件,可通过WinZip之类的软件查看 。 扩大名为apk 。 发出ping命令,查看Google.com是不是可用 。 从 雷同的命令 揭示符环境中,还 可以与SQLite 数据库交互,启动程序以及执行许多 其余系统级 使命 。想像一下您正在衔接到电话, 因此这是十分了不起的 性能 。 |