Android入门之helloworld

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



1 打开Eclipse,选择【File】>【New】>【Project】



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



3 创建一个新的Android工程



       Project name: HelloWorld    (工程的目录名)
       Package name: com.android.helloworld    (包名,用于定位该包中类的位置)
       Activity name: main    (默认UI界面主窗口的类名,类似brew中的mainform)
       Application name: HelloWorld    (应用的标题名字)



接下在工程会被自动创建,



在Package Explorer窗口中选择【src】>【com.android.helloworld】>【main.java】文件,编辑代码:



package com.android.helloworld ;
import android.app.Activity;
import android.os.Bundle;



public class main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
        setContentView(R.layout.main);
    }
}



指定模拟器avd,然后“menu -> run”。




将创建好的Helloworld项目中的文件夹逐一展开如下图所示:



1.src目录

src 目录下放置的是Java源文件,这个文件中可以创建若干的Java包,在包中可以创建应用的处理逻辑,应用的Activity都会放在这个目录下,上图中的“main.java”就是在创建项目的时候创建的一个Activity,在Activity中可以编写控制View的逻辑。核心的控制逻辑都都会写在这里,看看“main.java”中都有什么:


   1: package com.android.helloworld;    2:      3: import android.app.Activity;    4: import android.os.Bundle;    5:      6: public class main extends Activity {    7:     /** Called when the activity is first created. */    8:     @Override    9:     public void onCreate(Bundle savedInstanceState) {   10:         super.onCreate(savedInstanceState);   11:         setContentView(R.layout.main);   12:     }   13: }
代码解释:


第一行表示包的名称。

3,4行代码导入Android的包,相当于.net 中的using语句引入命名空间。

6到13行是main类的主体,main类继承自Activity,android中所有的用户界面展示的类都直接或间接继承自Activity。

8到12行是一个重要的函数,这个函数重写Actitity中的onCreate,每一个继承自Activity的子类都要重写该方法来初始化界面,和asp.net中Page_Load事件相似,可以在这个方法中初始化界面上的元素,8行中“Override”表示方法的“重写”是Java的关键字,11行设置了main这个Activity要展示的用户界面的配置文件,”R.layout.main”是一个资源的常量,这个资源是对main.xml的一个间接引用,当程序启动时将main.xml文件中的内容展示给用户。

2.Android 2.0目录

这个目录下放的是当前工程使用的android SDK.上图中表示当前项目引用的是Android SDK 2.0,不同版本的SDK这个文件的名会不同。

3.gen目录

gen目录下的Java包中有一个“R.java”文件,这个文件是由Eclipse自动生成的,开发者不用去修改和维护里面的内容,但是这个文件却非常有用,它和另一个文件夹res紧密相连,对res下资源的操作都会导致R.java文件的重新编译,R.java 中定义的常量类也是间接帮助Activity完成对资源的应用,android这样设计的好处是,使得复杂的资源通过专门的类来管理而使得程序中的代码变得整齐,强壮,不会出现一些“弱类型的字符串”而变成强类型(这里借用了.net中的术语),减少程序出错和减少bug。

基本的R.java的代码如下:


   1: /* AUTO-GENERATED FILE.  DO NOT MODIFY.    2:  *    3:  * This class was automatically generated by the    4:  * aapt tool from the resource data it found.  It    5:  * should not be modified by hand.    6:  */    7:      8: package com.android.helloworld;    9:     10: public final class R {   11:     public static final class attr {   12:     }   13:     public static final class drawable {   14:         public static final int icon=0x7f020000;   15:     }   16:     public static final class layout {   17:         public static final int main=0x7f030000;   18:     }   19:     public static final class string {   20:         public static final int app_name=0x7f040001;   21:         public static final int hello=0x7f040000;   22:     }   23: }
4.assets目录

这个目录中通常放置一些原生的资源,它会在android打包的时候原封不动的一起打包,安装时会直接解压到对应的assets目录中。这里同常放置一些项目中用到的多媒体资源等。注意:在醒目打包的时候删除掉项目中没有引用到的资源,因为这会占用设备资源同时也会“撑大”应用apk包

5.res目录

这个目录中放置的是android要用到的各种资源

drawale—*dpi 文件夹中放置一些图片资源项目ico等

