zoukankan      html  css  js  c++  java
  • 如何在Windows下搭建Android开发环境

     

    最近一直忙于将手中的项目API 改成Android 平台下的API,所以要开始学习些Android方面的东西了,先转载一下这篇文章,要一步步的学习Android,希望有同行来交流。  

    链接:http://blog.csdn.net/Mac_cm/archive/2009/01/06/3720492.aspx 

    搭建Android开发环境

    1 下载Android SDK

    http://code.google.com/android/download.html

    这是官方网址,进入后跟着流程走,选择适合于自己平台(这里是Windows)的SDK包下载。下载后直接解压就可以使用了。

    为了在DOS控制台中直接使用SDK的工具,可以将SDK的目录添加到Windows的path环境变量中:在桌面上右击“我的电脑”,依次点击【属性】>【高级】>【环境变量】。双击【系统变量】里面的Path项,将Android SDK中tools目录的完整路径添加到这里。

     

    2 下载JDK6

    http://java.sun.com/javase/downloads/index.jsp

    下载并安装Java开发包。

     

    3 下载Eclipse3.4.1

    http://www.eclipse.org/downloads/

    在“Eclipse Packages”标签页中选择“Eclipse Classic3.4.1”进行下载。这是目前最新的版本。

    对于Eclipse来说,直接解压之后就可以使用。

     

    4 下载Eclipse的Android ADT插件

    许多教程在这一步都是通过Eclipse自身的update功能进行下载:

           启动Eclipse,选择【Help】 > 【Soft Updates】 > 【Find and Install…】

           选择“Available Software”标签页,点击【Add Site…】按键。添加update站点:https://dl-ssl.google.com/android/eclipse/

           这时窗口中新增了“https://dl-ssl.google.com/android/eclipse/”项,选中该项,点击【Install…】按键即可下载。

    注:许多国内的网友都无法完成这样的升级,通常是进行到一半就没有任何反映了(其他插件,例如pydev也是这样)。

     

    没关系,我们直接到Android官网去下载这个ADT插件:

    http://code.google.com/android/adt_download.html

    下载完成后解压,将“features”和“plugins”目录中的文件拷贝到Eclipse的对应目录中就可以了。

     

    重启Eclipse,进行Android SDK设置:

           选择【Windows】 > 【Preferences…】打开编辑属性窗口

           选择Android属性面板

           加入Android SDK的目录(点击【Browse…】进行选择,这里是“android-sdk-windows-1.0_r1”所在的目录)。

     

    设置Eclipse的Java JDK属性设置

           选择【Window】>【Preferences…】打开编辑属性窗口

           选择Java属性面板

           选择Java编译器为6.0

           点击Apply,和OK。

    注:这是大多数教材提到的步骤。可是很奇怪,在我安装的时候并没有经历这样一个步骤(实际上,根本就没有“Java编译器为6.0”这个选项)。

    我这里的Eclipse版本为最新的3.4.1,可能与它有关。

     

    创建一个Android工程

    搭建好开发环境之后,我们来创建一个Hello World工程,体验一下Android的开发。

    1 选择【File】>【New】>【Project】

    2 选择【Android】>【Android Project】,点击【Next】

    3 创建一个新的Android工程

           Project name(在计算机中存储工程的目录名):                       HelloWorld

           Package name(包名,请参考Java相关的概念):                     com.china.hello

           Activity name(UI界面窗口的类名,从Activity继承而来):      HelloChina

           Application name(应用的标题名字):                                       test Android

     

    这样一个Android的工程就创建完毕了。

    在Package Explorer窗口中选择【src】>【com.china.hello】>【HelloChina.java】文件,编辑代码:

    package com.china.hello;

     

    import android.app.Activity;

    import android.os.Bundle;

    import android.widget.TextView;

     

    public class HelloChina extends Activity {

        /** Called when the activity is first created. */

        @Override

        public void onCreate(Bundle saveInstanceState) {

            super.onCreate(saveInstanceState);

            //setContentView(R.layout.main);

            TextView tv = new TextView(this);

            tv.setText("helloWorld");

            setContentView(tv);

        }

    }

     

    运行

    在“Run As”窗口中选择“Android Application”,过一会儿就会出现图1所示的模拟器窗口:

    图1 Android模拟器

     

    点击模拟器中的“MENU”键解锁,我们的程序就出来了,见图2。 s

    Android 开发简介

    开源的设备平台

    将打印机的版面设置成横向打印模式

    打印本页

    将此页作为电子邮件发送

    将此页作为电子邮件发送

    样例代码

    英文原文

    英文原文


    级别: 初级

    Frank Ableson, 软件设计师

    2009 年 6 月 08 日

    Android 是一种基于 Linux® V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。但是, Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他的平台和应用程序。在本文中,阅读对 Android 平台的简介,并学习如何编写基本的 Android 应用程序简介s

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

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

    在本文中,了解 Android 平台,以及如何将它用于移动和非移动应用程序。安装 Android SDK,并构建一个简单的应用程序。下载 本文中的示例应用程序的源代码。



    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 有丰富的功能,因此很容易与桌面操作系统混淆。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 软件层次结构
     



    应用程序架构

    如前所述,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 应用程序所需的开发环境。


    所需的工具

    开始开发 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
     

    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 数据库交互,启动程序以及执行许多其他系统级任务。想像一下您正在连接到电话,因此这是非常了不起的功能。

    在下一节,您将创建一个简单的 Android 应用程序。





    编写一个基本的应用程序

    本节展示如何构建一个 Android 应用程序。示例应用程序非常简单:一个修改后的 “Hello Android” 应用程序。您将进行一个微小的修改,使屏幕背景全部变为白色,以便把手机用作手电筒。这个例子不是很有创意,但是可以作为一个有用的例子。请 下载 完整的源代码。

    为了在 Eclipse 中创建应用程序,选择 File > New > Android project,这将启动 New Android Project 向导。


    图 5. New Android project 向导
     

    接下来,创建一个简单的应用程序,该应用程序有一个活动,并且在 main.xml 中有一个 UI 布局。布局包含一个文本元素,您将修改这个文本元素,以显示 Android FlashLight。下面的清单显示了这个简单的布局。


    清单 1. Flashlight 布局
    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@color/all_white"><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello" android:textColor="@color/all_black"    android:gravity="center_horizontal"/></LinearLayout>

    在 strings.xml 中创建两个颜色资源。


    清单 2. strings.xml 中的颜色
    <?xml version="1.0" encoding="utf-8"?><resources>    <string name="hello">Android FlashLight</string>    <string name="app_name">FlashLight</string>    <color name="all_white">#FFFFFF</color>    <color name="all_black">#000000</color></resources>

    主屏幕布局有一个定义为 all_white 的背景色。在 strings.xml 文件中,可以看到 all_white 被定义为一个值为 #FFFFFF 的 RGB 三元组,即纯白。

    布局包含一个 TextView,这实际上是一块静态文本。它是不可编辑的。文本被设为黑色,并通过 gravity 属性设为水平居中。

    该应用程序有一个名为 FlashLight.java 的 Java 源文件,如以下清单所示。


    清单 3. Flashlight.java
    package com.msi.flashlight;import android.app.Activity;import android.os.Bundle;public class FlashLight extends Activity {    /** Called when the activity is first created. */    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}

    该代码是直接来自 New Project 向导的模板代码:

    • 它是 Java 包 com.msi.flashlight 的一部分。
    • 它有两个 import:
      • 一个用于 activity 类
      • 一个用于 bundle 类
    • 当该活动发起后,onCreate 方法被调用,传入一个 savedInstanceState。对于我们来说,不必关心这个 bundle。只有在暂停然后恢复活动时才会用到。
    • onCreate 方法覆盖了同名的 activity 类方法。它调用超类的 onCreate 方法。
    • 对 setContentView() 的调用将关联 main.xml 文件中定义的 UI 布局。main.xml 和 strings.xml 中的任何内容都自动映射到 R.java 源文件中定义的常量。任何时候都不要直接编辑这个文件,因为它随着每次构建而改变。

    运行该应用程序可以看到一个白色屏幕,其中有黑色文本。


    图 6. flashlight 的白色屏幕
     

    下面显示用于 FlashLight 应用程序的 AndroidManifest.xml 文件。



    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.msi.flashlight"      android:versionCode="1"      android:versionName="1.0.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".FlashLight"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

    该文件是由用于 Eclipse 的 Android Developer Tools 插件自动创建的。您不需要做任何事情。

    当然,这个应用程序并不是很强大。但是如果希望读点书,又不想打扰正在睡觉的爱人,或者如果需要在断电时去地下室查看保险丝盒,那么这个应用程序还是很方便的。


    结束语

    在本文中,您阅读了对 Android 的简介,并构建了一个小型的应用程序。希望本文中的例子能激起您进一步探索 Android 平台的兴趣。Android 有望成为对市场产生深远影响的开源平台,它的用处将远远超越移动电话。

     

    -------------------------------------------------------------------------------------------------------------------

    code

  • 相关阅读:
    数据结构与算法系列——排序(6)_树形选择排序
    数据结构与算法系列——排序(7)_堆排序
    数据结构与算法系列——排序(5)_简单选择排序
    数据结构与算法系列——排序(4)_Shell希尔排序
    数据结构与算法系列——排序(3)_折半插入排序
    数据结构与算法系列——排序(2)_直接插入排序
    数据结构与算法系列——排序(1)_概述
    Java高级开发_性能优化的细节
    图形推理
    美团点评面试20190515
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1652339.html
Copyright © 2011-2022 走看看