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

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



相关文章:
2003年逝世人物
(1917-2003.01.03) 北京 解放军后勤学院政治委员,开国少将 王绍渊 (1920-2003.01.03) 北京 兰州军区空军副政治委员,开国少将 沈翰卿 (1903-2003.01.03) ...
03任务
03任务_教育学_高等教育_教育专区。电大,《金融理论前沿》 03 任务试卷总分:100 测试时间:-? 案例分析题 一、案例分析题(共 1 道试题,共 100 分。) 1. ...
翻译练习03
翻译练习03_英语考试_外语学习_教育专区。CATTI教材文章翻译 The football code 橄榄球比赛准则 Football is an aggressive, rugged contact sport. Only the highest...
03任务
03任务_军事/政治_人文社科_专业资料。03 任务_0007 试卷总分:100 1. 测试总分:94 一、不定项选择题(共 30 道试题,共 60 分。) 我国劳动力市场体系已...
03版论文
前轴轮缘的转矩为 Ma= (4) =857.5 0.2 217 =9303.875N (e)由于机器人的速度为 0.03 ,据线速度公式求前轮的转速。 (5) n= n=2.642 上求的转速...
商标注册03类细分
除指甲油制剂 030088, 熏衣草水 030090, 带香味的水 030091, 花露水 030092, 脱毛剂 030096, 脱毛制剂 030096, 除汗毛用蜡 030097, 化妆品 030102, 化妆...
ENC03使用心得
陀螺仪 ENC03 使用心得 上次做小平衡车的时候用了个陀螺仪(ENC03) ,我把测角度串口调试视屏放网上分享 了,几天前有朋友看过想要那个算法,我就把自己的心得...
福利彩票双色球历史号码2003 - 2013年最新
25+03 04 04 06 15 17 30 31+16 04 01 03 10 21 26 27+06 01 01 09 19 21 23 26+07 01 05 08 09 14 17 23+08 05 05 09 18 20 22 30+...
0912_装运通知03
暂无评价 1页 免费 0912 5页 免费 XZ04-03矿石装运须知 暂无评价 2页 1下载券 0912 暂无评价 14页 1下载券喜欢此文档的还喜欢 ...
JSY2000-03型数字程控交换机(256型)使用说明书
49 3 第一章 系统介绍 JSY2000—03 型数字程控交换机是我公司采用国际先进技术, 自行开发研制的新一代通 信产品。 设计时充分考虑到我国多数用户资金有限, ...
更多相关标签: