微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Android开发之“hello World”的实现

Android开发之“hello World”的实现

时间:07-23 来源:电子技术应用博客 点击:

按照惯例,同时也是为了更好地引导读者进入精彩的Android世界,我们接下来要实现一个简单的"hello World"例子。这里以Android SDK 2.1为基础基于Eclipse Galileo(Eclipse 3.5)作为IDE来完成开发。

通过"File"→"New"→"Project"创建Android工程,如图1所示。设置"Project name:"为"helloWorld",设置"Build Target"为"Android 2.1",设置"Application name:"为"helloWorld",设置"Package name:"为"com.miaozl.helloWorld",设置"Create Activity:"为"helloWorld"。然后单击"Finish"按钮即可完成工程的创建。

图1 创建Android工程

需要说明的是,在Android的设计中,Android 1.0的SDK版本为"1"、Android 1.1的SDK版本为"2"、Android 1.5的SDK版本为"3"、 Android 1.5的SDK版本为"3"、 Android 1.6的SDK版本为"4"、 Android 2.0的SDK版本为"5"、 Android 2.0.1的SDK版本为"6"、 Android 2.1的SDK版本为"7",Android 2.2的SDK版本为"8",Android 2.3的SDK版本为"9",Android 3.0的SDK版本为"Honeycomb"。在具体SDK版本的选择上,应在考虑技术实现可行性的前提下,选择尽量小的版本,这有利于扩大兼容的物理设备。

在创建Android工程的过程中。由于Eclipse的原因,系统可能会提示"no classfiles specified,Conversion to Dalvik format failed with error 1",如果出现该错误信息,按"F5"键刷新一次工程即可。需要说明的是,在Foryo后,该问题已经很少出现。对于复制过来的工程,可能会引起工程属性方面的问题,这一问题可以通过Android工程的右键菜单选择"Android Tools"→"Fix Project Properties"修复系统属性解决。

另外如果是第一次创建工程, Eclipse会提示用户"Failed to find an AVD compatible with target"。这是由于Android在稍后的版本中不再提供默认的Android虚拟设备(AVD,Android Virtual Device),需要用户自行创建。在Linux中,AVD相关的文件包括userdata.img映像文件,默认情况下存于/root/.android目录中,AVD描述了当前模拟器的设备配置信息。当工程创建完成后,即可在Eclipse的"Package Explorer"中看到Android的工程布局。Eclipse对于所辖工程的维护默认情况下位于/root/workspace/.metedata目录中。如果期望获得一个干净的运行环境,直接删除/root/.android和/root/workspace/.metedata目录即可。

如图2所示为所生成的Android的"helloWorld"工程布局,其中".settings"描述了Eclipse和采用的JDT包的若干信息;".assets"为空目录,描述了工程的断言信息,断言并不常用,常见的用法是维护一些工程的资源文件,但断言对于单个文件有1MB的大小限制。

"bin"为输出文件目录,包含了各源文件对应的CLASS字节码文件、"ap_"格式的资源文件、DEX字节码文件和最终利用"aapt"工具打包的APK格式的Android安装包。需要说明的是APK格式的Android安装包本质上为ZIP格式的压缩包,包含了资源、DEX字节码文件和AndroidManifest.xml等,当系统检测到APK格式的文件时,系统会把它当做一个应用看待。

"gen"为资源数据目录。包含了"aapt"工具在工程内所发现的所有资源数据。

"res"为描述资源的XML文件目录,通常包括"drawable"、"layout"、"values"等子目录,描述了工程涉及的图标、字符串和布局等信息,复杂的应用还涉及"menu"、"color"、"style"等目录。其中布局资源文件为main.xml,字符串资源文件为strings.xml。

"src"为工程源文件目录,包含了开发者创建的Java文件。

".classpath"文件描述了工程涉及的路径信息。

".project"文件描述了工程名、所需的编译命令等工程信息。

"AndroidManifest.xml"则描述了工程实现细节如"manifest"、"application"、"activity"、"intent-filter"、"action"、"category"、SDK版本信息等信息、应用程序的权限等,是Android工程中最重要的文件。

"default.properties"描述了SDK的版本信息。

图2 Android工程布局

对于基于原生代码的应用,在工程下可能还存在"jni"目录用于存放原生源代码,存在"libs"目录,用于存放编译原生源代码生成的动态共享库等。

下面为主要文件的实现细节:

1.src\com\miaozl\helloWorld\helloWorld.java

代码1为"hello World"工程的helloWorld.java文件的内容,在该文件中定义了一个名为"helloWorld"的Activity,并通过setContentView()函数加载该Activity的布局资源文件。

代码1 helloWorld.java

package com.miaozl.helloWorld;
import android.app.Activity;
import android.os.Bundle;
public class helloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //创建Activity
setContentView(R.layout.main); //加载布局资源
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top