Android工具HierarchyViewer 代码导读(2) -- 创建Eclipse调试环境

在上文<Android工具HierarchyViewer 代码导读(1) -- 功能实现演示>中,咱们介绍了HierarchyViewer主要技术点的实现。虽然咱们尚未涉及到HierarchyViewer的源代码,可是利用上节所讲到的知识,读者甚至已经能够实现一个本身的HierarchyViewer了。html

 

本文的内容比较轻松,咱们将介绍如何把Android源代码中的HierarchyViewer项目和依赖项目导入Eclipse中,经过Eclipse阅读和调试将提升咱们理解的效率,所谓磨刀不误砍柴工。android

 

若是你没有安装Eclipse,能够在Eclipse官网下载Eclipse IDE for Java Developers。本文的讲解基于Android4.0 ICS,关于源代码的下载与编译,网络上已经有不少资料,咱们这里再也不多作介绍,不过因为主站因为某些缘由很难同步成功,建议你们从镜像服务器codeaurora.org下载,能够参考<更换 codeaurora.org 的 repo 源解决同步缓慢问题>一文。api

 

1,导入HierarchyViewer和HierarchyViewerlib服务器

打开Eclipse,打开File-> Import –> Existing Projects into Workspace,点击Next网络

image

 

选择从~/Android-Source/sdk/hierarchyviewer2/app中导入hierarchyviewer项目。(做者的Android源代码地址为~/Android-Source)app

重复上面的步骤,从~/Android-Source/sdk/hierarchyviewer2/libs/hierarchyviewerlib导入hierarchyviewerlib项目。eclipse

 

2, 导入ddmlib和ddmuilib项目ide

ddmlib和ddmuilib是许多Android SDK工具共同依赖的包,你能够选择不导入这两个项目而直接引入jar文件,若是你已经编译了Android源代码,你能够在~/Android-Source/out/host/liunx-x86/framwork/目录下找到ddmlib.jar和ddmuilib.jar,或者从Android SDK中的\tools\lib目录下找到他们。函数

 

ddmlib包含了adb的api,若是你对adb的初始化和通讯感兴趣,最好导入这两个工程,从如下目录导入:工具

~/Android-Source/sdk/ddms/libs/ddmlib

~/Android-Source/sdk/ddms/libs/ddmuilib

 

导入后,可能没法编译它们,这是因为源代码中的重载函数都没有加上@Override声明,而eclipse默认把这个看成error来处理。咱们须要修改一下项目的设置:

打开ddmlib和ddmuilib的工程属性对话框,选择Java compiler->Error/Warnings,在Annotations节点下,把“Missing’@Override’ annotation”的错误级别从“Error”改成“Warning”或者“Ignore”

image

 

3, 添加jar文件引用

最后,为项目添加通用的jar文件引用,这些jar文件均可以在~/Android-Source/out/host/liunx-x86/framwork/或者Android-SDK\tools\lib目录下找到:

ddmulib须要添加的引用:

image

 

HierarchyViewerlib项目须要添加的引用:

image

 

 

HierarchyViewer项目须要添加的引用:

image

 

特别须要注意的是,swt.jar在Android-SDK\tools\lib下的x86和x86_64目录下有2个版本,必须根据你机器的jre是32位仍是64位的,来选择正确的版本,不然的话虽然编译能经过却没法运行。

 

4,调试启动

这时,全部的项目都一个编译经过了,调试启动HierarchyViewer,选择入口点com.android.hirarchyviewer 启动:

image

 

5,在线阅读网址

最后,介绍一个在线阅读Android源代码的地址http://androidxref.com/,网站提供了很是方便的搜索、变量引用和类型定义导航功能。虽然没法调试,但也是一个不错的选择。

 

本文由知平软件刘斌华原创,转载请注明出处。

知平软件致力于移动平台自动化测试技术的研究,咱们但愿经过向社区贡献知识和开源项目,来促进行业和自身的发展。

相关文章
相关标签/搜索