文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>HelloWorld程序分析

HelloWorld程序分析

时间:2010-08-28  来源:fly123456789

这个程序在我们新建android 项目的时候,这些代码就已经生成了,直接运行就能看到我们都很熟悉的Hello World 在android adt 上,但是这里我主要介绍android程序的运行机制及项目的结构.

项目结构图如下:



这里有几个重要的文件需要记住:

AndroidManifest.xml 这个文件记录了程序一些主要的信息。相关的说明如下所示:

<?xml version="1.0" encoding="utf-8"?>
<!-- 一个独立完整的程序就是在这个以manifest为标头的标签里 ,
package这里定义了程序主运行类的包的路径
versionCode、versionName都是程序版本的说明
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wellen.helloworld"
android:versionCode="1"
android:versionName="1.0">
<!-- application 标签定义了程序窗口的一些信息:
icon 定义了选择这个程序运行的快捷方式的图标
label 定义了程序的名称
-->
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!-- activity 类似于一个场景,很像web 中的一个页面,
这个是构成android程序的基本模块。是一个非常重要的组件以后会详细讲解
这里的activity对应的就是你代码包里的Helloworld -->
<activity android:name=".Helloworld"
android:label="@string/app_name">
<!-- 这里定义了这个activity 的相关属性,
action 中说明了 当前 这个activity 的作用
这里android.intent.action.MAIN 说明这个Activity 是程序的主界面
category 给出了这个Action的附加信息,
android.intent.category.LAUNCHER 说明了 这个它在所有的程序的最顶层
-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<!-- 这里说明了这个程序运行需要 SDK 的最低版本 -->
<uses-sdk android:minSdkVersion="4" />

</manifest>

我们在查看我们的源代码包内的helloworld 这个类继承Activity 我们查看Helloworld的代码


package com.wellen;

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

/**
* Activity 这个类很重要,它是我们程序运行的根本。
* 这里我们要重点的理解的是Activity的生命周期。
* 相关的说明请查看 android 的文档
* 上面有详细的介绍Activity的生命周期。
* @author wellen
*
*/
public class Helloworld extends Activity {
/** Called when the activity is first created. */
/**
* 这个方法是在Activity 类对象构造的时候,首先调用的。
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* 这里调用的是当前的activity 的布局文件,
* 布局文件在项目文档的res/layout 的文件下,
* xml 的文件名为 main.xml
*/
setContentView(R.layout.main);
}

/**
* 这个方法将在当日按的activity的对象变成可见的时候之前调用。
*/
@Override
protected void onStart() {

super.onStart();
}

/**
* 这个方法在用户可以和当前的activity对象交互之前调用
*/
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}


/**
* 当用户要启动其他的activity的时候调用,例如dialog 启动的时候,
* 当前的activity位于 activity 栈的dialog的下方。
* 由于dialog 不能布满全屏幕,这个activity 还是处于可见状态
* 但是activity 又处于不可活动的状态,可能需要保持相关的状态信息
* 这个时候就需要调用这个方法, 来保存当前的状态。方便后来激活的时候,
* 能够准确无误的运行。没有相关的数据差异。
*/
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}

/**
* 当当前的activity 变成不可见的时候
*/
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
}

/**
* 这个方法在当前的activity 需要重新启动的时候
*/
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
}

/**
* 这个方法在当前的activity 不在需要的时候。
* 需要销毁这个activity对象的时候调用
*/
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}




}


我们在查看res 文件夹如图所示:


看到上面的文件夹,这里我说明下上面的文件夹里保存文件的作用

drawable 开头的文件夹 保存了当前的程序需要的图片,这里的 hdpi、ldpi、mdpi 是分别保存了一副内容相同的图片不同像素即清晰度。h 是高清晰,l 是低清晰,m 是中等清晰。这样的原因是:android 的手机屏幕 有不一样的分辨率,这样布置了图片就能够 然程序在不同的大小屏幕下运行 不造成因为图片的原因造成程序的布局出现问题。



layout 文件下 保存了 当前程序的不同的activity的布局。

values 文件下保存了程序显示的字符串,这样我们只需要在这里写不通语言的文字,而程序就能够支持国际化了。

下面我们查看main.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- 这里使用的线性布局 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 定义了一个文档显示栏 @string/hello 就是引用下面strings.xml 文件下的hello标签所对应的内容 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>

下面我们看看 strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 这里定义了一个字符串 hello-->
<string name="hello">Hello World, Helloworld!</string>
<string name="app_name">ApiLearn</string>
</resources>

下面是程序的运行效果图:

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载