使用ASM Bytecode Outline插件查看字节码

    • 使用ASM Bytecode Outline插件查看字节码
      • 前言
      • Intellij IDEA使用
      • Android Studio 使用
        • 存在的问题
      • 参考

使用ASM Bytecode Outline插件查看字节码

前言

在使用 ASM 插入字节码代码时、如果不熟悉字节码相关语法和规则 可能对于插入 字节码代码 就束手无策了、幸好 ASM官方开发了一款IDE插件,可以将 Java代码 转换成 ASM 字节码类型代码,这样再使用 ASM 插入字节码时就比较方便了,下面就看一下如何使用了。

ASM Bytecode Outline 插件地址:https://plugins.jetbrains.com/plugin/5918-asm-bytecode-outline

Intellij IDEA使用

下面看一下如何在 IDEA 安装插件:

1.安装插件

在 preferences > Plugins 中 输入 asm bytecode outline 如下:


点击 install 安装、安装完毕后 重启 IDEA 之后在 Plugins - Installed 中 和 右侧出现工具栏说明安装已经成功!

2. 如何使用

安装完成插件之后 可以先编写一份 简单的Java源代码如下:

package com.java.design.source.class_byte;public class ByteMain {    private int a = 1;    public int add() {        int b = 2;        int c = a + b;        return c;    }}

之后 在当前类文件上 右击 在出现的菜单上选择: Show Bytecode outline


之后会出现 一个面板、在当前面板下会显示当前Java 代码对应的字节码文件如下:


当前面板下有三项内容:

  • Bytecode 表示对应的class字节码文件
  • ASMified 表示利用ASM框架生成字节码对应的代码
  • Groovified 对应的是class字节码指令

ASMified 文件如下:


Groovified 文件如下:


从上述文件可以看到 完全可以利用 ASM 框架生成 class 文件而且和 Java源文件编译的class 文件完全一致。

Android Studio 使用

在Android studio 上的安装和使用和 在 IDEA 的方式是一致的,所以就不在赘述了,直接参考上面的文章就行了。

存在的问题

目前Android studio 的插件在我使用的过程中发现 此插件不支持 分析 kotlin 代码,会在使用的过程中 会报如下错误:

Error:Kotlin: Unsupported plugin option: org.jetbrains.kotlin.android:enabled=true

所以我暂时也没有找到解决方案,如果有人知道请在下方留言告诉我一下,谢谢!

参考

https://plugins.jetbrains.com/plugin/5918-asm-bytecode-outline

更多相关文章

  1. Android程序的目录结构分析——manifests目录、Java目录、res目
  2. 《Android(安卓)Framework 之路》 N版本 Framework Camera的一些
  3. apktool之APK解压、打包
  4. Android(安卓)开发 之 异常android.os.FileUriExposedException:
  5. 浅析Android之Adapter用法总结
  6. 控制android弹出框不消失
  7. Unity 读写文件之PC端&Android端
  8. Android中级教程之(二)----->Android(安卓)SDK中tools详解
  9. Android(安卓)ndk开发swig编译jni接口配置文件(二)

随机推荐

  1. android群发短信时判断短信是否发送成功
  2. Android(安卓)中使用 ComponentName 类
  3. Android(安卓)--- 图片的特效处理
  4. Android音量控制调节
  5. Android模仿Buttonbar
  6. Android中Environment,context获取路径
  7. Android(安卓)PrecomputedTextCompat
  8. Android常用代码
  9. android 微信登录
  10. Android(安卓)TableLayout设计模板