如何编辑安卓应用程序?

6

我需要编辑一个安卓应用程序,只是为了更正一些写错的文本。我有 .apk 文件,那么我该如何修改它们呢?


你无法这样做。将.apk视为Windows上的可执行文件;您需要源代码才能进行更改。如果您可以随意编辑.apk来更改应用程序,则可以将每个应用程序更改为您的财产或包含您的名称。 - Ken White
1
为什么我需要让每个应用都成为我的财产或包含我的名字?我只需要更改一些已经属于我的财产的应用中的文本。我本来会问帮我创建应用的开发人员,但是不幸的是,他们现在无法联系到了。我需要更改应用中的文本所需的源是什么? - Iliya
项目源文件夹及其包含的所有文件。当您进行这些更改时,您将需要重新编译和构建应用程序。如果您只有apk文件,则无法对其进行任何更改。 - FoamyGuy
@Iliya:盗版是一个问题——如果你可以轻易地改变任何应用程序的外观使它看起来像是你编写的(版权信息、窗口标题等),那么防止他人的应用程序被盗取就会更加困难。如果这个应用程序是你自己的(意味着你编写了它),你应该有源代码(也就是组成被放入.apk文件的Java代码),你可以轻松地进行修改。如果这个应用程序是别人写的,你购买了它,那么它不是你的“财产”(除非你也购买了源代码/权利),你应该联系作者提出更改请求。 - Ken White
3个回答

10
一般来说,软件产品并不是你所说的“已经是你的财产”。大多数情况下(我不会在公开场合轻率发言),它是授权给你使用的。使用许可证并不等同于拥有(财产权)同一物品。
这是因为它适用于作者权利、版权、知识产权。我不知道在美国(或你的国家)如何运作,但通常认为,一个人头脑中的工作、创造性工作,其本质不应更改,使艺术表达与作者预期的表达不同。例如,在某些情况下,这适用于建筑工作(在大多数国家,你不能未经建筑师事先同意就改变建筑物的外观,以“破坏”建筑师的艺术作品)。当然,在作者明确授权此类更改时(例如,创意共用许可证、开源许可证等),可以做出例外。
无论如何,这就是为什么你会在大多数最终用户许可协议中看到典型的句子:“此软件是授权而非销售”。这就是目的和原因。
现在你明白了为什么不能随意更改别人的艺术作品,让我来谈谈技术问题
有可能反编译Java程序的方法。你可以使用dex2jar,它为你提供了一个比较好的起点来寻找事物和更改。然后通过重新组装代码来重建代码。祝你好运,因为大多数人都会混淆他们的代码,使这一过程更加困难。
然而,正如我上面所说的那样,更改程序仍然是被禁止的,而且极其不道德。看到人们毫无顾忌地这样做让我很难过(并不是说这是你的情况,只是警告你)。这不需要站在另一边的人才能理解。或者也许只有我这个生活在盗版猖獗的国家的人这么认为。
工具总是存在的。但是良心,不幸的是,并不总是存在的。 编辑:如果还不够清楚,我不赞成使用这些程序。我自己使用它们来检查我的应用程序被反向工程化的难度。但我也认为,解释总比否认好(最好在这里)。

啊,使用dex2jar之后,您应该使用一些程序来反向工程化jar文件。我脑海中想到的一个程序是"jd-gui"。 - davidcesarino

6
你需要像Davis建议的那样反编译apk,可以使用工具如apkTool,如果你需要更改源代码,则需要其他工具来完成。
然后,你需要将apk重新组合并签名,如果你没有用于签署apk的原始密钥,则新的apk将具有不同的签名。
如果开发人员使用了任何混淆或其他技术来保护应用程序,则会变得更加复杂。
简而言之,这是一个相当复杂和技术性的过程,所以如果开发人员真的无法接触到,最好等到他可接触时再询问源代码。

-1

首先,您需要下载文件管理器x-plore并安装它。 然后打开它并找到您想要编辑的文件。 接下来只需将文件重命名为Xyz.apk到xyz.zip。 然后打开该文件,您可以看到一些文件夹。然后就可以去编辑应用程序了。


虽然这样做是可能的,但@Ken White明确指出为什么不应该这样做。在SO上不应该鼓励这种行为。 - Tom Naessens
1
这并不是在鼓励在SO上做这样的事情,希望您能从学习的角度来看待此事。 - eRaisedToX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接