Android - 初学者指南

本文是一篇Android应用程序开发的基础教程,适合初学者。介绍了如何在Eclipse中设置开发环境、创建项目及编写简单的应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文作者Felix Geilert

 

介绍

 

本教程是开发Android应用程序的基础文章。它将解释的Android软件开发工具包,以及如何使用Eclipse来开发。要理解本教程,您不必有任何Java编程的知识,通过本文章也可能有助于进一步理解面向对象编程基础知识。本教程介绍Android的初学者如何在Eclipse中创建一个Android项目,编辑资源文件,并且增加一些代码。

 

设置Eclipse和Android SDK

 

如果你还没有一个开发Android应用程序环境,请参照此链接中的说明。
提示:路径是指PATH环境变量。在Windows中,在“控制面板/系统/高级系统设置/环境变量”列表框中设置。您可以通过java -version命令行检查已安装的Java版本。

 

让我们开始

 

现在,我们要创建我们的第一个应用程序,这是一个Hello World应用程序。首先,启动Eclipse,然后选择“文件/新建/项目”。在“新建项目”对话框中,选择“Android/Android Project”,然后点击“下一步”。

 

New_Project_empty.jpg

 

在这里你需要设置该项目。首先,我们输入“Hello World”作为项目名称。接下来,您必须选择要使用的Android版本。在这里,我们选择2.2版本。正如我们在最后一栏看到的,我们需要设置这个Android API的版本为8,因此我们在Mini SDK版本中输入“8”。此外,该项目需要设置一个应用程序名字。 (注意,这个名称也会被使用在代码中,所以这个名字应该没有空格)。通常,您需要删除所有空格作为项目名称(例如,该项目的“HelloWorld”)。接下来,你必须定义该项目的Package。我们将在这里使用“com.test.helloworld”(一个包由多个类组合而成,有关详细信息,请参见这里)。最后,你需要设置Activity的名字(一个应用程序可能有多个活动)。在这个例子中,我们简单地用“HelloWorldApp”作为名字。

 

New_Project.jpg

 

在我们最终开始我们的第一个项目之前,需要创建一个配置。此配置指明在何种情况下应用程序将被启动。例如,你可以控制的网络速度,模拟器和应用程序。此外,您可以选择不同的仿真器来测试不同的Android版本或不同屏幕尺寸。进入“运行/运行配置”来创建配置。现在点击“Android应用程序”在一旁选项卡上的新建按钮。调用新的配置“HelloWorldConfig”,选择浏览按钮并选择我们刚刚创建的项目。现在选择目标标签。在这里你可以选择网络速度和哪个模拟器将被使用。

 

Run_Config_Screen.jpg

 

接下来我们先创建一个模拟器。点击自动控制使边上的按钮可以使用,然后单击管理器按钮。在这里,点击右边的新建按钮来创建一个新的模拟器。在下面的屏幕上,你可以输入一个模拟器名称(我曾用“DefaultAndroidEmulator”),并指定的细节(如Android的版本,SD卡大小,等等)。您可以控制仿真器硬件部分的每一个小细节。

 

Create_Emulator_.jpg

一旦你完成上面的步骤,点击“创建AVD”并关闭管理器窗口。现在,我们已经成功创建了运行配置。点击“应用”并关闭配置。现在你可以运行你的第一个Android项目了。

注意:这可能需要一段时间来起动仿真器,所以请耐心等待!另外,我只截了其中一部分,使你不能看到键盘或D-pad。

恭喜!你刚刚创建了第一个Android应用程序!

First_App_.jpg

编码是一种乐趣

 

当我们完成了这一切,终于可以开始实际的代码开始,因为我们都知道:编码是一种乐趣!

但在此之前,我们实际上可以先看一下Java代码,我们需要了解Android应用程序结构。到Package Explorer并展开“Hello World”项目。你可以看到五个文件夹和两个文件。让我们开始使用其中的两个文件和AndroidManifest文件。该文件包含有关项目所有的信息,如图标,作者的名字。要打开它,请右键单击并选择“Open With/ Android Manifest Editor”。在展开的标签中,您可以指定包的名称和您的项目版本。在底部,你会发现一些额外的标签。我认为大部分的设置都是十分明了。请注意在某些属性前面的@。这说明下面的字符串是一个资源引用。您可以在“Res”文件夹中的找到资源。如果你展开它,你会发现还有一些子文件夹。具体而言,在res目录下可以有七种类型的子目录:values, drawable, layout, animations, xml, styles, 和raw

让我们首先关注values文件夹。在这里你可以存储各种类型简单资源(如字符串,颜色,数量,尺寸,数组等)。默认情况下,你会发现有个strings.xml文件。当你打开它(右键点击,“Open With/ Android Layout Editor”),你会看到它包含两个值。第一个是项目运行时的输出文本,第二个是您的应用程序名称。当然您也可以添加新的值用于代码使用(或增加在Manifest或Layout文件中)。您也可以使用量词来创建使用特定资源。如增加一个 - 到文件夹,再添加一个量词到名字中。例如,你可以重命名values文件夹为values-en,这意味着该文件夹的内容只用于英文语言的Android手机使用。如果你不添加量词,资源是默认。默认资源会在当系统没有找到特定资源时加载。如果该项目已启动,所有的资源将被编译尽可能有效并添加到程序中包。此外,一个引用将被创建(称为R),允许你忙在代码中访问资源。由于这只是一个教程,我不会在这里专注所有类型的资源。你可以在这里找到更多的资源和量词。

