43

应用程序如何在内部自动更新而不从 Playstore 更新?我的意思是应用程序的内部数据被更改(通过互联网)而不从 Playstore 更新。例如,任何竞赛应用程序或 Facebook 应用程序。在这里,新闻源会自动更新。

技术术语是什么?

有关于它的教程吗?

4

6 回答 6

55

如果您想检查您的应用程序是否有更新(不与 Google Play 交互),您必须轮询服务器(提供您当前的版本)并让服务器检查是否有更新的版本可用。如果是这种情况,让服务器响应更新日志和更新版本的 url。

幸运的是,有图书馆可以做到这一点:

  • 应用更新程序。在您自己的服务器(或 Google Play、Github 等)上检查更新的 Android 库。很棒的文档。该库通过显示材质对话框、Snackbar 或通知来通知您的应用程序的更新。
  • 安卓自动更新。中国图书馆,但应该做的伎俩,最流行的图书馆之一这样做,但这可能只是因为Google Play在中国不可用。
  • AppUpdateChecker一种简单的非市场方式来保持您的应用程序更新。它只需要一个指向描述应用更改的 JSON 文档的 URL。
  • Auto Updater该项目允许使用私有更新服务器(参见apk-updater)而不是 Google Play 更新程序自动更新正在运行的 APK 应用程序。还附带一个服务器脚本。
  • 智能更新。较旧的库,但有英文说明,还提供了服务器脚本。
  • 版本管理器。检查更新,但必须从 Play 商店下载实际更新。
于 2015-12-13T13:44:52.993 回答
1

https://github.com/bitstadium/HockeySDK-Android/blob/develop/hockeysdk/src/main/java/net/hockeyapp/android/tasks/DownloadFileTask.java#L194在打开下载的文件时具有完美且仍在工作的实现APK文件...

   private fun install(downloadedAPK: File, context: Context) {
        val intent = Intent(Intent.ACTION_INSTALL_PACKAGE)
        intent.setDataAndType(Uri.fromFile(downloadedAPK),
                "application/vnd.android.package-archive")
        intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK

        var oldVmPolicy: StrictMode.VmPolicy? = null

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            oldVmPolicy = StrictMode.getVmPolicy()
            val policy = StrictMode.VmPolicy.Builder()
                    .penaltyLog()
                    .build()
            StrictMode.setVmPolicy(policy)
        }

        context.startActivity(intent)

        if (oldVmPolicy != null) {
            StrictMode.setVmPolicy(oldVmPolicy)
        }
    }
于 2020-08-13T13:16:39.823 回答
0

Mdlc的回答是关于更新应用程序本身而不是内容。

最初询问的是如何创建具有动态内容的应用程序,例如 Facebook 或任何其他新闻源应用程序。

任何类型的此类应用程序都有两个部分:

  • 服务器
  • 客户

服务器存储您需要的全部信息,客户端向该服务器发出请求并显示信息。

假设服务器在数据库中存储一个名为News#1. 客户端请求新闻列表并array[News#1]作为响应返回并在屏幕上显示一个图块。然后有人创建新条目News#2。在对服务器客户端的下一个请求将获得 2 个元素的数组:array[News#1, News#2]并显示此动态内容。

REST Api 客户端是开始的。

在此处输入图像描述

于 2022-03-03T12:38:50.793 回答
0

还可以查看 AppCenter(前 HockeyApp)应用内更新https://docs.microsoft.com/en-us/appcenter/distribution/inappupdates

于 2020-02-04T08:07:13.550 回答
-3

你可以试试这个库:implementation 'com.github.vermat516:HelperLibrary:1.0.1' 在我看来这是最好的,我们只需要写的是:

new UniversalHelper(this).updateApp();

其余的工作将由图书馆自动完成

这是响应您的应用程序的外观[]

于 2020-12-26T14:30:28.943 回答
-3

这是替代品

https://developer.android.com/guide/app-bundle/in-app-updates#update_readiness

试试这个谷歌图书馆从应用程序更新

    dependencies {
implementation 'com.google.android.play:core:1.5.0'
...}
于 2019-09-30T14:01:01.660 回答