基于android多线程处理技术

基于android多线程处理技术

ID:5994133

大小:27.50 KB

页数:5页

时间:2017-12-30

基于android多线程处理技术_第1页
基于android多线程处理技术_第2页
基于android多线程处理技术_第3页
基于android多线程处理技术_第4页
基于android多线程处理技术_第5页
资源描述:

《基于android多线程处理技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于Android多线程处理技术  摘要:在Android程序的开发过程中,程序运行的流畅性是十分重要的。如果主线程处理的事件耗时过长将会出现ANR(应用程序无响应),导致程序崩溃。这就有必要将耗时较多的事件交给后台线程处理,从而来提升用户体验,改善应用程序性能。该文就Android中多线程技术的使用进行讲解。关键词:Android;多线程;Handler;AsyncTask中图分类号:TN929文献标识码:A文章编号:1009-3044(2013)18-4251-04Android是Google公司历经数年

2、和投资数亿美元开发处出来的的智能手机操作系统,经过多年的发展,Android系统市场份额不断增大,目前已跃居世界第一。基于Android平台的各类人才逐渐成为各大企业争抢的对象。对于Android应用程序的开发有着很大的市场前景。要开发一款好的应用程序,多线程技术的使用是必不可少的。多线程技术可以很好地提升程序的执行效率,提升用户体验。因而很有必要掌握多线程技术。1Android系统组成5Android的系统架构和其他操作系统一样,采用了分层的架构。从架构图看(如图1),android分为四个层,从高层到低层

3、分别是应用程序层(Applications)、应用程序框架层(ApplicationFramework)、系统运行库层(Libraries、AndroidRuntime)和linux核心层(LinuxKernel)。1)应用程序层:Android应用程序层中,所有的应用程序都是使用JAVA语言编写的。我们可以编写自己的核心应用程序。2)应用程序框架:在android中,应用程序所使用的API,开发者可以完全访问。android应用程序的架构设计使得所有开发组件可以非常方便的复用和修改。3)函数库层(Libra

4、ries):Android包含了一些C/C++库,Android系统中的不同的组件都可以使用这些类库。这些类库通过Android应用程序框架为开发者提供开发服务,进行应用程序的开发。4)Android运行时库层(AndroidRuntime):Android使用了自有的AndroidRuntime来执行。5)linux核心层(LinuxKernel):Android系统用的是为2.6的Linux内核版本,主要包含的功能有内存管理(MemoryManagement)机制、安全控制(Security)机制、进程管

5、理(ProcessManagemen)机制、硬件驱动(DriverModel)机制、网络协议栈(NetworkStack)机制等,同时Linux内核也作为硬件和软件栈之间的抽象层(HAL)。52Android开发基本组件1)活动(Activity)是Android中最基本的应用程序组件,在应用程序中,通常一个活动就是一个单独的屏幕。每一个活动都是从活动基类中继承而来,Activity类将会显示由几个Views控件组成的用户接口,并对用户事件做出响应。2)服务(Service)是一段长生命周期的,没有用户界面的

6、程序,在后台一直运行。3)内容提供者(ContentProvider):内容提供者是用来管理和共享应用数据类库,它可以实现多个程序之间的数据共享。4)Intent(意图):Intent在Android起着一个中介的作用,专门用于提供应用组件相互调用时的相关信息,可以实现调用者与被调用者之间的解耦合。5)广播接收器(Broadcastreceiver):可以使用它对外部事件进行过滤,使得应用程序只处理感兴趣的外部事件。3Android中多线程技术的使用在android应用中,UI线程(主线程)超过5秒没响应的话

7、就会抛出无响应异常(ANR)。在通过网络获取下载的大资源文件时,如果处理不当,是很容易出现异常问题的。Android开发框架中提供两种方法来处理这种问题:51)首先,启动一个新的线程来获取下载资源文件,资源获取结束后通过Handler机制发送消息(Message),并同时在UI线程中处理消息,从而达到在异步线程中处理事件(event)的效果,然后通过HandlerMessage方法来更新UI线程;(实现过程见图2)2)使用Android中提供的AsyncTask方式来完成异步操作。AsyncTask是使用ja

8、va.util.concurrent框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。4多线程技术具体实现4.1使用Handler实现多线程我们都知道,在Android中主线程是线程不安全的,也就是说,更新UI界面只能在应用程序的主线程(UI)中进行更新,在子线程中进行UI更新操作是十分

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。