我会尽量清楚:) 我想在应用程序启动时为应用程序添加一个活动(让我们称之为X不要混淆):
我在eclypse项目中有活动X,所以我可以把我的java文件变成smali。 我有smali文件中的应用程序+一个yml文件(通过反馈)。
如何将应用的主要活动转为正常活动? 如何将我的活动X添加到应用程序? smali文件夹的哪个文件夹? 我是否需要更改yml文件中的内容? xml文件会发生什么?
任何形式的帮助都将非常感谢! :)
答案 0 :(得分:1)
编辑smali文件很难&你可以通过这种方式向现有活动添加按钮。 smali是一种类似于汇编的语言,允许进行一些调试但是或多或少等同于android dalvik字节码。
然而,您可以使用不同的开始活动来打包应用程序,因为这不需要更改应用程序。它甚至可以自动化并被阴暗的第三方市场滥用,将恶意软件置于其他应用程序的发布活动中。
如果你想自己做,你可能会这样做:
apktool
将两者都反编译为smali + resources。apktool
构建apk。介于两者之间的一些重要步骤:
您的新X活动需要使用startActivity
setup from Strings来调用Intent
,因为您没有可以编译的.class文件。您显然需要知道其他应用程序启动活动的包名和类名。除此之外,只需按照您使用按钮进行任何活动的方式。
两个反编译应用程序的合并主要是简单的副本和糊。复制src
文件夹,此处不存在任何冲突。对于res
文件夹,您需要知道所需的资源,但您大多可以只复制它们。对于布局和其他命名资源,请确保首先不要在X活动项目中使用冲突的名称。要“合并”2 strings.xml
个文件,只需重命名其中一个文件,文件名应无关紧要。
最重要的是合并AndroidManifest.xml
。您需要添加X活动,包括"android.intent.category.LAUNCHER" / ...MAIN
意图过滤器。这就决定了哪个活动可以直接从启动器启动。同时从不应再启动的其他启动活动中删除过滤器。
重建一个apk,就是这样。
注意:我没有详细测试。我认为它有效:)