Smali moveTaskToBack

Smali moveTaskToBack

我刚开始使用 smali,我想在 main activity (smali) 中添加 moveTaskToBack(true) 但我不知道如何转换它。

顺便说一句,这是我尝试过的:

invoke-virtual {p0, v0}, Landroid/androapp/Main;->moveTaskToBack(Z)Z

使用apktool反编译

java -jar apktool.jar d <file-to-decompile.apk>

然后在需要插入代码的地方编辑smali文件。

但是你必须确保在你插入代码的地方 v0 已经包含值 1 为真,或者你必须将它设置为 1 但是然后确保 v0 不包含稍后使用的值:

const/4 v0, 0x0
invoke-virtual {p0, v0}, Landroid/androapp/Main;->moveTaskToBack(Z)Z

之后使用 apktool 重建应用程序。

java -jar apktool.jar b <directory created by apktool>

如果 apktool 成功,您会在 dist/ 子目录中找到生成的 apk 文件。

根据修改后的 APK 文件,您可能必须使用 zipalign 4 <modified apk file>zipalign -p 4 <modified apk file> 对齐 apk(如果应用在中定义了 extractNativeLibs=false,则必须使用后者是 AndroidManifest.xml).

现在您必须使用例如apksigner 用于 Android SDK。