Android 源码 crash 隐患静态扫描工具--GodEyes-android介绍

来源:互联网 发布:大卖家淘宝流量互刷 编辑:程序博客网 时间:2024/06/10 03:11

Godeyes专注于无线App代码Crash隐患静态扫描,主要有以下特性: 
1. 扫描规则提取来自APP的典型crash案例代码,并且在持续增加中。 
2. 覆盖已有无线代码扫描工具(findbugs、PMD、checker等)的扫描盲区。 
3. 准确率不低于90%。 
4. 支持Android、iOS APP代码扫描。 
5. 客户端工具安装部署快捷,Eclipse插件版本、Mac一键式命令行版本。 
6. 扫描规则可定制,提供多种格式的扫描报告。 
简单介绍

一个典型的过程是每次完成你的 Android 项目的迭代后,就使用 GodEyes 扫描一次你的工程的代码。然后打开扫描结果,定位到上面列举的存在隐患的代码,确认一下是否存在隐患,然后对问题代码进行修改,这样就大大增加项目的稳定性。

GodEyes-Android 还有一个兄弟 GodEyes-iOS,顾名思义,GodEyes-iOS 所针对的是 iOS APP 源码的静态扫描。

下文将重点介绍 GodEyes-iOS

环境依赖

. 用户使用本插件需要安装的Eclipse的最低版本至少是:3.6.2 (Helios)。(Eclipse版本) 
. 推荐使用 Android Studio 1.2.2 或以上版本。(Android Studio版)

GodEyes下载

. http://godeyes.duapp.com/ 
. 本文使用Eclipse V2.2版本进行讲解.

安装插件

安装过godeyes插件,把Eclipse的plugins目录中com.baidu.godeyes_*..0.0.jar包和com.baidu.godeyes_.*.0.0文件夹删除即可。 

未安装过godeyes插件将插件com.baidu.godeyes_*.*.0.0.jar拷贝到Eclipse的安装目录的plugins目录(例如:D:\eclipse\plugins\)下,重启Eclipse即可。

插件使用

  1. 配置插件:Export HTML:输出报告的目录 
    配置插件 

  2. 根据提示配置扫描规则 
    配置扫描规则 

  3. 运行插件:Eclipse上选择需要扫描的工程点击鼠标右键,执行Run Godeyes即可。 
    运行插件
<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">com</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.mydemo</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.com</span> begins to scan...Analyzing cost <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">47299</span> ms.scan finished.The scan report is : D:/<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">com</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.mydemo</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.com</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.html</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>


4. 去之前配置好的输出报告目录下查看报告 
扫描结果 

5.点进去之后就能看到各隐患以及推荐的解决方案。 
推荐解决方案

常见的两个FAQ

  1. 为什么输出的报告中中文会出现乱码? 
    读取源码时默认采用utf-8的方式读取的文件,所以如果使用的中文的gbk编码会出现乱码,请自行调整文件格式。

  2. 为什么执行完之后没有结果? 
    一个可能的原因就是没有编译成功,插件本身没有正常的提取出程序中的方法调用,所以输出的结果就是空的。

0 0
原创粉丝点击