android应用中的组件
这是前段时间写的,组成android的基本概念,根据Beginning Android。这里在对另外一部书Android Application Development中内容作个笔记。
构建一个android应用需要用到四种类型的组件,这些组件类型是android架构中定义的。
Activities
等同于桌面系统中的独立运行的工具,比如office应用。activities是一段可执行的代码,在某个时候开始使用,在某个时候又退出。由用户或者操作系统根据需要才运行。activities可和用户交互,通过查询或者intent请求其他activity或者service。
一般大部分编写的可执行代码是和一个activity上下文相关的。activities通常和屏幕关联:每个activity显示一个屏幕给用户。如果没有activity运行,将被操作系统小会以释放内存。
Services
在桌面或者服务器操作系统中友服务或者守护进程的概念。在android中的service运行在后台,从被实例化运行,直到移动电话关机。一般service不提供用户界面。
一个典型的示例是mp3播放器,通过播放列表书序播放,不需要用户界面。
广播和intent接收者
用于响应从其他应用发出的请求。一个广播接收者响应系统范围声明的事件。这些声明可能来自android自己,比如电池低电量,也可以来自系统中运行的其他程序。一个activity或者service有支持其他应用程序访问其自身功能的能力,通过执行intent接收者,一段短的可执行代码用于响应其他activity。发起请求的应用可以看做客户端,发起一个intent,然后退出,然后android框架决定哪个应用接收intent并执行。
intent是android框架中关键的元素之一,用于从已存在的应用中创建新的应用(mobile mashup)。可使用intent在自己的应用中,用于和其他应用交互,为你的应用提供信息。
内容提供者
用于共享数据给其他activity或者service。内容提供者使用标准的接口,通过uri格式执行其他应用对数据的请求,其他应用甚至可以不知道是在使用哪个内容提供者。比如,一个应用发起对联系人数据的查询,查询uri是这样的格式:
content://contacts/people
操作系统会查找哪个应用注册了对应这个uri的内容提供者,并发送请求到该应用,如果该应用未运行则启动这个应用。如果有多个内容提供者注册了这个请求的uri,操作系统将询问用户选择哪个内容提供者。
一个应用程序不需要使用所有的android组件,不过设计良好的应用程序应该是尽量使用以提供的机制,而不是重新发明功能或者编写硬代码引用另外的应用程序。uri和intent结合使用为android系统提供了非常灵活的用户环境。应用程序易于添加、删除和替代。松散耦合的intent和uri保持了所有事情能在一起工作。
这篇文章上的评论的 RSS feed TrackBack URI