Android并发处理最佳做法

Android并发处理最佳做法

      几乎所有的Android开发人员都必须处理并发代码。要做到这一点很难、很苛刻,并且很容易出错。支持这项工作的工具知道合格线而已。

      可以使用一些最佳做法让代码更健壮,更不易受到奇怪且难以诊断的错误的影响。

 

      1、不可变对象是简单且线程安全的。虽然一些开发人员发现集群很讨厌,但用final修饰符明确每个可能的值从而使代码更容易管理。使用Builder模式是创建不可改变对象的这一种好办法。

      2、在单线程(不管是什么线程)上运行的代码很容易理解。如果需要多线程,就要尽量使它保持住。将它隐藏在框架中,这样大多数开发人员不需要意识到它。

      3、作为上一点的推论,尝试让Java类和源代码成为单线程的。太大而不适合放入一个编辑器屏幕的源文件,以及包含在不同线程上运行方法的源文件是肯定会发生意外的。

      4、如果必须让一个类的方法在多个线程上执行,那么就要注解或注释这些方法。代码本身并不会表明线程策略。经常听到的接口:“  代码就是注释 ”  并不适合多线程代码。

      5、非常仔细的检查多线程代码。小心谨慎往往能发现精心计划并良好之星的设计中有微小的疏忽。

      6、使用静态分析。将工具上的报告标准设置得尽可能最低,并且花时间了解他报告的每个异常。在可能时使用多个工具。注解!

      7、将尽可能多的代码移出Activity(和段)。Activity是页面的管理器。它不应该包含业务逻辑。

      8、从Android组件中获取尽可能多的代码。使用一种现在UI模式(MVVM,MVP)从Activity中获取显示逻辑。将你的Service保留为工厂,并通过手工或者使用IoC(控制反转,Inversion of Control)框架注入实现中。这样测试要容易得多。

 

      为长时间运行的任务创建一些简单清晰的执行策略,然后始终如一地使用他们。在可能的情况下,使用运行时断言以验证他们。让遵循这架构变得简单并且成为习惯。

      祝你好运。

 

本文摘自《Android并发 开发》第八章 8.4 结束语和最佳做法

实际开发中有很多并发的情况,书到用时方恨少,纸上得来终觉浅。希望对你有所帮助,正如文末,祝你好远!

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115022.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java自适应网站成品源代码出售 h5网页推广展示型官网CMS系统源码

    java自适应网站成品源代码出售 h5网页推广展示型官网CMS系统源码QQ:464652874项目具体详情点击这企业门户网站系统源代码java响应式企业官网成品源码公司行业通用源代码web网站出售可二次开发源码项目介绍:企业门户网站系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的企业了解和熟知企业门户网站系统的便捷高效,不仅为用户提供了服务,而且也推广了自己,让更多的用户了解自己。对于企业而言,若拥有自己的企业门户网站系统,通过企业门户网站系统让企业的宣传、营销提上一个新台阶,同时提升了企业形象。技术介绍:前端页面自适应,支持PC和H5手机端、平

  • VMware选择VMnet8模式连接外网的方法

    VMware选择VMnet8模式连接外网的方法介绍VMware连接外网的方法,解决虚拟机不能连网的问题。

  • (Keydown,KeyCode)键盘事件的简单使用

    (Keydown,KeyCode)键盘事件的简单使用开发工具与关键技术:VSKeydown,KeyCode作者:听民谣的老猫撰写时间:2019/4/116:15W.A.S.D是我们玩游戏时经常用到的几个键盘按键。通过W来触发游戏人物向上移动,A.S.D分别控制着左下右。也就是为W.A.S.D绑定相应的键盘事件。______键盘事件键盘事件的使用就和鼠标事件原理一样。只不过鼠标事件是通过鼠标的点击来触发,而键盘事件是通…

  • 热部署JRebel的使用

    热部署JRebel的使用JRebel是一套JavaEE开发工具。JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品。JRebel是收费软件,用户可以在JRebel官方站点下载30天的评估版本。Jrebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应…

  • intellj 激活码2021(最新序列号破解)

    intellj 激活码2021(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 【自然语言处理】知识图谱之知识推理「建议收藏」

    【自然语言处理】知识图谱之知识推理「建议收藏」1.知识推理的分类归纳推理归纳推理所推出的结论是没有包含在前提内容中的。由个别事物推出一般性的知识的过程,是以为增殖新知识的过程。演绎推理:在已知领域内的一般性知识的前提下,通过求解一个具体的问题,或者证明一个结论的正确性。它所得出的结论,实际上早已蕴含在一般性的知识的前提中。演绎推理只是将已有的事实揭露出来,因此不能增殖新的知识。确定性推理多数时候是指逻辑推理,具有…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号