我需要将此指令转换为 smali 代码:
Uri uri = Uri.parse("http://www.google.com"); // missing 'http://' will cause crashed
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
我想修改一个应用程序,我想添加此功能来打开 Android 浏览器以指向特定网页(例如 www.google.com)。
我尝试在 Android Studio 中使用“dx”插件,但没有任何结果... 谢谢!
最佳答案
您通常不能仅从一种方法复制并粘贴字节码/smali 代码 到另一个。至少,您需要修复寄存器。如果您需要分配更多寄存器等,它会变得更加复杂。
将 java 代码编译为 smali 是一种很好的学习方法,但不要指望能够按原样复制和粘贴字节码。
正如您已经提到的,您可以使用 dx 将 java 类文件转换为 dex 文件。
javac Blah.java
dx --dex --output=classes.dex Blah.class
然后,当然,您可以在classes.dex上运行baksmali将其反汇编为smali代码。
baksmali classes.dex
关于Java 到 Smali 指令转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439685/