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

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】 一、判断题,共 33 题, 总分:33 分。请直接点击选择 True or False. 1.运算器(ALU)...
互译03-17
互译03-17_法律资料_人文社科_专业资料。03-17 英汉互译【英译汉】翻译试题由两部分组成。本部分是英译汉,要求考生把前面阅读理解文章中画线的五个句子译 成...
期末试题03
期末试题03_五年级数学_数学_小学教育_教育专区 暂无评价|0人阅读|0次下载|举报文档期末试题03_五年级数学_数学_小学教育_教育专区。___ ___...
整改表03
整改表03_电力/水利_工程科技_专业资料。表7 长城家园2# 工程质量整改情况报告书许昌市工程质量监督站: 接你站 2017 年 1 月 13 日建设工程质量整改通知书, ...
图解如何在powerpoint2003中插入Flash动画
文档贡献者 ylcx689 贡献于2013-03-28 1/2 相关文档推荐 图解将flash插入到Power... 4页 免费 在PowerPoint2003中插入... 5页 免费 如何在ppt中插入...
UL310_2003中文版_图文
沿着凹槽升起的面,两边高度应限制在 0.001 英寸(0.03mm)的范围内 6.3.2 对于在温升及热循环测试中的双端标准端子,应有如图 6.5 所示结构。 7.绝缘 7.1...
03施工进度计划
03施工进度计划_建筑/土木_工程科技_专业资料。山东高速 2017 年养护维修专项工程 设计施工总承包项目 JT 菏关段 施工进度计划 山东省路桥集团有限公司 山东高速 ...
03试卷_0001
03试卷_0001_法学_高等教育_教育专区。03 试卷_0001 一、名词解释(共 5 道试题,共 25 分。) 1. 专利权的终止 是指专利权保护期限已满或由于某种原因专利权...
材料力学第三章-03 纯剪切
材料力学第三章-03 纯剪切_材料科学_工程科技_专业资料。3-3 纯剪切 刚性圆环绕轴线发生相对转动 8-2 20:00 四、剪切胡克定律 回忆:拉压胡克定律:横截面上...
翻译练习03
翻译练习03_英语考试_外语学习_教育专区。CATTI教材文章翻译 The football code 橄榄球比赛准则 Football is an aggressive, rugged contact sport. Only the highest...
更多相关标签: