Android日志实战——Coverity代码检查日志分析(十六)

一、Coverity概述

        Coverity 是一款快速、准确且高度可扩展的静态分析 (SAST) 解决方案,可帮助开发和安全团队在软件开发生命周期 (SDLC) 的早期解决安全和质量缺陷,跟踪和管理整个应用组合的风险,并确保符合安全和编码标准。

检查内容

质量问题

安全漏洞

测试问题

Java运行时缺陷

二、常见问题——高风险(High)

1、Check of thread-shared field evades lock acquisition (LOCK_EVASION)

        检查线程共享字段避免获取锁。

示例

prinate static MyTestApi mInstance = null;

public static MyTestApi getInstance(List list) {
    if(mInstance == null) {
        synchronized (this){
            mInstance = new MyTestApi();
        }
    }
    return mInstance;
}

        这里可以做如下修改:

private static final class MInstanceHolder {
    static final MyTestApi mInstance = new MyTestApi();
}

public static MyTestApi getInstance(List list) {
    return MInstanceHolder.mInstance;
}

你可能感兴趣的:(Android日志管理,android,日志管理)