第一课:android平台搭建、以及helloworld

    技术2022-05-20  36

    一、Android环境搭建

    1.所需开发环境:

    JDK 5 JDK 6

    Eclipse 3.5 (galileo)

    2.下载ADT Eclipse 插件

    http://dl.google.com/android/ADT-0.9.5.zip

    3.安装 Eclipse 插件 (ADT)

    启动 Eclipse,选择 Help > Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”,然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件。点击 OK.。返回可用软件的视图,你会看到这个插件,然后选择Developer Tools (会选中下面的“Android Developer Tools”和 “Android Editors“),点击 Next,最后重启 Eclipse

    4.下载Android SDK

    http://dl.google.com/android/android-sdk_r04-windows.zip

    下载完SDK后,把.zip文件解压到你电脑上合适位置。启动 Eclipse,选择window->preferences,在打开的视图左边点击android,在右边的SDK Location中选择Android SDK所在位置。

     

    二、HelloWorld程序

    1.创建一个Android工程

    Project name:HelloWorld

    BuildTarget:Android2.1

    Application name:第一个Android程序

    Package name:com.changcheng.Activity

    Create Activity:HelloWorld

    Min SDK Version:7

     

    2.运行Android模拟器

    安装ADT插件后,在工具栏中有一个手机图标(Opens the Android SDK and AVD Manager)。选择Virtual Devices,点击New按钮添加一个模拟器。Name随便(只要自己认得即可),Target选择Android2.1SD Card 300MiB。其他的默认,单击Create AVD确认添加。

    (我们可以通过windows--android sdk and android manager来新建一个AVD)

    选中我们添加的模拟器,单击右边的Start...按钮启动我们的模拟器。

     

    模拟器启动完成后,在我们的工程上右键,Run As Android Application

     

    OK,此时可以看到我们的程序成功部署到Android的模拟器中!我们部署到Android中的程序可以在Android模拟器的“抽屉”中找到。

     

    3.Android工程结构

    src:源代码,我们的代码。

    gen:Android开发工具所生成的文件,我们不能编辑这个文件。

    R.java,标识程序中使用的各种资源。没有被此文件标识的资源,不会被打包到APK文件中。(在资源文件中标识但是没有应用的资源,依旧不会被打包到APK文件中)

    assets:应用系统需要使用到的文件,比如mp3、视频...。这些文件会被原样打包到APK(不会经过任何优化压缩)。

    res:资源目录,向此目录添加资源时,会被R.java自动记录。

    drawabel-?dpi:图标文件(*.png*.jpg) 这里的文件会被优化压缩

    layout:界面布局文件(main.xml)WEB应用中的HTML类同

    values:软件上所需要显示的各种文字。可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xmlcolors.xmldimens.xmlstyles.xml...文件名是可以随意的哦

    AndroidManifest.xml:项目的总配置文件,记录应用中所使用的各种组件。如果应用中使用到手机中的功能,需要在此声明使用权限。

    default.properties:记录项目中所需要的环境信息,比如Android的版本等。

     

    三、Android程序运行过程

    程序的运行由主配置文件开始AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.changcheng.android"

    android:versionCode="1"

    android:versionName="1.0">

    <!--

    @drawable/icon

    @代表R.java

    drawableR.java的静态内部类

    icondrawable的常量,指定图片资源的ID

    -->

    <application android:icon="@drawable/icon" android:label="@string/app_name">

    <!--

    .HelloWorld指向package="com.changcheng.android"下面的HelloWorld类。

    我们可以在此添加子包.sub.xxxClass,但不能添加上级包。

    -->

    <activity android:name=".HelloWorld"

    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>

    <!-- 本程序使用AndoridSDK的最低版本 -->

    <uses-sdk android:minSdkVersion="7" />

    </manifest>

     

    接下来从HelloWorld类开始:

    package com.changcheng.android;

     

    import android.app.Activity;

    import android.os.Bundle;

     

    /**

    * 我们的HelloWorld类,继承自Activity类。

    *

    */

    public class HelloWorld extends Activity

    {

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

    @Override

    public void onCreate(Bundle savedInstanceState) {

    // 在此方法中完成界面的绘制

    super.onCreate(savedInstanceState);

    // 显示R.java文件中的layout静态内部类的main常量。它指向mail.xml

    setContentView(R.layout.main);

    }

    }

     

    然后再我们再看看mail.xml

    <?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:layout_width="fill_parent" ,它的父窗口是屏幕,所以宽度为整个屏幕。

    android:layout_height="wrap_content" ,它的高度为它所包含的内容高度。如果内容中有一行,就是一行的高度。

    android:text="@string/hello",它包含(显示)的文本内容,指向R.javastring静态内部类的常量hello所指向的文本资源ID,文本资源文件是strings.xml

    -->

    <TextView

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/hello"

    />

    </LinearLayout>

     

     

    再看看Strings.xml:

    <?xml version="1.0" encoding="utf-8"?>

    <resources>

    <string name="hello">HelloWorld,Hello World!</string>

    </resources>

     

    现在让我们看看掌管资源的主文件R.java

    package com.changcheng.android;

     

    public final class R {

    public static final class attr {

    }

    // 图片资源

    public static final class drawable {

    public static final int icon=0x7f020000;

    }

    // 界面布局资源

    public static final class layout {

    public static final int main=0x7f030000;

    }

    // 字符串资源

    public static final class string {

    public static final int app_name=0x7f040001;

    public static final int hello=0x7f040000;

    }

    }

    R.java文件中的所有资源ID全部是自动生成的,我们不可以手动编辑。当我们添加一个图片时,ADT插件,会以图片的名称为常量的名称,然后自动生成对应的资源ID。当我们向strings.xml中添加一个字符串时,ADT插件会以符串的名称为常量的名称,然后自动生成对应的资源ID

     

    R.java文件不需要我们手动编辑,我们只需要在需要使用到资源的地方引用这个文件里标识的资源即可!


    最新回复(0)