layout 中放置项目布局的XML文件,所有UI布局的xml文件都放置这个文件夹中,并且每创建一个资源R.java中都会创建一个资源常量。android的UI是通过xml来描述的,它将UI展示和逻辑控制分离这也是android的一个有点,针对不同的分辨率的适配也是相当容易的,不用去改动业务逻辑只需要重新创建一套适应的xml布局就可以了。

main.xml文件内容:


   1: <?xml version="1.0" encoding="utf-8"?>    2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    3:     android:orientation="vertical"    4:     android:layout_width="fill_parent"    5:     android:layout_height="fill_parent"    6:     >    7: <TextView      8:     android:layout_width="fill_parent"     9:     android:layout_height="wrap_content"    10:     android:text="@string/hello"   11:     />   12: </LinearLayout>
这个文件中的内容就是android UI布局的描述,针对android的UI布局后面会专门用篇幅来介绍,这里不做过多的解释。

6.values目录

这个目录中放置的是一些字符串,数组,颜色,样式,动画等资源,好的程序设计习惯是将界面中所用到的信息资源以单独文件形式存储,这样好处是易于管理,易于维护,更重要的原因是在多语言处理的时候会非常方便,我想Google在当时设计android的时候一定充分考录到了这些因素,所以才使得多语言变得简单,values目录下的资源也是通过Eclipse来维护其和R.java的对应关系,Activity 不需要引用直接的资源而是通过引用R.java中的常量,这一点非常巧妙,也为我们编程带来了极大的便利,string.xml中的文件内容:


   1: <?xml version="1.0" encoding="utf-8"?>    2: <resources>    3:     <string name="hello">Hello World, main!</string>    4:     <string name="app_name">HelloWorld</string>    5: </resources>
这个文件中定义了两个变量“hello” 和“app_name”,hello的值”Hello World,main !”表示在界面中显示这样一个问候语,它的引用在main.xml文件中:android:text="@string/hello",这个"@string/hello“是引用资源的常用的写法,以@+文件名+资源的名称。app_name的值“HelloWorld”表示项目的名称。在R.java的定义如下:


   1: public static final class string {    2:         public static final int app_name=0x7f040001;    3:         public static final int hello=0x7f040000;    4:     }
这里将文件名string.xml转化成一个string 静态类,文件中的资源名被转化成了一个静态的整型常量。

Values 目录中的每一个文件都会转化成R.java中的一个静态类,文件中的每一个资源都会转化成R.java中对应静态类的静态整型常量,这样Activiy中通过一个解析器就可以获取到对应的资源。

7.AndroidManifest.xml文件

这个文件是整个项目的配置资源,里面配置的内容包括,Activity,访问权限等等,这个文件相当于asp.net中的web.config文件。

AndroidManifest.xml文件的内容:


   1: <?xml version="1.0" encoding="utf-8"?>    2: <manifest xmlns:android="http://schemas.android.com/apk/res/android"    3:       package="com.android.helloworld"    4:       android:versionCode="1"    5:       android:versionName="1.0">    6:     <application android:icon="@drawable/icon" android:label="@string/app_name">    7:         <activity android:name=".main"    8:                   android:label="@string/app_name">    9:             <intent-filter>   10:                 <action android:name="android.intent.action.MAIN" />   11:                 <category android:name="android.intent.category.LAUNCHER" />   12:             </intent-filter>   13:         </activity>   14:     15:     </application>   16:     <uses-sdk android:minSdkVersion="5" />   17:     18: </manifest> 
这个文件中7到13行配置了项目中的UI包、用到的Activity以及项目启动的主界面为“.main”(这main就是src目录下的那个main.java文件的类名)16行配置了使用android SDK的版本。

8.default.properties文件

这个文件中记录了android项目运行时的环境信息以及Android SDK的版本信息,文件的内容如下:


   1: # This file is automatically generated by Android Tools.    2: # Do not modify this file -- YOUR CHANGES WILL BE ERASED!    3: #     4: # This file must be checked in Version Control Systems.    5: #     6: # To customize properties used by the Ant build system use,    7: # "build.properties", and override values to adapt the script to your    8: # project structure.    9:     10: # Indicates whether an apk should be generated for each density.   11: split.density=false   12: # Project target.

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/echoff/archive/2010/10/18/5948320.aspx

你可能感兴趣的:(android,UI,xml,asp.net,brew)