当前位置:首页 >> 信息与通信 >>

03


应用程序基础

1 Android 应用程序框架 2 Android 应用程序的组成 3 API 参考文档的使用

1. Android 应用程序框架

HelloActivity 工程的代码的结构如下所示: development/samples/HelloActivity/ |-- Android.mk |-

- AndroidManifest.xml |-- res | |-- layout | | `-- hello_activity.xml | `-- values | `-- strings.xml |-- src `-- com `-- example `-- android `-- helloactivity `-- HelloActivity.java

Android.mk :
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))

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>

HelloActivity.java : 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); } }

hello_activity.xml : <?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text“ android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="18sp“ android:autoText="true" android:capitalize="sentences“ android:text="@string/hello_activity_text_text" /> string.xml : <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello_activity_text_text">Hello, World!</string> </resources>

HelloActivity.apk 是最终生成的应用程序包,经过解压缩后 ,包含了下面的一些内容: HelloActivity.apk/ |-- AndroidManifest.xml (经过 aapt 处理的工程描述文件) |-- META-INF | |-- CERT.RSA | |-- CERT.SF | `-- MANIFEST.MF |-- classes.dex ( Dalvik 的字节码) |-- res | `-- layout | `-- hello_activity.xml (经过 aapt 处理的布局文件) `-- resources.arsc

2. Android 应用程序的组成

Android 的应用包生成过程
源程序部分 JAVA 源代码 AndroidManifest .xml 资源文件

JAVA编译器 aapt 进行处理 Class字节码 dx工具 处理 aapt 进行处理

Dex字节码 aapt放置到 根目录

处理后的 AndroidManifest .xml aapt放置到 根目录

处理后的 资源文件 aapt放置到 在res目录

包的Meta信息 APK包

一般情况 Android 应用程序是由以下四种 组件构造而成的: ? 活动( Activities ) ? 广播接收器 (BroadcastReceiver) ? 服务( Services ) ? 内容提供者( ContentProviders )

活动( Activities ) 活动是最基本的 Andorid 应用程序组件, 应用程序中,一个活动通常就是一个单独的屏 幕。每一个活动都被实现为一个独立的类,并 且从活动基类中继承而来 , 活动类将会显示由 视图控件组成的用户接口,并对事件做出响应。 大多数的应用是由多屏幕显示组成。

广播接收器 (BroadcastReceiver) BroadcastReceiver 用于让应用对一 个外部的事件做出响应。例如:当电话呼入时 ,数据网络可用时,或者到了晚上时。 服务( Services ) 一个服务是具有一段较长生命周期且没有用 户界面的程序。例如:一个正在从播放列表中 播放歌曲的媒体播放器。

内容提供者( ContentProviders ) 应用程序能够将它们的数据保存到文 件、 SQLite 数据库中,甚至是任何有效的设 备中。当需要将应用数据与其它的应用共享时 ,内容提供其将会很有用。一个内容提供者类 实现了一组标准的方法,从而能够让其它的应 用保存或读取此内容提供器处理的各种数据类 型。

活动的生命周期

服务的生命周期

广播接收器的生命周期: 广播接收器有一个单一的回调函数 onReceive() ,当广播消息到达接收器的时 候, Android 将调用这个函数,并传递给包含 在这个消息中的 Intent 对象。 广播接收器只有在这个方法执行的过程中是 活动的,当 onReceive() 返回后,广播接收 器是非活动的。

3. API 参考文档的使用

Android API 参考文档
参考文档的内容: ? 包的索引 ? 类的索引 包( Package )的内容: ? Interfaces ? Classes ? Enums ? Exceptions

Android API 参考文档
类( Class )中包含的内容: ? 扩展和实现的内容 ? 按包名的继承关系(可用于反找包) ? Overview (概览) ? XML Attributes ( XML 的属性) ? Constants (常量) ? Constructors (构造函数) ? Methods (方法)

Android API 参考文档
Activity 类的帮助信息:
public class Activity extends ContextThemeWrapper implements ComponentCallbacks KeyEvent.Callback LayoutInflater.Factory View.OnCreateContextMenuListener Window.Callback java.lang.Object ? android.content.Context ? android.content.ContextWrapper ? android.view.ContextThemeWrapper ? android.app.Activity Known Direct Subclasses ActivityGroup, AliasActivity, ExpandableListActivity, ListActivity Known Indirect Subclasses LauncherActivity, PreferenceActivity, TabActivity

Android API 参考文档
public class :表示只是一个公开的类; extends [……] : 标明了这个类继承的父类( Java 不支持多继 承,因此每个类只有一个唯一的父类),后面的内容 表示这个类从祖先开始继承的关系。这里的类使用的 是包含了其所在包名称的全名,因此在这里可以得知 类及其祖先类属于哪个包; Implements [……] : 标明了这个类实现的接口(可以有多个); Known Direct Subclasses [……] :这个类的直接继承者; Known Indirect Subclasses [……] :这个类的间接继承者。


相关文章:
合同法03任务
合同法03任务_电大_成人教育_教育专区。合同法 03 任务一、单项选择题(共 20 道试题,共 40 分。 ) 1. 张某与租赁公司签订小汽车借用合同,合同约定了租金和...
商标注册03类细分
除指甲油制剂 030088, 熏衣草水 030090, 带香味的水 030091, 花露水 030092, 脱毛剂 030096, 脱毛制剂 030096, 除汗毛用蜡 030097, 化妆品 030102, 化妆...
水泥厂设备安装验收规范JCJ-03-90
水泥厂设备安装验收规范JCJ-03-90_建筑/土木_工程科技_专业资料。第一章 总则 第一节 主题内容与适用范围及一般规定 第 1.1.1 条 主题内容与适用范围 一、本...
《工程项目管理》第03章在线测试
《工程项目管理》第 03 章在线测试《工程项目管理》第 03 章在线测试 剩余时间:54:32 答题须知:1、本卷满分 20 分。 2、答完题后,请一定要单击下面的“...
《西方经济学(宏观)》第03章在线测试
《西方经济学(宏观)》第03章在线测试_经济学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档《西方经济学(宏观)》第03章在线测试_经济学_高等教育_教育...
《合同法》03任务_图文
《合同法》03任务_电大_成人教育_教育专区。电大形成性考试03任务 合同法 03 任务一、单项选择题(共 20 道试题,共 40 分。 ) 1. 张某与租赁公司签订小汽车...
《商务谈判》第03章在线测试
《商务谈判》第03章在线测试_计算机软件及应用_IT/计算机_专业资料。《商务谈判》第 03 章在线测试《商务谈判》第 03 章在线测试 答题须知:1、本卷满分 20 分...
ISO 105 E03氯水
ISO 105 E03氯水_学习计划_计划/解决方案_实用文档。ISO氯漂牢度ISO ISO 105-E03:1994(E) 氯水洗色牢度(泳池水) 1. 仪器和试剂 1.1 合适的仪器应包括一个...
《建筑工程定额与预算》第03章在线测试
《建筑工程定额与预算》第03章在线测试_工学_高等教育_教育专区。郑大网络教育、习题、答案 《建筑工程定额与预算》第 03 章在线测试《建筑工程定额与预算》第 03...
word2003的三种页码设置方法
word2003 的三种页码设置方法 在使用 Word 时,经常要根据实际情况来编排页码,那么只要掌握了下面列出的 几种常见页码的编排方法,就可以做到 word 页码随意定: 一...
更多相关标签: