Intellij UML Support插件介绍 及 Android Context继承关系

来源:互联网 发布:sql清除注册表 编辑:程序博客网 时间:2024/06/14 02:04

One:

如果想要去研究源码的话,查看源码中类的继承关系是必不可少的。

那么有没有比较给力的,方便查看的工具呢。


在Intellij中,内置UML Support 插件,可以很好地满足我们查看类继承关系的需求

比如想看下ArrayList的继承结构,则右击源码中该类

Diagrams ==> show Diagram.......




其中,实线代表继承关系,虚线代表接口的实现。

是不是很方便也很直观。


TWO:

---------------

那么,如果想要在android studio中也要查看源码中类的这种关系,也怎么做呢

大家都知道,android studio 是基于 intellij的,那么intellij中的功能as 自然也应该有


遗憾的是,经过查资料以及查看as插件的过程,发现as 中并没有UML support这个插件,

网上也暂时找不到对这个功能的第三方支持。


这个时候可能的解决方案有两个,一个是直接使用intellij,因为其实intellij也支持对android的

直接开发

另外就是想想有没有其他的替代方式。

----------------------------------

其实Intellj和 android studio  和 Intellij 还有另外一个查看代码层级的方式,

叫做 Type Hierarchy 

这个功能可以自己设置快捷键来调用

沿用eclipse,我把它的快捷键设为F4



THREE:

现在假设我们想查看Context这个类及其子类的各种关系

那么,进去Context源码 

选中class  后面的Context字符

调用F4快捷键

则可以看到


右边的类的层级都是可以直接展开的,

其实这种方式比使用uml support 的方式更加直观,并且还可以随时点进去查看对应的类的源码。


================================================

OK,我们顺便来分析一下Context的继承结构

Context==》

{

MockContext;

ContextWrapper

}

继续展开



可以看到,其实Service, Application都是直接继承自ContextWrapper的

而Activity则是中间隔了一个ContextThemeWrapper,

这些代表了对Context的不同程度,不同结构的实现。












阅读全文
0 0