Android Studio 查看源码编译后的字节码(java/kotlin)

我们都知道字节码是java或者kotlin源码编译后的文件,后缀名是".class",如果直接用普通文本编辑器打开是会显示乱码的,如果用Android Studio 直接打开则会自动反编译成java代码;那么如何才能正确查看到源码编译后的字节码呢?

主要有以下几种方式:

1、使用javap命令

javap命令路径:%JAVA安装路径%\jdk1.8.0_131\bin\javap
用法: javap <options> <classes>

其中, 可能的选项包括:

命令作用
-help --help -?输出此用法消息
-version版本信息
-v -verbose输出附加信息
-l输出行号和本地变量表
-public仅显示公共类和成员
-protected显示受保护的/公共类和成员
-package显示程序包/受保护的/公共类和成员 (默认)
-p -private显示所有类和成员
-c对代码进行反汇编
-s输出内部类型签名
-sysinfo显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
-constants显示最终常量
-classpath 指定查找用户类文件的位置
-cp 指定查找用户类文件的位置
-bootclasspath 覆盖引导类文件的位置
//例如
>> javap -c -verbose Test.class

2、Android Studio自定义工具:

本质上还是使用javap命令

  • 打开设置路径:Android Studio > File > Settings > Tools > External Tools
  • 点击左上角"+"新增一个自定义工具
  • 输入相关信息:
字段说明
Name工具的名字,例如:ToByteCode
Description工具的功能描述,例如: show java file byte code
Program要执行的命令:$JDKPath$\bin\javap
Arguments执行命令所添加的参数,例如:-c -verbose F i l e C l a s s FileClass FileClass
Working directory工作目录,也就是项目编译后生成的class文件目录,例如: O u t p u t P a t h OutputPath OutputPath
  • 最后点击底部的【OK】按钮进行保存就行了
    在这里插入图片描述

使用方法:
Android Studio中随便打开一个java类文件,在空白地方点击鼠标【右键】,在弹出的菜单选择【External Tools】> 【ToByteCode】也就是刚才自定义工具的名字;
Android Studio就会自动到编译后的目录找到该java类对应的class文件,并执行刚才配置的命令
在这里插入图片描述

//执行结果
"D:\Android\Android Studio 4.0\jre\bin\javap" -c -verbose com.example.myapplication.Test
Classfile /D:/MyFile/develop/android/MyApplication/app/build/intermediates/javac/debug/classes/com/example/myapplication/Test.class
  Last modified 2021-3-13; size 1099 bytes
  MD5 checksum 5d28e3e79dc16c5f46030cc91157226b
  Compiled from "Test.java"

如果出现找不到类的错误提示,则可能该类是最近添加的还没有编译成class文件,可以到编译产物所在路径查看是否存在对应的class文件进行确认(默认路径:MyApplication\app\build\intermediates\javac\debug\classes\com\example\myapplication\Test.class);
例如:

"D:\Android\Android Studio 4.0\jre\bin\javap" -c -verbose com.example.myapplication.NewTest
错误: 找不到类: com.example.myapplication.NewTest

Process finished with exit code 1

解决的办法就是重新编译项目:Android Studio > Build > Rebuild Project
3、使用Android Studio插件

Android Studio > File > Settings > Plugins
目前没发现展示效果跟javap命令出来一样的插件,有空可以自己写一个,原理也就是利用javap命令获取结果并展示出来

