Android Hello World示例

让我们开始实际的Android编程。在开始使用Android SDK编写的第一个例子之前,必须确保设置正确的Android开发环境 – 环境设置教程。也假设你有一点 Eclipse IDE 操作知识。

因此,现在编写一个简单的Android应用程序,它将打印 “Hello World!”.

创建Android应用

第一步:使用Eclipse IDE创建一个简单的Android应用程序。按照选择File -> New -> Project ,最后从向导列表选择 Android New Application 。现在,应用程序命名为 HelloWorld 使用向导窗口。

接下来,按照所提供的指示,并保持所有其他项为默认,直到最后一步。项目创建成功后,将有项目的画面。

Android应用解剖

在运行应用程序之前,应该注意在Android项目的几个目录和文件:

S.N. 文件夹、文件和说明
1 src
这包含项目java源文件。默认情况下,它包括一个 MainActivity.java源文件的活动类,应用程序运行时使用的应用程序图标启动
2 gen
这包含了R文件,编译器生成的文件在项目中找到的所有资源。不要修改这个文件。
3 bin
此文件夹包含了Android APK包文件。ADT在创建生成过程中一切需要运行一个Android应用程序
4 res/drawable-hdpi
被设计用于高密度的屏幕可绘制的对象目录
5 res/layout
这是一个目录文件,定义应用程序的用户界面
6 res/values
这是一个目录,包含各种XML文件,其中包含资源的集合,如字符串和颜色定义
7 AndroidManifest.xml
这是文件列表,该文件描述了应用程序的基本特征,并定义每个组件

下面的部分将简要介绍一些重要的应用程序文件。

主要活动Activity 文件

主要活动代码是Java文件:MainActivity.java。这是实际的应用程序文件,最终被转换 Dalvik 可执行的文件,并运行应用程序。以下是默认的Hello World 应用的程序向导生成的代码:

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

在这里,R.layout.activity_main 是指位于在 res/layout 文件夹的 activity_main.xml 文件。onCreate()方法是加载一个活动时,被触发的许多方法之一。

Manifest 文件

组件是开发应用程序的一部分,必须声明其所有组件在 AndroidManifest.xml 中,应用程序项目的根目录在 amanifest 文件。此文件作为Android操作系统和应用程序之间的接口。例如,默认 manifest 文件将看起来如以下文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.helloworld"
   android:versionCode="1"
   android:versionName="1.0" >
   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="15" />
   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       <activity
           android:name=".MainActivity"
           android:label="@string/title_activity_main" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
   </application>
</manifest>

这里<application>…</application>标记括起相关应用程序的组件。属性android:icon将指向应用程序图标,可在res/drawable-hdpi 之下找到。应用程序使用位于图像绘制文件夹,文件名为 ic_launcher.png 。

<activity>标签是用来指定活动,属性android:name指定活动子类,android类完全限定android:label 属性指定一个字符串作为标签使用的活动。可以使用<activity>标签指定多个活动。

intent 过滤器的动作被命名为android.intent.action.MAIN,表示这个活动作为应用程序的入口点。类的意图过滤器是namedandroid.intent.category.LAUNCHER声明,应用程序可以从设备的启动图标启动。

@string是指 strings.xml文件,解释如下。@string/app_name是strings.xml文件中的app_name是“HelloWorld” 定义的字符串。类似的方式,其他的字符串填充到应用中。

以下是使用manifest 文件中指定不同的 Android 应用程序组件的标签列表:

  • <activity> 活动的元素
  • <service> 服务的元素
  • <receiver> 广播接收器的元素
  • <provider> 内容提供者的元素

Strings 文件

strings.xml文件在 res/values 文件夹,它包含了所有应用程序所使用的文本。例如,按钮,标签,默认的文本和字符串类型相似的名称都在这个文件。这个文件是负责为他们的文字内容。例如,默认字符串文件看起来像以下文件:

<resources>
    <string name="app_name">HelloWorld</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
</resources>

R.java 文件

gen/com.example.helloworld/R.java文件就像MainActivity.java 和Java文件strings.xml等资源之间的胶水。这是一个自动生成的文件,不要修改R.java文件的内容。R.java文件下面是一个示例:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.example.helloworld;

public final class R {
    public static final class attr {
    }
    public static final class dimen {
        public static final int padding_large=0x7f040002;
        public static final int padding_medium=0x7f040001;
        public static final int padding_small=0x7f040000;
    }
    public static final class drawable {
        public static final int ic_action_search=0x7f020000;
        public static final int ic_launcher=0x7f020001;
    }
    public static final class id {
        public static final int menu_settings=0x7f080000;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
    }
    public static final class menu {
        public static final int activity_main=0x7f070000;
    }
    public static final class string {
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050001;
        public static final int menu_settings=0x7f050002;
        public static final int title_activity_main=0x7f050003;
    }
    public static final class style {
        public static final int AppTheme=0x7f060000;
    }
}

布局文件

activity_main.xml是在res/layout 目录,所引用应用程序接口布局文件。要修改应用程序的布局这个文件非常频繁地被修改。“Hello World ”应用中,这个文件默认布局,内容如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerHorizontal="true"
       android:layout_centerVertical="true"
       android:padding="@dimen/padding_medium"
       android:text="@string/hello_world"
       tools:context=".MainActivity" />

</RelativeLayout>

这是一个简单的相对布局,我们将在一个单独的章节学习其它复杂例子。TextView是被用来构建图形用户界面并由Android控制,它有各种各样的Android属性,如:android:layout_width, android:layout_height 等被用来设置其宽度和高度等等,@string是指位于strings.xml文件在文件夹res/values中。因此,@string/hello_world 指 hello 定义的字符串在 strings.xml 文件中的 “Hello World!” 字符串。

运行应用程序

让我们试着来运行 Hello World!应用程序。假设创建了AVD,同时做了环境设置。打开Eclipse运行应用程序,打开一个项目的活动文件,并单击“Run”Eclipse Run Icon 工具栏上的图标。 Eclipse 在 AVD上安装的应用程序后并启动它,如果一切都设置并应用没有问题,它会显示模拟器窗口。

恭喜!开发的第一款Android应用程序完成,现在只要把下面剩余的教程一步一步学习,一定能成为一个熟练的 Android开发者。

未经允许不得转载:JX BLOG » Android Hello World示例

赞 (0)

评论 0

评论前必须登录!

登陆 注册