1、背景

期望在Android Sudio 上找到可以根据代码快速生成UML图的插件,以提高效率。

适用于

1)方案设计的接口输出,可以先写空的接口,然后直接生成UML图。

2)已经开发过的需求进行后期的设计文档输出,直接针对当前代码生成UML图

2、期望

1)支持通过当前代码快速生成UML图。

2)支持可以选择部份代码生成UML图。

3)支持代码修改时,可以自动更新到UML图上。

4)支持图形界面调整或者操作UML图。

将目前了解的插件介绍下,后续有更优的方案时可以补充上来。

目前优先推荐 SmpleUMLLCE,然后才是 PlantUML integration + PlantUML Parser 

优点

缺点

SmpleUMLLCE

1、根据选择的代码生成UML图

2、修改代码时,UML图会自动更新

3、图形化操作,可以调整UML布局,简单易上手,同时还提供其他功能,如关系线是否显示等。

1、插件已经不更新了。

2、样式有点旧,美观有所不足,包括如果没有构造函数,也会有所提示。

PlantUML integration + PlantUML Parser

1、根据选择的代码生成UML图

2、可以手动修UML代码

1、代码有变化时,UML图不会自动更新,只能重新生成。

2、UML图的布局无法调整,从左往右一直排列

SketchIt

根据当前代码生成UML图

1、强制自动生成,像我们的项目那么多的代码,SketchIt 运行一次,AS直接卡死。

2、无法部份选中,只有在Tools 下能找到。

3、一个文件夹一个UML图。

Code iris

1、Create Graph 后弹框选择,居然只能选择Module,无法细分到某个类,即使你是在类上右键点击选中的。

2、生成的是UML类图,没有类的接口、参数。

3、插件介绍 

3.1 PlantUML

PlantUML是可已通过编写代码的形式生产UML图,具体可以访问 开源工具,使用简单的文字描述画UML图。

3.1.1 PlantUML integration 

PlantUML integration 其实就是最基本的PlantUML插件,右键New 中 会有UML file 可以创建,然后后面by yourself.

使用过程种遇到了两个问题

1)UML图无法生成

android的uml类图 安卓 uml_android的uml类图

需要手动下载、安装Graphviz,设置到PlantUML Settings 里,见下图

android的uml类图 安卓 uml_android studio_02

android的uml类图 安卓 uml_android的uml类图_03

2、图片放大后,右边被截断。虽然缩小可以看得见,但是保存图片后看得很模糊。

手动下载 plantuml.jar,命令生成图片java -DPLANTUML_LIMIT_SIZE=8192 -jar plantuml.jar -charset UTF-8 E:\doc\index.puml

暂时没有发现更好的方案了。

此外还有缺点:

1)要调整只能在PlantUML的代码中调整 ,对于不熟练UML的使用起来不方便。

2)生成UML图是固定的,无法在图形化界面调整位置。长条式,如下

android的uml类图 安卓 uml_UML_04

3)只能自已编辑UML代码来生成UML图,无法快速生成。

前面两个问题,如果插件是基于此开发的,暂时没有方案可以解决。而第三个问题,则是后面的插件期望解决的。

3.1.2 PlantUML Parser

android的uml类图 安卓 uml_android_05

看样子像是个人开发者,星数还行,达到可用状态。需要依赖 PlantUML integration ,如果单独下载这个也会有提示要求下载PlantUML integration 。

 如果只需要部份类时,同时选中右键生成即可。

目前缺点还是很明显:代码修改时,UML 并不会自动刷新,只有覆盖生成。如果涉及到代码比较分散,每次都要一一选中,也会比较麻烦

3.1.1 SketchIt

可以自动升成UML图。

android的uml类图 安卓 uml_android的uml类图_06

缺点

1、强制自动生成,像我们的项目那么多的代码,SketchIt 运行一次,AS直接卡死。

2、无法部份选中,只有在Tools 下能找到。

3、一个文件夹一个UML图。如果说第一个问题可以自已创建个工程来克服,但是包与包之前的联系呢?

也有可能是我使用的方法不对,但没找到有设置的地方。

3.2 SmpleUML

12 年前的插件的,但是反而是比较好用的插件。

android的uml类图 安卓 uml_android的uml类图_07

 要注意的是下载的是simpleUMLLCE,第一次下载了simpleUML,一样的界面,但是无法操作。

下载后,在根目录下,右键新建一个UML项目(如下图),会自动生成当前类的UML图,后续如果有新增的类,可以右键add 到指定的项目中。

也可以一开始就指定部份的类,右键选中文件即可。

android的uml类图 安卓 uml_android_08

第一次生成

android的uml类图 安卓 uml_android_09

展开(上图红框按键),会自动将类平铺(如下图)

android的uml类图 安卓 uml_UML_10

Show Bridview (上图红框)缩略图因为这个没办法直接通过滚轮直接放大缩小。

其他功能在右上角和选中类右键后可自行研究。

优点:

1)图形化操作,更易上手,图形化界面功能强大(需要自已去探索了,比如:对于系统源码的类,UML图点击下,就可以生成对象了)

2)代码更新时,UML也可以自动更新

缺点:

1)无法直接放大或缩小

2)就个人而言,界面美观度需要加强,虽然可以换个皮肤,而且这个插件已经不更新了。

3.3 Code iris

也是网上推荐的,但是目前体验最差的一个吧,也可能还是没有掌握操作方法吧。

一样右键-》 Create Graph

直接上缺点

1、Create Graph 后弹框选择,居然只能选择Module,无法细分到某个类,即使你是在类上右键点击选中的。

2、生成的是UML类图,没有类的接口、参数。

直接弃疗。图就不上了