【问题标题】:what is relationship between Android and lua and SMALI languages?Android 与 lua 和 SMALI 语言有什么关系?
【发布时间】:2015-05-16 21:35:45
【问题描述】:
我注意到一些 android 应用程序包含 Lua 脚本和字节码。
我认为 Android 可以在 Java Davlik 字节码或原生调用下。
- 它如何在运行时加载 lua 脚本(.lua 文件)和 lua 字节码 (.o)?
- 如果 DALVIK 在 Java 类型 VM 上并且在 Java 上完成编码,为什么 apktool 会反编译为 SMALI 而不是 .class?
对此有何提示?
【问题讨论】:
标签:
java
android
lua
smali
apktool
【解决方案1】:
Android 运行 dalvik 字节码,smali 是 dalvik 字节码的“汇编”语言。 Android 应用程序通常是用 java(或其他 jvm)语言编写的,并像往常一样编译为 .class 文件。然后,这些类文件由“dx”实用程序转换为 dalvik 字节码,该实用程序是 Android SDK 的一部分。 dx 的输出(通常)是一个包含应用程序所有类的单个 dex 文件。
Lua 完全不相关。为了让 Android 应用程序能够加载 Lua 脚本/字节码,它必须包含自己的 Lua 解释器/VM。