Android 是否可以从第三方.apk中删除AOT程序集?

Android 是否可以从第三方.apk中删除AOT程序集?,android,xamarin.android,apk,Android,Xamarin.android,Apk,我有一个第三方apk,我正试图优化它,因为开发者不会为这些琐碎的事情而烦恼 该应用程序是使用Xamarin构建的,包含AOT程序集。有没有一种方法可以在不完全反向工程项目并重新构建它的情况下将它们从apk中剥离?从.apk中删除AOT程序集与删除它们并正确重新签名包一样简单 以下是步骤: 将.apk作为zip文件打开,删除lib\\libaot-*.so文件。 Xamarin应用程序包括libmonodroid.so和libmonosgen-2.0.so即使没有AOT编译,也不要碰它们 从.a

我有一个第三方apk,我正试图优化它,因为开发者不会为这些琐碎的事情而烦恼


该应用程序是使用Xamarin构建的,包含AOT程序集。有没有一种方法可以在不完全反向工程项目并重新构建它的情况下将它们从apk中剥离?

从.apk中删除AOT程序集与删除它们并正确重新签名包一样简单

以下是步骤:

  • 将.apk作为zip文件打开,删除
    lib\\libaot-*.so
    文件。
    Xamarin应用程序包括
    libmonodroid.so
    libmonosgen-2.0.so
    即使没有AOT编译,也不要碰它们
  • 从.apk的根目录中删除META-INF
  • 使用JDK中的
    jarsigner
    对生成的.apk进行签名。如果您没有原始密钥,任何密钥都可以,您将失去自动更新应用程序的能力
  • 不要忘记将.apk与Android构建工具中的
    zipalign
    对齐
由此产生的更薄的应用程序可以完美地安装和运行,但启动当然需要几秒钟的时间