`
daniel_tu
  • 浏览: 178991 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android应用程序的构成

 
阅读更多

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的七个生命周期

 

onCreateonStartonResumeonPauseonStoponDestroyonRestart

 

 

 

Service是一个具有较长的生命周期但是没有用户界面的程序,一般由Activity启动,但是并不依赖于Activity,即当Activity的生命周期结束时,Service仍然会继续运行,直到自己的生命周期结束为止。Service的启动方式有两种:startServicebindService

 

 

 

BroadcastReceiver为用户接收广播通知的组件,当系统或某个应用程序发送广播时,可以使用BroadcastReceiver组件来接收广播消息并做相应处理。发送广播的三个方法:Context.sendBroadcast()sendOrderedBroadcast()sendStickyBroadcast()

 

 

 

ContentProvider用来实现应用程序之间数据共享的类。当需要进行数据共享时,一般利用Content Provider为需要共享的数据定义一个URI,然后其他应用程序通过Context获得ContentResolver并将数据URI传入即可。访问共享资源时,需要为应用程序添加适当的权限。

 

 

 

IntentIntentFilter

 

Intent是一种运行时的绑定机制,在应用程序运行时连接两个不同的组件。一般的应用是通过IntentAndroid系统发出某种请求,然后Android系统会根据请求查询各个组件声明的IntentFilter,找到需要的组件并运行它。

 

ActivityServiceBroadcastReceive组件之间的通信全部使用的是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是由组件名称、ActionDataCategoryExtraFlag六部分组成。

 

1)组件名称:实际上就是一个ComponentName对象,用于标识唯一的应用程序组件;

 

2Action:实际上是一个描述了Intent所触发动作名称的字符串,已经定义好很多字符串常量来表示不同的Action,也可以自定义Action

 

系统定义的常见Action

 

Action_CALL:拨打Data里面封装的电话号码;

 

Action_EDIT:打开Data里指定数据所对应的编辑程序;

 

Action_VIEW:打开能够显示Data中封装的数据的应用程序;

 

Action_MAIN:声明程序的入口,该Action并不会接收任何数据,同时结束后也不会返回任何数据;

 

Action_BOOT_COMPLETEDBroadcastReceive Action的常量,表示系统启动完毕;

 

Action_TIME_CHANGEDBroadcastReceive Action的常量,表示系统时间通过设置而改变。

 

3Data:主要是对Intent消息中数据的封装,主要描述Intent的动作所操作到的数据的URI及类型。不同类型的Action会有不同的Data封装,例如打电话的Intent会封装tel://格式的电话URI,而ACTION_VIEWIntentData则会封装http://格式的URI

 

4Category:是对目标组件类别信息的描述。与Category相关的方法有三个:addCategory添加一个CategoryremoveCategory删除一个CategorygetCategory得到一个CategoryAndroid系统定义了一组静态字符常量来表示Intent的不同类型。

 

系统定义的常见Category

 

CATEGORY_GADGET:表示目标Activity是可以嵌入到其他Activity中的;

 

CATEGORY_HOME:表示目标ActivityHOME Activity

 

CATEGORY_TAB:表示目标ActivityTabActivity的一个标签下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时,一般是通过ActionDataCategory三方面进行检测的。

分享到:
评论

相关推荐

    Android应用的构成 Android应用的构成 Android应用的构成

    Android应用的构成 Android应用的构成 Android应用的构成 Android应用的构成 Android应用的构成 Android应用的构成 Android应用的构成 Android应用的构成 Android应用的构成

    android 应用程序机制

    描述android系统结构和应用程序机制的资料

    Android入门到精通源代码.

    1.3 Android应用程序构成 1.3.1 活动(Activity) 1.3.2 意图(Intent) 1.3.3 服务(Service) 1.3.4 内容提供器(ContentProvider) 1.4 Android网上资源 第2章 搭建Android开发环境 2.1 Android开发环境要求 2.2 ...

    CiyaShop v5.14 -基于WooCommerce的原生Android类亚马逊应用程序java项目源码

    CiyaShop v5.14 -基于WooCommerce的原生Android应用程序 CiyaShop原生Android应用程序是您的购物业务或您的客户购物商店作为代理或自由职业者的完美解决方案。它吸引消费者构成忠诚与尖锐的设计和功能,这对网上商店...

    Android中文学习资料大全

    Android中文学习资料大全 随便列几个 andbook中文版 [publish][1].pdf Android帮助文档(第二部分)开发工具.doc ...Android 应用程序构成.pdf Android 应用程序模块 应用, 任务, 进程, 和线程.pdf 等等。。。不一一列出

    基于Android平台的星座查询软件设计

    3、Android应用程序结构剖析 8 3.1 Android的API 8 3.2 Android应用程序结构解析 9 3.2.1活动 9 3.2.2意图接收器 10 3.2.3服务 11 3.2.4内容提供者 11 3.3 Intent的详细解析 11 3.3.1 Intent的抽象描述 11 3.3.2 ...

    Mindroid.cpp:Mindroid.cpp是一个受Google Android操作系统启发的应用程序框架

    Android的消息传递和并发框架(与Binder IPC机制一起)构成了所有Android应用程序和服务的基础。 消息传递和并发框架主要基于Thread,Looper,Message,MessageQueue和Handler类。 为了方便起见,还有AsyncTask类,...

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part1

    2.3.4 实践演练——演示编译Android程序的两种方法 43 2.4 编译Android kernel 47 2.4.1 获取goldfish内核代码 47 2.4.2 获取msm内核代码 50 2.4.3 获取omap内核代码 50 2.4.4 编译Android...

    android星座查询软件毕业论文

    3、Android应用程序结构剖析 8 3.1 Android的API 8 3.2 Android应用程序结构解析 9 3.2.1活动 9 3.2.2意图接收器 10 3.2.3服务 11 3.2.4内容提供者 11 3.3 Intent的详细解析 11 3.3.1 Intent的抽象描述 11 3.3.2 ...

    android手机短信管理系统论文 完整版

    第3章 android应用程序结构剖析 9 3.1 Android的API 9 3.2 Android应用程序结构解析 10 3.2.1 活动 10 3.2.2 意图接收器 11 3.2.3 服务 11 3.2.4 内容提供者 11 3.3 Intent的详细解析 12 3.3.1 Intent的抽象描述 12 ...

    Android系统架构概述PPT

    Android运行时从下到上又包括了HAL层、应用程序框架层和应用程序层。HAL层主要是为规避GPL而设计的,它将将硬件驱动分成内核空间和用户空间两部分,其中用户空间两部分采用的是商业友好的Apache License。应用程序...

    android 中文帮助手册 开发指南 API

    从这里开始 安装SDK 更新SDK 开发与调试 Hello Android 应用程序解析 记事本教程 开发工具 应用程序模型 应用程序生命周期 开发应用程序 用户界面工具 应用构成部分 数据存储与取回 安全模型 资源管理与多国版本 ...

    认识Android入门的HelloWorld程序

    本文目标有二:一是讲解从Android Studio角度看,一个Android应用程序的项目由哪几部分构成;二是剖析程序是怎么运行的。

    android手机短信管理系统毕业论文

    第3章 android应用程序结构剖析 9 3.1 Android的API 9 3.2 Android应用程序结构解析 10 3.2.1 活动 10 3.2.2 意图接收器 11 3.2.3 服务 11 3.2.4 内容提供者 11 3.3 Intent的详细解析 12 3.3.1 Intent的抽象描述 12 ...

    Android核心技术与实例详解 PDF扫描版

    第2章 Android应用程序的构成 2 1 Android应用程序的解析 2 1 1 目录结构 2 1 2 资源的管理与使用 2 1 3 AndroidManifest xml简介 2 1 4 应用程序的权限 2 2 Android基本组件的介绍 2 2 1 应用程序的生命周期 2 2 2 ...

    android系统框架介绍

    android系统框架介绍,Android系统 = Linux内核 + Android运行时。...Android运行时从下到上又包括了HAL层、应用程序框架层和应用程序层。HAL层主要是为规避GPL而设计的,它将将硬件驱动分成内核空间和用户空间两部分

    Android核心技术与实例详解各章案例1

    Android社交分享平台——口袋微博,Android应用程序的构成,Android常用基本控件,Android事件处理模型,消息广播与服务,手机通信功能开发,桌面组件与多媒体数据采集,Google服务,Android地图搜索应用——美食...

    Android核心技术与实例详解各章案例2

    Android社交分享平台——口袋微博,Android应用程序的构成,Android常用基本控件,Android事件处理模型,消息广播与服务,手机通信功能开发,桌面组件与多媒体数据采集,Google服务,Android地图搜索应用——美食...

    Android核心技术与实例详解各章案例3

    Android社交分享平台——口袋微博,Android应用程序的构成,Android常用基本控件,Android事件处理模型,消息广播与服务,手机通信功能开发,桌面组件与多媒体数据采集,Google服务,Android地图搜索应用——美食...

    Android核心技术与实例详解各章案例4

    Android社交分享平台——口袋微博,Android应用程序的构成,Android常用基本控件,Android事件处理模型,消息广播与服务,手机通信功能开发,桌面组件与多媒体数据采集,Google服务,Android地图搜索应用——美食...

Global site tag (gtag.js) - Google Analytics