天天看点

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 结束语和最佳做法

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

继续阅读