Android 如何通过一个apk安装两个实例?

Android 如何通过一个apk安装两个实例?,android,android-install-apk,Android,Android Install Apk,我为android开发了一个应用程序,但我需要安装两个实例,一个用于日常使用,另一个用于调试/开发,我没有太多的手机用于调试,只有一个手机,不想在emulator上调试,因为它与真实手机相比太慢 或者我们可以在APK文件上更改任何内容,然后将其作为另一个应用程序安装,例如更改其包名 目前,我在代码中更改了软件包名称,然后将它们改为两个应用程序,可以安装在同一部手机上,但这种方式不方便。寻求简单的方法 更新:是否有任何工具可以直接在packagedapk文件之后修改androidmanifest.

我为android开发了一个应用程序,但我需要安装两个实例,一个用于日常使用,另一个用于调试/开发,我没有太多的手机用于调试,只有一个手机,不想在emulator上调试,因为它与真实手机相比太慢

或者我们可以在APK文件上更改任何内容,然后将其作为另一个应用程序安装,例如更改其包名

目前,我在代码中更改了软件包名称,然后将它们改为两个应用程序,可以安装在同一部手机上,但这种方式不方便。寻求简单的方法


更新:是否有任何工具可以直接在packagedapk文件之后修改androidmanifest.xml中的包名?然后我们只需要解压缩apk,修改androidmanifest.xml,然后再次压缩apk

你自己已经回答了这个问题。您必须更改清单中的软件包名称,否则,如果证书不同,Android将覆盖旧应用程序或无法安装它。

请尝试将资源文件夹@string/app\u name中strings.xml中的应用程序名称更改为具有同一应用程序的多个实例。必须更改程序包名称,以便不覆盖现有的应用程序。

我将使原始应用程序成为库项目,并创建一个使用库项目的新项目

优点:

您可以同时运行这两个包,因为新项目应具有不同的包名 通过覆盖新项目中的应用程序名称轻松识别,只需向其添加测试版即可 两个版本都可以并行安装在一个设备/仿真器上 如果您尝试验证应用程序的更新过程,则设置非常好 与版本控制系统没有混淆-重命名包会在开发分支上导致可怕的非真实更改 缺点:

在释放原始项目之前,需要取消选中库设置 您可能需要更改两个清单文件中的一些内容,这将以较小的方式提高可维护性 如果您确实需要在设备上安装市场版本的应用程序,此方法是最简单的方法,因为软件包重命名很可能会导致较差的可维护性

编辑:


您可以在project preferences->Android中将项目标记为库项目。之后,您可以在同一位置将添加库项目链接到另一个普通android项目,只需单击添加按钮。

您可以复制项目并更改副本中的包名。 您可以使用相同的SVN路径在两个项目上应用更改

或者,您可以使用带有参数的ANT build.xml文件自动化不同的构建。有几个例子说明了如何在谷歌的Android上实现这一点。
ref:

两个已安装的应用程序不能具有相同的软件包名称。Android根据软件包名称识别应用程序。在strings.xml中对应用程序进行简单的重命名是不够的…什么意思-取消选中库?要将项目用作库,必须从项目首选项内的工作区中选择它。将原始项目标记为库后出现问题,findViewById返回null…这是问题描述吗?您是否创建了使用库项目的新项目?您是否在新清单中添加了必要的活动?您知道不能单独安装库项目吗?是的,创建一个新项目,但不添加新活动,只是称为库中的活动,在新项目中添加了libraray项目。