实现android应用自动更新功能

在android应用开发中,需要考虑到以后新的应用更新,所以需要实现一个自动更新功能。当用户打开应用的时候,就获得服务器上的更新文件(版本号,以及下载地址…),然后和现在使用的APP比较,如果版本低了,就提示是否下载更新,如果版本一样就直接跳过。 实现步骤: 第一步:创建一个com.jhonse.update包,此包下创建一个UpdateManager.java类。 UpdateManager类的代码如下: package com.jhonse.update; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import com.jhonse.aaa515.R; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; import android.net.Uri; import android.os.Environment; import android.os.Handler; import … Continue reading “实现android应用自动更新功能”

【svn】SVN 配置自动更新

第一步: 配置好SVN服务器以及TortoiseSVN客户端 说明:branches、 tags、trunk这三个目录需要在同目录下创建,因为这三个目录是Subversion需要的三个目录。 第二步: 开发中经常要在更新SVN的同时要更新WEB服务器。可以用过Subversion的钩子(Hook)来实现。 以下是Windows操作系统下的配置: 在SVN库的hooks目录下面新建post-commit.bat文件,用记事本打开,然后写入如下的代码:   @echo off SET REPOS=%1 SET REV=%2 SET DIR=%REPOS%/hooks SET PATH=%PATH%; SET WORKING_COPY=D:\jhonse svn update %WORKING_COPY% –username your_user –password your_pwd   此处的D:\jhonse即是自动更新的目录(当然得先建好这个目录,并且从svn服务器上签出相应的项目)。 这样在用户提交完后,便会自动更新了。   需要注意到问题是: 1.  不要在自动更新的文件夹下作修改或其它操作,防止出现文件夹被锁。无法更新。   2.  在这里我明确写明了用户名(user),密码(pwd)。在我设置时发现,如果没有设置的话会出现错误,在直接运行这个bat文件时是能正常执行的,但是,在Subversion提交后却不能正常运行。并且可以看到服务器进程中会出现cmd,svn两个进程,并且不会自己结束,而用户在提交内容到服务器后,会出现客户端无法正常返回的问题。   3.  如果运行不能正常,可以通过下面的方法看到出错信息: 将刚才的post-commit.bat改名为post-commit-run.bat,然后再建一个post-commit.bat的文件,里面写入如下的代码: call %~dp0post-commit-run.bat %* > %1/hooks/post-commit.log 2>&1 这样运行结果就会被写入到post-commit.log文件中,如果出错,也可以找到出错的原因。