Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不同的版本在市场上是如何工作的?_Android_Version_Apk_Google Play - Fatal编程技术网

Android 不同的版本在市场上是如何工作的?

Android 不同的版本在市场上是如何工作的?,android,version,apk,google-play,Android,Version,Apk,Google Play,我已经完成了google play market的入门应用程序。我想制作一个免费的付费版本,所以我想知道的是: 我是否可以将付费版本中的部分注释为免费版本,并在对话框中更具体地引用市场上的付费版本,使用相同的项目只是不同的版本号和导出的apk 我想知道,因为我听说市场不会让apk有相同的软件包名称,但我以前使用过应用程序,如果你有付费版本,你就不能有免费版本,所以我猜这都是关于这个版本的# 感谢您抽出时间您是对的,Google Play不允许上传具有相同软件包名称的APK。Play store正

我已经完成了google play market的入门应用程序。我想制作一个免费的付费版本,所以我想知道的是:

我是否可以将付费版本中的部分注释为免费版本,并在对话框中更具体地引用市场上的付费版本,使用相同的项目只是不同的版本号和导出的apk

我想知道,因为我听说市场不会让apk有相同的软件包名称,但我以前使用过应用程序,如果你有付费版本,你就不能有免费版本,所以我猜这都是关于这个版本的#


感谢您抽出时间

您是对的,Google Play不允许上传具有相同软件包名称的APK。Play store正是使用软件包名称将不同的应用程序与其他应用程序区分开来

然而,你有点偏离了正轨,认为它是负责相同应用程序(免费和付费)的版本

然而(再次)相同应用的免费和付费版本可以在使用相同谷歌帐户下载的相同设备上共存。应用程序中可能有一个检查和通知用户的功能。但这不是谷歌Play商店提供的机制

以一个名为FriendCaster的应用程序为例。(我是一名独立的自由职业者,与FriendCaster或OneLouder应用程序无关)

  • FriendCaster的免费版本是:

  • 如果同一应用程序为:

  • 它们都有相同的版本,但包名不同(结尾不同)。您将能够在一台设备上同时安装这两个应用程序

    在我的例子中,我的应用程序的免费版本和付费版本都使用相同的代码库。唯一的区别是(显然)付费版本将所有广告从XML中剥离出来

    我使用两个不同的Eclipse工作空间来保持我的免费和付费版本彼此独立。这比其他任何事情都更方便。您可以将这两个项目放在同一个Eclipse工作空间中

    但是,根据您对OP的评论,您不能使用同一个项目导出具有不同包名的两个不同APK。如果您已完成付费版本,则需要为免费版本创建一个新项目。您需要独立导出每个项目的APK

    为了保持代码库中的奇偶性,我尽可能避免使用硬代码。例如,在打开应用程序的Google Play details页面的活动中,我没有在其中硬编码我的软件包名称,而是使用以下内容:

    Uri playUri = Uri.parse("market://details?id=" + Feedback.this.getPackageName());
    Intent openGooglePlay = new Intent(Intent.ACTION_VIEW, playUri);
    try {
        startActivity(openGooglePlay);
    } catch (ActivityNotFoundException e) {
    
        // SHOW A TOAST
        String tstMessage = "Could not launch the Play Store app.";
        showToast.showToast(tstMessage);
    }
    

    我希望我对这篇文章有一些理解。如果您需要任何澄清,请随时询问。:-)

    Google Play不允许上传具有相同软件包名称的APK,这是对的。Play store正是使用软件包名称将不同的应用程序与其他应用程序区分开来

    然而,你有点偏离了正轨,认为它是负责相同应用程序(免费和付费)的版本

    然而(再次)相同应用的免费和付费版本可以在使用相同谷歌帐户下载的相同设备上共存。应用程序中可能有一个检查和通知用户的功能。但这不是谷歌Play商店提供的机制

    以一个名为FriendCaster的应用程序为例。(我是一名独立的自由职业者,与FriendCaster或OneLouder应用程序无关)

  • FriendCaster的免费版本是:

  • 如果同一应用程序为:

  • 它们都有相同的版本,但包名不同(结尾不同)。您将能够在一台设备上同时安装这两个应用程序

    在我的例子中,我的应用程序的免费版本和付费版本都使用相同的代码库。唯一的区别是(显然)付费版本将所有广告从XML中剥离出来

    我使用两个不同的Eclipse工作空间来保持我的免费和付费版本彼此独立。这比其他任何事情都更方便。您可以将这两个项目放在同一个Eclipse工作空间中

    但是,根据您对OP的评论,您不能使用同一个项目导出具有不同包名的两个不同APK。如果您已完成付费版本,则需要为免费版本创建一个新项目。您需要独立导出每个项目的APK

    为了保持代码库中的奇偶性,我尽可能避免使用硬代码。例如,在打开应用程序的Google Play details页面的活动中,我没有在其中硬编码我的软件包名称,而是使用以下内容:

    Uri playUri = Uri.parse("market://details?id=" + Feedback.this.getPackageName());
    Intent openGooglePlay = new Intent(Intent.ACTION_VIEW, playUri);
    try {
        startActivity(openGooglePlay);
    } catch (ActivityNotFoundException e) {
    
        // SHOW A TOAST
        String tstMessage = "Could not launch the Play Store app.";
        showToast.showToast(tstMessage);
    }
    

    我希望我对这篇文章有一些理解。如果您需要任何澄清,请随时询问。:-)

    您最好使用单个代码库并将其编译为OSS或pro版本,或者使用需要许可证密钥的单个版本。在编译任何项目之前简单地注释掉代码块是一种糟糕的做法。我不知道如何去做,我想做对了,你知道,我完成了付费,我知道如何免费完成,只是如何导出,不同的包名?版本号?您最好使用单个代码库并将其编译为OSS或pro版本,或者使用需要许可证密钥的单个版本。在编译任何项目之前简单地注释掉代码块是一种糟糕的做法。我不知道如何去做,我想做对了,你知道,我完成了付费,我知道如何免费完成,只是如何导出,不同的包名?版本号?@JRowan:太棒了。很高兴我能帮忙。祝您在即将发布的应用程序中好运。:-)@杰洛万:太棒了。很高兴我能帮忙。祝您在即将发布的应用程序中好运。:-)