如何安装应用程序两次而不干扰Android?

时间:2013-05-30 15:27:48

标签: android installation android-manifest

我有一个Android应用程序(让我们称为X),我想创建第二个应用程序X2,但基于另一个应用程序。所以我将清单应用程序名称属性更改为X2也改变了包名...但是当我安装X2时,应用程序X被删除了!

我应该更改哪些属性,以便我可以在一台设备上独立安装这两个应用程序。我正在研究eclispe。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.app1"
    android:versionCode="1"
    android:versionName="1.0" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name1"
        android:theme="@style/AppTheme" >

改变后。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.app2"
android:versionCode="1"
android:versionName="1.0" >

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name2"
    android:theme="@style/AppTheme" >

4 个答案:

答案 0 :(得分:3)

还可以更改gradle脚本build.gradle模块中的包名称

defaultConfig {
    applicationId "com.me.mesurvey" //put your package name here//
    minSdkVersion 14
    targetSdkVersion 19
}

答案 1 :(得分:2)

好吧,它可以在其他设备上使用更新的平台!无论如何,正确的响应是你只需要更改应用程序的名称和包。

编辑1:现在,如果您使用的是Android Studio,请使用applicationIdSuffix为每种风格添加一个应用。

debug {
        applicationIdSuffix ".debug"
    }

在此处阅读更多developer.android.com

答案 2 :(得分:0)

我需要这样的工具,因为客户希望能够同时使用该应用的测试版和发布版。 我正在更改APK的主要命名空间,以使用apktool实现此目的。

我按照以下步骤操作:

  • 使用apktool反编译apk java -jar apktool.jar d -o out -f my-app.apk
  • com.mainnamespace 替换为out目录中所有文件中的 com.mainnamespacebeta
  • 将目录 out / smali / com / mainnamespace 重命名为 out / smali / com / mainnamespacebeta
  • 再次编译apk java -jar apktool.jar b -o ./debug.apk -f ./out
  • 使用jarsigner使用新密钥对apk进行签名。 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore ./debug.apk“password”-storepass“password”-keypass“password”

以下是如何签署apk以获取key.keystore - http://developer.android.com/tools/publishing/app-signing.html

的手册

我还为linux创建了简单的脚本 - https://gist.github.com/vavrecan/8596303

答案 3 :(得分:0)

第1步:选择(点击)您的应用主程序包,然后点击Shift + f6并更改包名称

步骤2:转到build.gradle并将applicationId更改为新包名,如下所示          defaultConfig {

    applicationId "com.sample.main"//give your new package name

    minSdkVersion 15

    targetSdkVersion 25

}

第3步:清理项目

第4步:运行项目并确保它可以正常工作

快乐编码.....