Android应用程序的目录结构
src目录:存放的是项目的源代码;
gen目录:ADT自动生成的,不需要人为地修改;
assets目录:存放项目相关的资源文件;在程序中可以使用"getResources.getAssets().open("test.txt")"得到资源文件的输入流InputStream对象;
res目录:存放应用程序中经常使用的资源文件,包括图片、声音、布局文件及参数描述文件等,以drawable开头的三个文件夹用于存储.png、.9.png 、.jpg等图片资源;
AndroidManifest.xml文件:应用程序的系统控制文件;
default.properties文件:默认的配置文件。
Android基本组件的介绍:
应用程序的生命周期:
前台进程:当前正在前台运行的进程,最重要的进程;除非系统的内存已经到不堪重负的情况,否则系统是不会中止该进程;
可见进程:一般还是显示在屏幕中,但是用户并没有直接与之进行交互,非常重要;除非为了保证前台进程的正常运行,否则Android系统一般是不会将该进程中止的;
服务进程:拥有Service的进程,该进程一般是在后台为用户服务的;一般情况下,Android系统是不会将其中断的,除非系统的内存已经达到崩溃的边缘,必须通过释放该进程才能保证前台进程的正常运行,才可能将其中止;
后台进程:一般对用户作用不大,缺少该进程并不会影响用户对系统的体验;如果系统需要中止某个进程才能保证系统正常运行,那么会有非常大的几率将该进程中止;
空进程:对用户没有任何作用的进程,该进程一般是为缓存机制服务的,当系统需要中止某个进程以保证系统的正常服务时,会首先将该进程中止。
Activity的七个生命周期:
onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart。
Service:是一个具有较长的生命周期但是没有用户界面的程序,一般由Activity启动,但是并不依赖于Activity,即当Activity的生命周期结束时,Service仍然会继续运行,直到自己的生命周期结束为止。Service的启动方式有两种:startService和bindService。
BroadcastReceiver:为用户接收广播通知的组件,当系统或某个应用程序发送广播时,可以使用BroadcastReceiver组件来接收广播消息并做相应处理。发送广播的三个方法:Context.sendBroadcast()、sendOrderedBroadcast()和sendStickyBroadcast()。
ContentProvider:用来实现应用程序之间数据共享的类。当需要进行数据共享时,一般利用Content Provider为需要共享的数据定义一个URI,然后其他应用程序通过Context获得ContentResolver并将数据URI传入即可。访问共享资源时,需要为应用程序添加适当的权限。
Intent和IntentFilter:
Intent是一种运行时的绑定机制,在应用程序运行时连接两个不同的组件。一般的应用是通过Intent向Android系统发出某种请求,然后Android系统会根据请求查询各个组件声明的IntentFilter,找到需要的组件并运行它。
Activity、Service及BroadcastReceive组件之间的通信全部使用的是Intent,但是各个组件使用的Intent机制不同。
(1)Activity组件:激活一个Activity组件时,需要调用Context.startActivity()或Context.startActivityForResult()方法来传递Intent;
(2)Service组件:启动或绑定Service组件时,会通过Context.startService()和
Context.bindService()实现Intent的传递;
(3)BroadcastReceive组件:一般通过Context.sendBroadcast()、sendOrderedBroadcast()和sendStickyBroadcast()方法传递的,当BroadcastIntent被广播后,所有IntentFilter过滤条件满足的组件都将被激活。
Intent是由组件名称、Action、Data、Category、Extra及Flag六部分组成。
(1)组件名称:实际上就是一个ComponentName对象,用于标识唯一的应用程序组件;
(2)Action:实际上是一个描述了Intent所触发动作名称的字符串,已经定义好很多字符串常量来表示不同的Action,也可以自定义Action。
系统定义的常见Action:
Action_CALL:拨打Data里面封装的电话号码;
Action_EDIT:打开Data里指定数据所对应的编辑程序;
Action_VIEW:打开能够显示Data中封装的数据的应用程序;
Action_MAIN:声明程序的入口,该Action并不会接收任何数据,同时结束后也不会返回任何数据;
Action_BOOT_COMPLETED:BroadcastReceive Action的常量,表示系统启动完毕;
Action_TIME_CHANGED:BroadcastReceive Action的常量,表示系统时间通过设置而改变。
(3)Data:主要是对Intent消息中数据的封装,主要描述Intent的动作所操作到的数据的URI及类型。不同类型的Action会有不同的Data封装,例如打电话的Intent会封装tel://格式的电话URI,而ACTION_VIEW的Intent中Data则会封装http://格式的URI。
(4)Category:是对目标组件类别信息的描述。与Category相关的方法有三个:addCategory添加一个Category,removeCategory删除一个Category和getCategory得到一个Category。Android系统定义了一组静态字符常量来表示Intent的不同类型。
系统定义的常见Category:
CATEGORY_GADGET:表示目标Activity是可以嵌入到其他Activity中的;
CATEGORY_HOME:表示目标Activity为HOME Activity;
CATEGORY_TAB:表示目标Activity是TabActivity的一个标签下Activity;
CATEGORY_LAUNCHER:表示目标Activity和应用程序中最先被执行的Activity;
CATEGORY_PREFERNCE:表示目标Activity是一个偏好设置的Activity。
(5)Extra:封装了一些额外的附加信息,这些信息是以键值对的形式存在的。Intent可以通过putExtras()与getExtras()方法来存储和获取Extra。在Android系统的Intent类中,定义了常见的Extra键值。
系统定义的常见Extra:
EXTRA_BCC:装有邮件密送地址的字符串数组;
EXTRA_EMAIL:装有邮件发送地址的字符串数组;
EXTRA_UID:使用ACTION_UID_REMOVED动作时,描述删除用户的id;
EXTRA_TEXT:当使用ACTION_SEND动作时,描述要发送文本的信息。
IntentFilter实际上相当于Intent的过滤器,一个应用程序开发完成后,需要告诉Android系统自己能够处理哪些隐性的Intent请求,这就需要说明IntentFilter。
IntentFilter过滤Intent时,一般是通过Action、Data及Category三方面进行检测的。
相关推荐
### Android应用的构成 在深入探讨Android应用的构成之前,我们先来了解一下Android应用的基本概念。Android应用是由一系列组件组成的,这些组件共同协作以提供功能和服务。本文将详细介绍构成Android应用的主要...
### Android应用程序开发知识点详解 #### 一、Android概述 Android是一种基于Linux内核的开源移动设备操作系统,由Google公司和开放手机联盟领导及开发。它主要用于触摸操作的手持设备上,如智能手机和平板电脑等...
描述android系统结构和应用程序机制的资料
在Android应用程序设计中,开发者需要掌握一系列技术和工具来创建功能丰富的移动应用。本主题主要聚焦于Android系统的架构、开发环境的搭建以及应用的基本组件。以下是对这个主题的详细阐述: 一、Android系统架构 ...
在Android应用程序开发中,源代码是开发者的心血结晶,它揭示了应用的内部工作机制和逻辑。这份"Android应用程序开发源代码"的压缩包文件显然包含了完整的Android应用开发流程中的所有关键部分,对于初学者和有经验...
Android应用程序框架是构建Android应用的核心组成部分,它为开发者提供了丰富的工具和组件,使得开发者能够高效地开发出功能丰富、用户体验良好的移动应用。在Android中,MVC(Model-View-Controller)设计模式是一...
Android应用程序框架是构成Android应用程序的基本结构,它定义了应用程序如何与Android操作系统交互以及如何管理和控制应用程序的行为。Android应用开发主要依赖于Java语言,通过调用Android提供的各种API来实现功能...
这个压缩包"88个经典Android应用程序打包下载(源代码).zip"包含了88款Android应用的源代码,为开发者提供了宝贵的参考资料。这些应用可能涵盖各种类型,如社交、游戏、工具、音乐、视频等,通过研究它们,开发者...
首先,Android应用程序由多个组件构成,主要包括Activity、Service、BroadcastReceiver、ContentProvider和Intent。Activity是用户界面的入口,负责处理用户交互;Service则在后台运行,执行长时间任务,不与用户...
Android应用程序由多个组件构成,包括Activity、Service、Broadcast Receiver和Content Provider等。这些组件共同协作来完成特定的任务。 **5.2 应用程序包含的各个文件** 应用程序中的每个组件都需要对应的XML...
### Android应用程序开发宝典-基于TE&OK6410 #### 一、概述 《Android应用程序开发宝典-基于TE&OK6410》是一份详尽的指南文档,旨在帮助开发者们掌握如何利用Android平台进行应用程序的开发,特别是在针对特定硬件...
Android 电子书阅读器毕业设计论文涵盖了 Android 平台的相关理论、关键技术、系统架构、应用程序构成、工作机制、手机电子阅读器需求分析、应用程序设计和实现、测试和优化等方面的知识点,为 Android 应用程序开发...
Android应用程序是由一系列组件构成,这些组件包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供者(Content Provider)和意图(Intent)等。 1. **活动(Activity)** - 活动...
在Android应用程序开发中,开发者需要理解并掌握一系列关键知识点,这些知识点构成了应用开发的基础,并且与设计思想密切相关。本文将深入探讨这些核心概念,旨在帮助开发者不仅能够编写代码,更能理解其背后的逻辑...
《Android程序设计与应用》是一本深入探讨Android应用程序开发的权威指南。这本书涵盖了从基础知识到高级技术的全方位内容,旨在帮助读者掌握Android平台上的软件开发技能。以下将详细阐述书中涉及的一些关键知识点...
#### 15.3 Android应用程序构成 Android应用程序主要由以下几个部分组成: - **活动(Activity)**:表示一个屏幕,用户可以在其中与应用程序交互。 - **意图(Intent)**和**意图过滤器(IntentFilter)**:...
在本资源中,"88个经典Android应用程序打包下载【精品】.zip" 提供了88个Android应用的源代码,这对于初学者或者想要深入理解Android开发的开发者来说是一份宝贵的资料。以下是对这些知识点的详细说明: 1. **...
1. **Android应用程序基础**:每个Android应用都是由一系列组件构成的,如Activity(活动)、Service(服务)、BroadcastReceiver(广播接收者)和ContentProvider(内容提供者)。通过分析源代码,你可以看到这些...