千锋android培训学院之高效利用线程(上)

2016-02-26 16:26:18 674浏览

        Google Play上面最差评的应用,应该就是界面卡掉、高耗电、内存占用大的应用。通过用户的使用和差评,即使应用设计画面多么酷炫、创意无限,最后名声都臭了也就没用了。耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功。这就是为什么在开发中确保最优化、运行流畅而且不会使Android系统出问题是至关重要的了。

千锋android培训学院之高效利用线程

        浅谈千锋android培训学院之高效利用线程:

        1、怎么在后台取消一些线程中的动作

        我们知道App运行过程中所有的操作都默认在主线程(UI线程)中进行的,这样App的响应速度就会受到影响。会导致程序陷入卡顿、死掉甚至会发生系统错误。为了加快响应速度,需要把费时的操作(比如网络请求、数据库操作或者复杂的计算)从主线程移动到一个单独的线程中。最高效的方式就是在类这一级完成这项操作,可以使用AsyncTask或者IntentService来创建后台操作。如果选择使用IntentService,它会在需要的时候启动起来,然后通过一个工作线程来处理请求(Intent)。

        使用IntentService时需要注意以下几点限制,这个类不要给UI传递信息,如果要向用户展示处理结果信息请用Activity,每次只能处理一个请求,每一个处理请求过程都不能中断。

        2、怎么保持响应不发生ANR

        从UI线程中移除费时操作这个方式还可以防止用户操作出现系统不响应(ANR)对话框。需要做的就是继承AsyncTask来创建一个后台工作线程,并实现doInBackground()方法。还有一种方式就是自己创建一个Thread类或者HandlerThread类。需要注意这样也会使App变慢,因为默认的线程优先级和主线程的优先级是一样的,除非你明确设定线程的优先级。

        3、怎么在线程中初始化查询操作

        当查询操作正在后台处理时,展示数据也不是即时的,但是你可以使用CursorLoader对象来加快速度,这个操作可以使Activity和用户之间的互动不受影响。使用这个对象后,你的App会为ContentProvider初始化一个独立的后台线程进行查询,当查询结束后就会给调用查询的Activity返回结果。

        4、其它需要注意的方面

        使用StrictMode来检查UI线程中可能潜在的费时操作;使用一些特殊的工具如Systrace或者Traceview来寻找在你的应用中的瓶颈;用进度条向用户展示操作进度;如果初始化操作很费时,请展示一个欢迎界面。

        5、怎么优化网络

        如果没有网络连接,请让你的应用跳过网络操作;只在有网络连接并且无漫游的情况下更新数据;选择兼容的数据格式,把含有文本数据和二进制数据的请求全部转化成二进制数据格式请求;使用高效的转换工具,多考虑使用流式转换工具,少用树形的转换工具;为了更快的用户体验,请减少重复访问服务器的操作;如果可以的话,请使用framework的GZIP库来压缩文本数据以高效使用CPU资源。

        扣丁学堂建议对于Android培训感兴趣的读者,可以先观看扣丁学堂关于Android开发教程视频,在看过真实的讲师授课后,再来选择扣丁学堂是否真正适合自己。

查看更多关于“Android培训资讯”的相关文章>>

标签:

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号