如何在没有Android市场的情况下以编程方式更新Android应用程序

时间:2013-02-13 13:12:46

标签: android google-play

我需要一些帮助,

1)我正在开发应用程序,其中我想显示包含视频的离线网站,所以我在原始文件夹中添加视频以便离线访问应用程序,我想在几天后更改该视频(可能是添加或删除一些视频来自应用程序)。 那么有可能在不使用Android市场的情况下更新我的应用程序吗?

这个想法是当我启动应用程序时它将解析json并检查我的网站上是否有新版本的应用程序可用。如果它可用,它将开始下载它(我不想打开浏览器下载。更新应该在我的应用程序或后台完成)并重新安装。如何通过编程方式做到这一点?

我如何在网页视图中缓存整个网站。目前我正在使用此代码,但它只缓存访问过的网页(我们在应用程序中打开的网页)

webView.getSettings().setLoadsImagesAutomatically(true);
 webView.getSettings().setDomStorageEnabled(true);
 webView.getSettings().setAppCacheMaxSize(1024*1024*24);
 String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
 webView.getSettings().setAppCachePath(appCachePath);
 webView.getSettings().setAllowFileAccess(true);
 webView.getSettings().setAppCacheEnabled(true);
 webView.setWebChromeClient(new WebChromeClient());
 webView.setWebViewClient(new WebViewClient());   
 if (savedInstanceState == null) {
 if(isNetworkAvailable() == true){
 webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
 webView.loadUrl("http://www.xyz.com");
  } else {
 webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);
 webView.loadUrl("http://www.xyz.com");
  }   } }

2)如何在没有单击eclipse的运行按钮的情况下通过usb将mac从mac安装到平板电脑。 我想安装这个apk到200平板电脑,所以我正在寻找一些批处理程序或一些脚本,这将是一个单击安装脚本的应用程序。 我在gooogle上搜索我发现了一个Multiple apk on click,但我不知道它是否适用于非root平板电脑。

等待回复。 谢谢

2 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点 首先使用推送通知,并在用户点击通知时告诉用户新版本从您的网络服务器下载apk并让他们安装(我已经使用过这个)

其他选项可能会在某个修复时间(一天)之后轮询您的Web服务器,并检查新版本是否可用一旦推送到通知区域,当用户点击它将再次重复时,可以使用新版本上述程序只需要您发送的Web服务器以及用户下载应用程序的位置

答案 1 :(得分:1)

我认为存储视频等资源是一种不好的方式。

您可以通过计时器将数据与您的站点同步并将所有数据存储在db或SD卡中 - 这样您就不需要重新安装应用程序,但有时只下载一些数据,并且所有数据都将在您的设备上并且可用脱机。

关于脚本 - 您可以编写自己的脚本并且只运行abd install app - 所以您只需要在不打开IDE的情况下启动adb。

顺便说一句,您可以在没有用户操作的情况下“重新安装”您的应用程序(在非root用户设备上) - 因此用户很多次重新安装您的应用程序非常不方便。

<强>已更新

要通过USB安装应用程序 - 此人必须有adb。

  

他们不想等到下载完成

但在这种情况下,他们必须等到app下载=)。 他们必须在资源中下载内容,甚至可以在线下载。

如果您想创建具有内置内容的应用,您可能会面临一些问题:

  • 有些设备不会接受你非常庞大的APK(例如,对于htc欲望来说,> 20 mb是一个坏主意=)
  • 每次您想要更新您的应用时,人们都必须重新下载大量的信息,如果您内置在线缓存,他们可以花费更少的时间来下载差异。即使人们通过USB安装您的应用程序 - 您也可以将所有数据放在SD卡上。
  • 您无法在非根设备上升级您的应用,以免人们生气 - 每次都必须重新安装您的应用。但是用我的方法可以睡觉,内容可以下载。

所以当你的方法比通常的“在线”方法更好时,我无法想象任何用例。