4、kotlin查看字节码

  • 打开要查看的kotin文件
  • Android Studio > Tools > Kotlin> Show Kotlin Bytecode
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当开发 Android 应用程序时,您可以使用 JavaKotlin 作为主要编程语言。Android Studio 是一个流行的集成开发环境 (IDE),可以用于编写和调试 Android 应用程序。 JavaAndroid 开发的传统编程语言。它是一种面向对象编程语言,可以在 Android 平台上创建高性能和可靠的应用程序。Java 支持 Android 应用程序的所有功能,包括多线程处理、网络通信、图像处理等。 Kotlin 是一种相对较新的编程语言,由 JetBrains 开发。它是一种静态类型语言,与 Java 兼容,并且可以完全取代 JavaKotlin 具有更简洁、更安全和更易于理解的语法,可加快应用程序开发的速度。 在 Android Studio 中使用 JavaKotlin 编写代码时,您可以使用 Android Studio 提供的各种工具和插件来简化代码编写和调试过程。无论您选择使用哪种语言,都应该选择适合您应用程序需求的最佳编程语言。 ### 回答2: Android Studio是一个非常流行的开发工具,它能够帮助开发人员为Android平台创建高质量的应用程序。在使用Android Studio时,您可以使用JavaKotlin编写您的应用程序。不过,从Java代码转换到Kotlin代码可能会为您带来一些好处。 在Android Studio中,将Java转换为Kotlin非常简单。只需要单击菜单栏中的Code选项,然后选择Convert Java File to Kotlin File选项。此时会出现一个转换向导,它会自动将Java代码转换为Kotlin代码。 从JavaKotlin的转换可能会带来一些好处。首先,Kotlin代码更加简洁。Kotlin可以通过更少的代码来实现与Java相同的功能。由于Kotlin采用了更现代的编程模式,因此其API更为简洁,并提供了更好的可读性。 Kotlin还可以提高开发效率。Kotlin具有更好的可空性,这意味着开发人员无需担心空指针异常。此外,Kotlin的语言结构更加灵活,它可以更好地适应开发人员的工作流程。 Kotlin还可以使您的代码更加安全。由于其类型安全,Kotlin可以在编译时发现更多的错误,从而减少运行时错误。 总之,将Java代码转换为Kotlin代码可能会为您的应用程序带来许多好处。虽然转换可能需要一些时间和精力,但它可以显著提高您的开发效率并带来更稳定的应用程序。 ### 回答3: 随着 Kotlin 语言的不断普及和广泛使用,很多开发者在已有的 Android 代码中逐渐引入 Kotlin 语言,因为 Kotlin 语言有着更少的模板代码、支持 null 安全等重要特点,使得代码更加鲁棒且更加简单易读。于是,Android Studio 为了方便开发人员可以尽快的将 Java 代码转化为 Kotlin,提供了一个简单的方法来实现 JavaKotlin 的自动转换。本文将详细介绍如何使用 Android StudioKotlin 代码转换功能,在保证代码完整性的前提下,将 Java 代码转换为 Kotlin 代码。 在 Android Studio 的工程中,右键点击需要转换的 Java 类,选择 Convert Java file to Kotlin file,将会弹出一个对话框,让你选择需要转换的选项。在这个窗口中,你可以选择自动转换或手动转换。自动转换会尝试直接将 Java 代码转换为 Kotlin,但是可能会出现一些不完全的情况,所以还是建议使用手动转换来检查和修改代码以确保 Kotlin 代码的完整性。手动转换需要逐行阅读 Java 代码并将其转换为 Kotlin 代码,请注意 JavaKotlin 之间的些许差异和细节问题。 对于比较简单的代码片段,手动转换起来会非常容易,这也是 Kotlin 的一个重要特点。对于一些复杂的代码,如果使用自动转换,则需要检查和修改 Kotlin 代码以确保代码的正确性和完整性。另外,还有一些重要的注意事项需要考虑:比如函数参数的兼容性、Lambda 表达式的使用,类属性、方法、异常等的继承规则等。 在实际应用中,我们还需要结合项目实际情况根据需要进行代码转换,逐步将 Java 代码优化为 Kotlin 代码。该过程中,需要逐行检查和修改代码,确保代码的正确性,同时也需要注意 Kotlin 的一些特殊语法和定义规则。 总的来说,Kotlin 转换是将 Java 代码转换为 Kotlin 代码的常见操作之一,这样的转换可以让开发人员更加方便快捷地使用 Kotlin的特性,提高代码质量和开发效率。同时,理解 Kotlin 语言与 Java 语言的相似之处和不同之处也是非常重要的。这样可以让我们更好的编写代码,更好的组织结构和功能,提升项目的维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值