Chinaunix首页 | 论坛 | 博客
  • 博客访问: 382807
  • 博文数量: 61
  • 博客积分: 1546
  • 博客等级: 中尉
  • 技术积分: 708
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-22 20:07
文章分类

全部博文(61)

文章存档

2011年(61)

分类: 嵌入式

2011-02-28 21:29:16

今天介绍一下第一个Android程序。顺便熟悉一下eclipse中开发Android应用程序的基本步骤。
首先,打开eclipse,在Package Explorer中点击右键,选择New -- Android Project
然后,在弹出的对话框中,在Project Name中输入helloworld
在Build Target中选择需要的SDK版本,我选择Android2.2
接下来在Properties中输入需要的信息:
在Application name中输入应用的名字,我输入“第一个android程序”
在Package name中输入包名,com.ui.view
如果勾选了Create Activity,则在后面输入Activity的名字HelloActivity(对于Activity,可以理解成手机的一屏)
最后输入Min SDK Version:8(因为选择了Android2.2,它对应的API Level版本是8)
然后点击Finish
 
到此未知,第一个Android应用程序已经创建完成!
 
现在对这个项目大致浏览一下,可以发现helloworld下的目录结构是
helloworld
--src
----com.ui.view(为什么是这个名字,是因为刚才在Package name中输入了com.ui.view)
------HelloActivity.java(这个同理)
--gen
----com.ui.view
------R.java
--Android 2.2
----android.jar
--assets
--res
----drawable-hdpi
----drawable-ldpi
----drawable-mdpi
----layout
------main.xml
----values
------string.xml
--AndroidManifest.xml
--default.properties
 
src为源文件存放目录
gen为编译器自动生成的文件存放目录
assets和res目录为存放程序中需要的资源的目录,包括字符串,文件,图片等
区别在于assets中存放的资源不会在R.java中生成资源标识,如果要引用它里面的资源,需要写上相对路径。
注意:R.java中的内容不要去改动它!!
res下中存放资源后,将会自动在R.java中生成一个唯一的资源标识
drawable-hdpi,drawable-ldpi,drawable-mdpi分别用于存放高分辨率,分辨率,中分辨率的图片
layout用于存放布局文件,布局文件是xml格式的,可以手动编辑也可以在可视化环境中修改。
values下的strings.xml是为了方便管理字符串以及国际化考虑,如果要发布不同语言的应用,只需把这个文件做多个语言的版本即可。
 
最后介绍AndroidManifest.xml
这是一个功能清单文件,会自动将一些项目信息放在这里。
如果要在应用中使用一些系统功能,如写了一个新的Activity、访问SD卡,则需要在这里申明权限。具体使用将在以后遇到的时候介绍。这里只需知道这个文件是自动生成的,在一般情况下,不需要改动它。
 
基本点都在这里了,有些枯燥,下面来运行一下这个项目,看看效果:
在项目名上点右键,选择Run As --> Android Application
 
点击按钮Home,回到主屏幕,可以看到刚才写的“第一个android程序”就是应用的名字:
 
下面,简单分析程序中的代码
HelloActivity.java代码

package com.view.ui;

import android.app.Activity;
import android.os.Bundle;

public class HelloActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
自定义的Activity类都要继承Activity,并覆盖onCreate方法,该方法会被android系统自动调用。
setContentView用于显示视图界面。

R.java文件代码:

package com.view.ui;

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;
    }
}
该类是一个资源索引类,由编译器自动生成,无需修改
一般attr中声明属性;drawable中声明图片资源;
layout中声明布局文件;string中声明字符串;
如果在布局文件中对控件添加android:id="@+id/xxxName",则会在R.java中生成以id为类名的资源索引

string.xml文件代码:

    Hello World, HelloActivity!
    第一个Android程序
该文件中声明字符串常量,一是为了维护方便,方便国际化;二是提高程序运行效率,节约内存

main.xml文件代码:

    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"
    />

LinearLayout是线性布局方式,android共有五种布局方式,线性布局是比较常用的一种
android:orientation="vertical"属性表明组件以垂直方式排列,即如下图方式
如果希望水平方式,则使用android:orientation="horizontal"

接下去的
android:layout_width="fill_parent" 表示布局的宽度充满父控件
android:layout_height="wrap_content"表示组件的高度根据自身高度

最后
android:text="@string/hello"表示文本内容引用string.xml文件中的hello元素

AndroidManifest.xml文件代码:
      package="com.view.ui"
      android:versionCode="1"
      android:versionName="1.0">
   

   
       
                  android:label="@string/app_name">
           
               
               
           
       

   
每一个Android工程都有一个名为AndroidManifest.xml配置文件,是一个全局配置文件,项目中用到的四大组件(Activity,Service,ContentPrivider,Broadcast Receiver)都要在该文件中声明。以及声明一些权限以及SDK的最低版本等信息。

是找到该Activity的过滤器,这里的action表明该Activity是程序的入口,category属性表明在加载程序时运行。

表明使用的SDK最低版本。

ok。今天的介绍就到这里。
 
 
 
 
阅读(2475) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~