可以更改Android APK文件中的资源而无需重建吗?

时间:2012-12-17 07:40:15

标签: java android apk

在我的Android应用程序中,我只需要对属性文件进行一些小改动。

例如:

在我的属性文件中,有一条特定客户的欢迎消息。 所以,我必须在我的应用程序中仅更改客户端名称。

但问题是,我必须在源代码中执行此操作,然后必须每次为每个客户端构建。

有没有办法直接在 .apk 文件中更改它而无需再次创建构建&试。

3 个答案:

答案 0 :(得分:9)

要执行此操作,您必须解压缩打包的APK,并找到要更改的字符串。该字符串可能已被编码或转换为字节码(Java String)或二进制格式(XML String)。您需要确定是否已完成此操作,以及新String的外观。然后,您需要使用要替换它的字符串,并在交换之前以相同的方式对其进行编码。

完成所有这些操作后,您必须重新压缩应用程序并运行签名工具并手动压缩对齐,然后再以apk格式使用。

坦率地说,这样做需要更长的时间才能重新编译应用程序。

答案 1 :(得分:1)

由于您拥有源代码,解压缩和重建APK似乎是浪费时间。您应该在原始构建过程中解决此问题。

如果您使用Eclipse手动构建APK包,那么您应该考虑设置一些自动构建系统(Ant,Maven等)并将客户端名称作为构建脚本的参数提供。

如果您已经在使用Ant或Maven,那么这些工具已经提供了在编译之前用文本文件替换属性值的方法。请告诉我们有关您的构建环境的更多信息,以便我们提供更准确的答案。

答案 2 :(得分:0)

使用Android APK Tool

引用说明

  

它是逆向工程第三方,封闭式二进制Android的工具   应用。它可以将资源解码为近乎原始的形式并重建它们   经过一些修改之后;