最后,现在开始编码!转到“src”文件夹。在文件夹,你会发现package文件夹,打开HelloWorld.java文件。你将看到一个Android Activity的默认代码:

Collapse

package com.test.helloworld; //the package we are working in

//some android packages we need to import
import android.app.Activity;
import android.os.Bundle;

//our activity class (extendes the default activity class)
public class HelloWorldApp extends Activity {
    /** Called when the activity is first created. */
    @Override
    //the function called when activity is created
    public void onCreate(Bundle savedInstanceState) {
        //call the create fct. Of the base class
        super.onCreate(savedInstanceState);
        //load the layout specified in the layout.xml
        setContentView(R.layout.main);
    }
}

正如你看到的,我们通过扩展默认的Android activity创建了一个新的activity类。然后我们重载默认的OnCreate函数,它是在项目启动时被调用。在那里,我们从资源文件加载我们自己的布局,并调用基类的OnCreate函数。现在,让我们来分析这个Layout文件。你先在资源文件夹下找到layout目录。当你打开它,它看起来应该像这样:

Collapse

<linearlayout android:layout_height="fill_parent" 
    android:layout_width="fill_parent" android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android" />
      <textview android:layout_height="wrap_content" 
        android:layout_width="fill_parent" android:text="@string/hello" />
</linearlayout />

您可以看到这个根节点叫LinearLayout.正如您可能已经知道的,这里有不同类型的Layout:

  • FrameLayout: 所有的控件(包括子控件)都放置在左上角.
  • LinearLayout: 所有的子控件都按照垂直/水平次序排列.
  • RelativeLayout: 子控件的位置都是相对于其它子控件.
  • TableLayout: 所有子项都是用网格来放置的.
  • AbsoluteLayout: 子元素的位置都是绝对坐标(像素)。

 

一旦你选择了一个布局类型,你可以添加子元素。在给定的代码中,已经有一个TextView,这是用来在屏幕上显示文字。当前内容是在values.xml文件中定义的一个资源引用。正如你将看到的,它使用整个屏幕宽度,但是长度只要按照需要显示内容来定。我们可能会开始与一些小的变化。让我们改变TextView的文字颜色为绿色:

Collapse

<textview android:layout_height="wrap_content" 
    android:layout_width="fill_parent" android:text="@string/hello" 
    android:textcolor="#FF00FF00" />

现在,启动项目就可以看到这个变化。接下来,让我们添加一个新的EditText控件:

Collapse

<linearlayout android:layout_height="fill_parent" 
     android:layout_width="fill_parent" android:orientation="vertical" 
     xmlns:android="http://schemas.android.com/apk/res/android" />
        <edittext android:layout_height="wrap_content" 
             android:layout_width="fill_parent" android:textcolor="#FF0000FF"
             android:id="@+id/et_Text" />
<textview android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:textcolor="#FF00FF00" android:id="@+id/lv_View" />
</linearlayout />

当我们想在代码中访问这个控件,需要分配一个ID。接下来,我们创建了一些控件相关的代码。转到HelloWorld.java文件。

Collapse

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //loading the layout over the resource reference
    setContentView(R.layout.main);
        
    //get the two controls we created earlier, also with the resource reference and the id
    final TextView tv_View = (TextView)findViewById(R.id.tv_View);
    final EditText et_Text = (EditText)findViewById(R.id.et_Text);
        
    //add new KeyListener Callback (to record key input)
    et_Text.setOnKeyListener(new OnKeyListener()
    {
        //function to invoke when a key is pressed
        public boolean onKey(View v, int keyCode, KeyEvent event)
        {
            //check if there is 
            if (event.getAction() == KeyEvent.ACTION_DOWN)
            {
                //check if the right key was pressed
                if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
                {
                                    //add the text to the textview
                    tv_View.setText(tv_View.getText() + ", " + 
                                     et_Text.getText());
                                    //and clear the EditText control
                    et_Text.setText("");
                    return true;
                }
            }
            return false;
        }
    });
}

接下来,我们将一行行分析这些代码。首先,我们加载了布局。然后我们创建一个TextView和一个EditText变量并加载我们自己的接口对象到这两个控件中(这就是我们需要ID的原因)。最后,我们添加一个新的OnKeyListener到EditText控制。在这个OnKeyListener,我们重载了onKey方法,这个方法在一个键被按下时并控制处于活动状态时调用。在该方法中,我们执行两个检查:第一,以确保键被按下(而不是放开),第二个是特定键(在这里是D -键盘中心键)。如果这两个条件满足,我们增加EditText控件上的文字到TextView,最后删除EditText控件的文字。运行并测试应用程序。太好了,你创建了第一个真正的Android应用程序。

Final_App_.jpg

Android应用程序设计

 

如同每一个平台,Android了有自己的设计挑战。永远记住,你是在一个有限的内存,磁盘空间和处理能力的移动平台上。因此,Android(机器人)会自动杀死进程(每个应用程序运行在自己的进程中),以保持系统的响应。进程运行是按重要性排序。最重要的是当前活动的进程,接着是可见和状态服务进程。在最底层的进程是空的进程和后台服务。要记住这一点,因为你不希望你设计你的应用程序在运行的过程中被杀掉。此外,您可以使用Android手机内置的硬件。但是请注意,并非所有手机都有这样的硬件,因此并非所有机型都能运行您的应用程序。

通过本教程希望你明白Android的开发基础知识。由于这是我在CodeProject上的第一篇文章,任何反馈都非常感激.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值