编辑 smali 文件很困难,而且您可以通过这种方式将按钮添加到现有活动中,这有点不妥。smali 是一种类似汇编的语言,允许进行一些调试,但或多或少等同于 android dalvik 字节码。
但是,您可以使用不同的启动活动包装应用程序,因为这不需要更改应用程序。它甚至可以被阴暗的第 3 方市场自动化和滥用,以将恶意软件放入其他应用程序的启动活动中。
如果你想自己做,你可能会这样做:
- 在 Eclipse 中创建一个包含 X 活动和要添加的资源的简单应用程序。
- 将该应用程序编译为 apk。
- 将您要修改的另一个应用程序作为 apk。
- 将两者都反编译
apktool
成 smali + 资源。
- 将所有内容合并到您正在编辑的应用程序中
- 用于
apktool
构建 apk。
中间的一些重要步骤:
您的新 X 活动需要startActivity
使用Intent
字符串中的设置进行调用,因为您没有可以编译的 .class 文件。您显然需要知道其他应用程序启动活动的包名和类名。除此之外,只需让它成为您使用按钮执行任何活动的方式。
两个反编译的应用程序的合并主要是简单的复制和粘贴。复制src
文件夹,这里没有任何冲突。对于res
文件夹,您需要知道您需要哪些资源,但大多数情况下您可以复制它们。对于布局和其他命名资源,请确保首先不要在您的 X 活动项目中使用冲突的名称。要“合并” 2 个strings.xml
文件,只需重命名其中一个,文件名应该无关紧要。
最重要的是合并AndroidManifest.xml
. 您需要添加您的 X 活动,包括"android.intent.category.LAUNCHER" / ...MAIN
意图过滤器。这就是决定哪些活动可以直接从启动器启动的原因。还要从不应再启动的其他启动活动中删除过滤器。
重建一个apk,就是这样。
注意:我没有对此进行详细测试。我认为它虽然有效:)