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

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 [……] :这个类的间接继承者。


相关文章:
盐雾试验标准操作规范ASTMB117-03[2]
盐雾试验标准操作规范ASTMB117-03[2]_林学_农林牧渔_专业资料。盐雾试验仪器标准操作规范 ASTM B117-03 1. 范围 该规范包括仪器设备,程序和建立及保持盐雾试验环...
电大土木工程力学03任务0005
电大土木工程力学03任务0005_理学_高等教育_教育专区。电大土木工程力学03任务000503 任务_0005 试卷总分:100 测试时间:-- 试卷得分:0 一、单项选择题(共 10 道...
《合同法》03任务_图文
《合同法》03任务_电大_成人教育_教育专区。电大形成性考试03任务 合同法 03 任务一、单项选择题(共 20 道试题,共 40 分。 ) 1. 张某与租赁公司签订小汽车...
电大现代汉语专题形成性考核03任务答案
电大现代汉语专题形成性考核03任务答案_文学_高等教育_教育专区。电大现代汉语专题形成性考核 03 任务一、判断题(共 20 道试题,共 20 分。) “他看书”这个句子...
商标注册03类细分
除指甲油制剂 030088, 熏衣草水 030090, 带香味的水 030091, 花露水 030092, 脱毛剂 030096, 脱毛制剂 030096, 除汗毛用蜡 030097, 化妆品 030102, 化妆...
水泥厂设备安装验收规范JCJ-03-90
水泥厂设备安装验收规范JCJ-03-90_建筑/土木_工程科技_专业资料。第一章 总则 第一节 主题内容与适用范围及一般规定 第 1.1.1 条 主题内容与适用范围 一、本...
《应用写作》第03章在线测试
《应用写作》第03章在线测试_文学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档《应用写作》第03章在线测试_文学_高等教育_教育专区。第一题、单项选择...
郑州大学《项目管理》第03章在线测试
郑州大学《项目管理》第03章在线测试_管理学_高等教育_教育专区。《项目管理》第 03 章在线测试《项目管理》第 03 章在线测试 答题须知:1、本卷满分 20 分。 ...
ISO 105 E03氯水
ISO 105 E03氯水_学习计划_计划/解决方案_实用文档。ISO氯漂牢度ISO ISO 105-E03:1994(E) 氯水洗色牢度(泳池水) 1. 仪器和试剂 1.1 合适的仪器应包括一个...
一部电脑同时装了office03和07,如何更改office03和07的...
一部电脑同时装了office03和07,如何更改office03和07的默认打开方式_电脑基础知识_IT/计算机_专业资料。更改office03和07的默认打开方式同时...
更多相关标签: