zoukankan      html  css  js  c++  java
  • Android 开发中常见的注意点

    总结一下Android开发中常见的注意点。


    资源

    • 不允许出现 Receiver/AppOps/Cursor/Observer 资源泄露
    • 使用 HandlerThread 要注意退出,否则导致 Thread 和 FD 泄露
    • 不允许出现 global/local references 的 leak 问题
    • 不要多线程调用通过 Binder 返回内容很大的系统接口
    • 不要通过 Binder 传递超过 100K 以上的数据
    • 尽量少注册高频回调监听器

    ANR

    • 耗时操作不要在 UI Thread 执行,防止 ANR 问题发生
    • 应用进程间通信不要使用 broadcast 机制,避免 ANR
    • 不要在 BroadcastReceiver 中 onReceive 函数启动 Thread 进行异步操作
    • 不要在 onCreate 主线程启动的时候使用 Provider 数据库
    • 尽量不要使用静态广播方式接收系统频繁发送的广播

    Crash

    • 针对无法保证部位 Null 的变量要进行非空判断
    • 非 UI 线程不允许进行 UI 更新
    • 不允许通过捕获 RuntimeException 类异常规避问题
    • App 不要使用 setDefaultUncaughtExceptionHandler 方法注册私有异常处理函数
    • 非 Thread Safe 的 list 并发场景下,遍历引发异常
    • Parcel.marshal 不允许含有 binder object
    • parcel.recycle 不允许重复调用多次

    并发

    • 正确使用对象的 wait / notify 同步函数,避免出现死锁等问题
    • 不能使用 double check lock pattern
    • Android 应用进程禁止通过 Fork 创建子线程
    • System_Server 进程中尽量不要启动新的 Thread
    • System_Server 进程中所有 UI 操作要在 UI Thread 上完成
  • 相关阅读:
    Java基础_0205: 程序逻辑结构
    java基础_0204:运算符
    Centos 7 安装MySQL
    Maven 入门
    winx64 MySQL 5.7绿色版安装步骤
    hadoop环境搭建
    配置虚拟机 Linux 静态IP
    JDK开发环境搭建及环境变量配置
    设计模式之命令模式详解(故事版)
    设计模式之 外观模式详解(Service第三者插足,让action与dao分手)
  • 原文地址:https://www.cnblogs.com/joy99/p/7360872.html
Copyright © 2011-2022 走看看