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

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 13:01 我要评论(0)

在上文<Android工具HierarchyViewer 代码导读(1) -- 功能实现演示>中,我们介绍了HierarchyViewer主要技术点的实现。虽然我们还没有涉及到HierarchyViewer的源代码,但是利用上节所讲到的知识,读者甚至已经可以实现一个自己的HierarchyViewer了。

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

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

1,导入HierarchyViewer和HierarchyViewerlib

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

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

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

2, 导入ddmlib和ddmuilib项目

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 @Overrideannotation 的错误级别从 Error 改为 Warning 或者 Ignore

3, 添加jar文件引用

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

ddmulib需要添加的引用:

HierarchyViewerlib项目需要添加的引用:

HierarchyViewer项目需要添加的引用:

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

4,调试启动

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

5,在线阅读网址

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

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

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

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...