nl101531
V2EX  ›  Kotlin

给学习 kotlin 以及 Java 的小伙伴提供的 IDEA 反编译插件.

  •  
  •   nl101531 · Feb 4, 2018 · 5207 views
    This topic created in 3193 days ago, the information mentioned may be changed or developed.

    原版插件是 ASM Bytecode Outline. 这款插件翻译成字节码指令,看起来比较晕.个人改了一个版本(没有提交到 JB 仓库,需要自己去 github 下载),加入了 cfr decompile 选项,看起来更加清晰.

    举个例子

    kotlin 代码

    data class TableModel(val tableName: String,
                          val columns: List<ColumnModel>) {
    }
    

    cfr decompile 反编译后则是,是不是一下子就明白 data 的作用了呢

    public final class TableModel {
        @NotNull
        private final String tableName;
        @NotNull
        private final List<ColumnModel> columns;
    
        @NotNull
        public final String getTableName() {
            return this.tableName;
        }
    
        @NotNull
        public final List<ColumnModel> getColumns() {
            return this.columns;
        }
    
        public TableModel(@NotNull String tableName, @NotNull List<ColumnModel> columns) {
            Intrinsics.checkParameterIsNotNull((Object)tableName, (String)"tableName");
            Intrinsics.checkParameterIsNotNull(columns, (String)"columns");
            this.tableName = tableName;
            this.columns = columns;
        }
    
        @NotNull
        public final String component1() {
            return this.tableName;
        }
    
        @NotNull
        public final List<ColumnModel> component2() {
            return this.columns;
        }
        .... 等等
    

    插件给需要的朋友:

    https://github.com/mrdear/asm-bytecode-intellij

    11 replies  •  2018-02-05 10:03:19 +08:00
    nl101531
    nl101531
    OP
    Feb 4, 2018
    1
    使用方式也比较简单,在 IDEA 中对着代码文件右键选择反编译即可
    ![]( http://oobu4m7ko.bkt.clouddn.com/1517730280.png?imageMogr2/thumbnail/!70p)
    ovear
    ovear
    Feb 4, 2018
    2
    感谢 LZ
    aristotll
    aristotll
    Feb 4, 2018
    3
    虽然觉得不错 但是这个功能不是内置的吗
    nl101531
    nl101531
    OP
    Feb 4, 2018
    4
    @aristotll 内置的那个反编译不是很详细,基本等于没用. 或者说我没找对地方?
    aristotll
    aristotll
    Feb 4, 2018
    5
    aristotll
    aristotll
    Feb 4, 2018
    6
    显示图片...
    nl101531
    nl101531
    OP
    Feb 5, 2018 via Android
    7
    @aristotll 还有这功能啊。。。。这真的不知道
    KNOX
    KNOX
    Feb 5, 2018 via Android
    8
    点赞楼主自己写插件,但是我看你的截图感觉跟我用 AS 内置的查看 bytecode 和 decompile 功能差不多啊
    xingstar
    xingstar
    Feb 5, 2018 via Android
    9
    很赞哦⊙∀⊙!
    nl101531
    nl101531
    OP
    Feb 5, 2018 via Android
    10
    @KNOX 好吧,我是后端开发,没发现 IDEA 中有这个功能。所以找了个插件魔改了下。
    yzmm
    yzmm
    Feb 5, 2018
    11
    idea 的反编译插件是用的 Fernflower 改的
    https://the.bytecode.club/showthread.php?tid=5
    http://the.bytecode.club/fernflower.txt
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5469 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 02:49 · PVG 10:49 · LAX 18:49 · JFK 21:49
    ♥ Do have faith in what you're doing.