android 为应用程序库和Google Play商店准备应用程序

yb3bgrhw  于 2022-12-09  发布在  Android
关注(0)|答案(1)|浏览(217)

以下哪种方法是为应用程序库和Play Store发布准备应用程序的最佳做法
搜索网络我发现几个方法:

  • (1)使用风格(一个用于Google Play,一个用于appGallery),每个风格定义相同的布尔字段“isHuawei”(no用于googlePlay,yes用于appGallery风格)。基于该布尔值,是否使用google play服务
productFlavors {
    google {
        buildConfigField "boolean", "isHuawei", "false"
    }
    huawei {
        buildConfigField "boolean", "isHuawei", "true"
    }
}
  • (2)在Gradle中添加应用图库发布:
project.gradle.startParameter.excludedTaskNames.add('processHuaweiReleaseGoogleServices')

如果此任务不为华为发布而运行,是否有任何不便?

  • (3)下面的代码,以查明是否运行在华为(没有Google Play)或手机与谷歌播放
FirebaseMessaging.getInstance().token.addOnCompleteListener { task -> if (!task.isSuccessful) { noGMS } else { GMS }}
  • -(四)利用
GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(nContext))

以确定此版本是否适用于带GMS电话。
在应用程序启动时使用上面的1、3和4来确定应用程序当前是否在带或不带GMS的手机上运行是一个很好的做法?如果这三个都返回false,则可能意味着应用程序正在不带GMS的手机上运行。
有华为手机可以有App Gallery和Google Play商店。如何管理运行这两个商店的华为手机的App Gallery发布?

gmxoilav

gmxoilav1#

要在华为手机上的AppGallery中发布应用,您会遇到两种情况:

  • 应用在华为手机上运行,同时支持GMS(谷歌移动的服务)和HMS(华为移动服务)
  • 应用在仅配备HMS(华为移动的服务)的手机上运行
    **如果您想在两种情况下使用一个APK:**为了保证您的应用在GMS+HMS的华为手机和仅HMS的华为手机上都能正常工作,您可以使用帖子中提到的1、3、4来区分手机是GMS手机还是HMS手机,并在代码中进行不同的处理。原因是:在仅支持华为HMS的手机上,它没有GMS来支持一些Google SDK,如IAP、Map等。您需要在您的应用中集成华为HMS IAP、Map等SDK,以便使其正常工作。

您可以在此处找到所有详细的HMS SDK信息:https://developer.huawei.com/consumer/en/hms
或者,对于复杂的业务逻辑和支持未来的API更改(包括弃用),您可以使用两个代码库:一个为华为手机集成的HMS SDK,一个为华为手机集成的HMS SDK,一个为华为手机集成的HMS和GMS。这也意味着您需要为您在华为AppGallery中提交的APK使用不同的包名和密钥,这将有助于避免与Google Play商店中的版本发生更新冲突。

相关问题