如何在没有 playstore 的情况下自动更新 android 应用程序?喜欢 Facebook 应用程序或任何竞赛应用程序

How to autoupdate android app without playstore? Like Facebook app or any Contest app

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

它的技术术语是什么?

有教程吗?

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

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

  • AppUpdater. Android Library that checks for updates on your own server (or Google Play, Github, etc). Great documentation。此库通过显示 Material 对话框、Snackbar 或通知来通知您的应用更新。
  • Android Auto Update。中国图书馆,但应该可以做到这一点,最受欢迎的图书馆之一,但这可能只是因为 Google Play 在中国不可用。
  • AppUpdateChecker 一种让您的应用程序保持更新的简单非市场方式。 设置所需的只是 URL 指向 JSON 文档,描述您的应用程序的更改。
  • Auto Updater This project allows to automatically update a running APK application using a private update server (see apk-updater) 而不是 Google 播放更新程序。还附带一个服务器脚本。
  • SmartUpdates。较旧的库,但有英文说明,还提供服务器脚本。
  • WVersionManager。检查更新,但必须从 Play 商店下载实际更新。

这是备用

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

试试这个 google 库从应用程序更新

    dependencies {
implementation 'com.google.android.play:core:1.5.0'
...}

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

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)
        }
    }

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

new UniversalHelper(this).updateApp();

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

这是您的应用的响应[This]

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

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

任何类型的此类应用程序都包含 2 个部分:

  • 服务器
  • 客户

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

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

REST Api客户端是开始的东西。