相同的包名称APK(使用不同的applicationId)是否使用相同的数据位置?

时间:2018-04-12 06:30:48

标签: android android-studio

我们知道APK保存在/ data / data / PackageName中的数据,如果两个不同的apk具有相同的包名,它们是否会覆盖其他数据?(如sharepreference的数据)

2 个答案:

答案 0 :(得分:0)

答案是否定的,为什么?这是不可能的,Play商店不会让你上传一个包含相同包的apk,游戏商店的包名很重要,原因很多,其中一个是更新检测,如果你更新了一个应用程序,Google首先关注的是包名称,以便了解当前版本的版本。

不知何故,同样的开发人员会在开发阶段发生这种情况,然后您可以根据需要为您的软件包命名。

答案 1 :(得分:0)

就相同的包名而言,无法在同一设备上安装它将被替换

但是如果我们有不同的appliationId,是的,可以在同一设备上安装另一个应用程序,但在这种情况下,packageName也将被更改。

工作样本

项目1

应用/的build.gradle

"main": "/Users/sahandzarrinkoub/Documents/Programming/DH2642/Sentify/repo/Sentify/Sentify/frontend/src/index.js",

Android清单

applicationId  "com.test.sample"

<强>结果

当我打印applicationId和包名时,它是相同的:

applicationId:“com.test.sample”

包:“com.test.sample”

项目2

我添加了buildTypes / flavor但保持applicationId和包名相同,但在这种情况下,applicationId和包名的输出将被更改。

<强>的build.gradle(APP)

package="com.test.sample"

Android清单

applicationId "com.test.sample"
buildTypes {
    release {
        applicationIdSuffix ".release"
    }
    debug {
        applicationIdSuffix ".debug"
    }
}

<强>结果

当我打印applicationId和包名时,它是不同的:

applicationId:“com.test.sample.debug”

包:“com.test.sample.debug”

这就是由于buildType / flavors(pro / free)的变化而安装两个应用程序的方式。

如果你想访问彼此的sharedPreferences(假设免费/专业版),你需要创建一个ContentProvider来展示你需要的数据并向付费应用授予权限。