原文:http://tech.it168.com/a2009/0331/270/000000270400.shtml

【IT168 技术文档】以HelloActivity程序为例,简单介绍Android应用程序的框架。希望读者可以根据HelloActivity,自己写出一个Andorid的应用程序。

HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:
development/samples/HelloActivity/
|-- Android.mk
|-- AndroidManifest.xml
|-- res
| |-- layout
| | `-- hello_activity.xml
| `-- values
| `-- strings.xml
|-- src
`-- com
`-- example
`-- android
`-- helloactivity
`-- HelloActivity.java

  其中tests是一个独立的项目,可以暂时不考虑。其他部分看作一个Android的一应用程序的工程。这个工程主要的组成部分如下所示:


Android.mk
是整个工程的“Makefile”,其内容如下所示:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := samples
# Only compile source java files in this apk.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := HelloActivity
LOCAL_SDK_VERSION := current
include $(BUILD_PACKAGE)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

其中LOCAL_PACKAGE_NAME表示了这个包的名字。这个文件是最终生成的包(*.apk)的名称,注意,包的名称和应用程序目录的名称无关,而与这里的HelloActivity的名称有关。


AndroidManifest.xml

工程的描述文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="
http://schemas.android.com/apk/res/android"
package="com.example.android.helloactivity">
<application android:label="Hello, Activity!">
<activity android:name="HelloActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>

  在工程描述文件中,package的名称需要和JAVA文件中包的名称相同,activity 的名称必须和JAVA文件中JAVA类的名称相同,JAVA文件的文件名也必须和其中类的名称相同。
  而那个android:label的名字既是应用程序在菜单中的名字,也是应用程序启动后的标题。


HelloActivity.java
这是JAVA类文件,这个文件的路径表示在Andorid的JAVA包的结构中的位置,这个包的使用方式为com.example.android.helloactivity。

package com.example.android.helloactivity;
import android.app.Activity;
import android.os.Bundle;
public class HelloActivity extends Activity {
public HelloActivity() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_activity);
}
}


AndroidManifest.xml和*.JAVA的名称需要匹配(这里的HelloActivity.java和HelloActivity),否则是找不到JAVA类的。

  程序编译完成后,将生成apk包,将其放置在system/app中即可。除了使用界面启动之外,还可以在QEMU仿真器的启动界面中,使用如下的方式启动:
am start -n com.example.android.helloactivity/com.example.android.helloactivity.HelloActivity

事实上,启动的方法和工程描述文件中包的名称和类的名称有关。

几个注意点:
  1、应用程序文件夹的名称并无实际的影响
  2、Android.mk的LOCAL_PACKAGE_NAME,决定APK包的名称;
  3、AndroidManifest.xml中需要包含包的名称和activity类的名称,并需要和JAVA文件中对应;
  4、AndroidManifest.xml中application android:label的名称既是应用程序在界面中的名称,也是启动后的标题

更多相关文章

  1. Android之SharePreference
  2. 转:Android(安卓)对话框【Dialog】去除白色边框代码
  3. Android(安卓)修改U盘名称
  4. android drawing
  5. arcgis for Android(安卓)100.2 加载shp
  6. Android(安卓)Studio中的build.gradle文件解析
  7. android ramdisk
  8. Android基础知识总结
  9. NPM 和webpack 的基础使用

随机推荐

  1. 安卓自定义 View 进阶:Path 完结篇(伪)
  2. 如何在android中创建自定义导航抽屉
  3. Android常见管理器—短信管理器 SmsManag
  4. android自定义view实现流式布局(FlowLayou
  5. Android之仿B612咔叽滤镜列表操作
  6. 收集一下Android常用的快捷键
  7. Android原生Contacts——界面和数据库
  8. android apk 防止反编译技术第四篇-对抗J
  9. "AndroidStudio 单元测试"-最简单最快的
  10. IOS切图直接作为Android切图使用