通常我们在学习一门语言是的第一个应用程序就是Hello world,我们这学习Android 也不例外,好了,开始我们的第一个Android程序:

在package Explorer 页面右键 new ->Android Aplication Project,如图:

android 实现第一个安卓项目hello 第一个android程序_xml

在弹出的对话框中,我们设置好Android应用的应用名:Helloworld、工程名,包结构名;以及配置Android应用的最低Android API版本和编译我们Android程序的版本,以及目标版本,如图:

android 实现第一个安卓项目hello 第一个android程序_Android_02

一直点击next,各个页面的选项都用默认的,直到可以点击Finish按钮为止,点击Finish按钮,此时我们的第一个Android程序就这么简单的创建成功,真的很简单。

在模拟器中部署我们的Android程序

在工程右键选择 Run as  选择Android Application,或者点击工具栏上的 

android 实现第一个安卓项目hello 第一个android程序_Android_03

按钮来运行我们的程序;等待模拟器呈现出来(如果没有配置模拟器,则按照前面模拟器的配置方法配置一个模拟器),在模拟器出来时,我们可以看到如图:

android 实现第一个安卓项目hello 第一个android程序_Android_04

可以看出我们的第一个Android应用已经成功部署到了模拟器上面了。

我们在创建应用的时候没有设置Hello world ,应用程序中的Hello world是哪里来的呢。

我们先看下工程的目录结构:

android 实现第一个安卓项目hello 第一个android程序_android_05

src目录不用说就是保存我们的源程序的文件夹;

这里主要说下res文件夹和AndroidManifest.xml文件

res 看字面意思就知道是保持我们应用的资源的

drawable-hdpi、drawable-ldpi等为保存我们不同分辨率大小图片资源的文件夹。(主要是适配不同分辨率和尺寸的屏幕)

layout  是用来布局我们的Activity的,通过配置,我们就不需要去修改源代码而直接修改Activity对应的layout文件就可以对其进行重新布局。

如:

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
</RelativeLayout>


这里我们看到首先声明了布局为RelativeLayout(相对布局,相对布局就是,你在我的左边,我在你的右边,我在它的上面等等这样的关系),还有个有个TextView ,就是我们刚才在模拟器中看到的Hello world ,喔,原来是在这里配置的。在我创建工程时,程序默认就给我们生成了这个文件。是否只要我们定义了这个main_activity.xml文件我们就可以看到效果呢?答案是否定的,我们还必须得指定哪一个activity来使用这个布局文件。在MainActivity源代码中我们看到有这么一个方法:


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

这个方法就是说,在当前activity初始化(oncreate)的时候,通过setContentView来指定了当前的布局文件,即activity_main.xml文件。当然如果你不使用布局文件也可以,那就就得在该文件下直接编写代码了。R.layout.activity_main怎么就表示为activity_main.xml文件了呢?我们看到在gen包下有R.java文件,R就是Resource的缩写。在R文件中包含了我们定义的各种资源,比如values文件夹下strings.xml里定义的各种字符串,drawable文件里的图片资源,都为这些资源定义了一个int型的数值引用。

Android中的TextView 对应java swing这种的Label 。这里指定了TextView的widht(宽)、height(高)属性,以及文本内容,该值引用了values文件夹下的string中的hello_world的值。

menu 是保存我们菜单配置的文件夹

values 是保存一系列资源文件比如字符串、颜色等的定义

AndroidManifest.xml文件描述应用程序的基本特征和定义它的每个组件。我们写的每一个Activity要呈现给用户就必须在这里面进行声明,如:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloword"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.helloword.MainActivity"
            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>

标签uses-sdk用来定义当前应用所需的SDK版本信息,我们可以看到最低版本为8即Android API 2.2 目标版本为18即Android API 4.3

Acitivity标签即是对我们的Activtiy的声明,我们写的每一个Activity如果要想呈现给用户就必须在这里进行声明。

上面的都是系统默认给我们生成的,现在我们来对文件进行修改:

我修改为一个文本输入框(EditView),和一个按钮(Button),效果如下图:

android 实现第一个安卓项目hello 第一个android程序_Android_06

这是怎么实现的呢?

第一,对layout下的main_activity.layout文件进行编辑,我们首先修改了布局样式为LinearLayout,并指定方向为横向( android:orientation="horizontal");

第二,添加EditView 对象和Button对象,如下:

<EditText 
        android:id="@+id/edit_text"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/default_value"
        android:inputType="textShortMessage"/>

    <Button 
        android:id="@+id/button"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="@string/button_send"/>

android:id定义了组件的ID属性,在第一次定义时,需在id前添加一个“+”号,表示新建一个id,其他地方引用的时候就不需要再加“+”了。

完整的布局文件如下:

<LinearLayout 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"
    android:orientation="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText 
        android:id="@+id/edit_text"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/default_value"
        android:inputType="textShortMessage"/>

    <Button 
        android:id="@+id/button"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="@string/button_send"/>
</LinearLayout>


在编写好布局文件后,我们可以通过Tab选项卡切换到Graphical Layout,就可以立即看到我们的布局效果,如图:


android 实现第一个安卓项目hello 第一个android程序_Android_07