android 怎么检查新版本并且更新
发布时间:2025-05-13 08:55:44 发布人:远客网络
一、android 怎么检查新版本并且更新
在Android中,如何检测新版本并进行更新?首先,需要在Manifest中获取当前版本的信息。接着,从服务器获取版本号并与当前版本进行比较,如果不匹配,则提示用户进行升级。如果用户点击确定,系统将自动从服务器下载并进行升级。如果点击取消,则进入程序主界面。
服务器端存储apk文件和版本信息,通过version.xml文件便于比对更新。version.xml文件示例如下:
<?xml version="1.0" encoding="utf-8"?>
<version>2.0</version>
<url>;
<description>检测到最新版本,请及时更新!</description>
<url_server>;
public String getUrl_server(){
public void setUrl_server(String url_server){
public void setVersion(String version){
public void setUrl(String url){
public String getDescription(){
public void setDescription(String description){
this.description= description;
apk和版本信息地址都放在服务器端的version.xml里,方便管理。apk地址可以放在strings.xml里,但版本信息必须放在服务器端。
import org.xmlpull.v1.XmlPullParser;
public class UpdataInfoParser{
public static UpdataInfo getUpdataInfo(InputStream is) throws Exception{
XmlPullParser parser= Xml.newPullParser();
int type= parser.getEventType();
UpdataInfo info= new UpdataInfo();
while(type!= XmlPullParser.END_DOCUMENT){
if("version".equals(parser.getName())){
info.setVersion(parser.nextText());
} else if("url".equals(parser.getName())){
info.setUrl(parser.nextText());
} else if("description".equals(parser.getName())){
info.setDescription(parser.nextText());
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.view.View.OnClickListener;
public class VersionActivity extends Activity{
private final String TAG= this.getClass().getName();
private final int UPDATA_NONEED= 0;
private final int UPDATA_CLIENT= 1;
private final int GET_UNDATAINFO_ERROR= 2;
private final int SDCARD_NOMOUNTED= 3;
private final int DOWN_ERROR= 4;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getVersion=(Button) findViewById(R.id.btn_getVersion);
getVersion.setOnClickListener(new OnClickListener(){
localVersion= getVersionName();
CheckVersionTask cv= new CheckVersionTask();
private String getVersionName() throws Exception{
PackageManager packageManager= getPackageManager();
PackageInfo packInfo= packageManager.getPackageInfo(getPackageName(), 0);
public class CheckVersionTask implements Runnable{
String path= getResources().getString(R.string.url_server);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
int responseCode= conn.getResponseCode();
info= UpdataInfoParser.getUpdataInfo(is);
if(info.getVersion().equals(localVersion)){
msg.what= GET_UNDATAINFO_ERROR;
Handler handler= new Handler(){
public void handleMessage(Message msg){
Toast.makeText(getApplicationContext(),"不需要更新", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(),"获取服务器更新信息失败", 1).show();
Toast.makeText(getApplicationContext(),"下载新版本失败", 1).show();
protected void showUpdataDialog(){
AlertDialog.Builder builder= new Builder(this);
builder.setMessage(info.getDescription());
builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
AlertDialog dialog= builder.create();
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("正在下载更新");
File file= DownLoadManager.getFileFromServer(info.getUrl(), pd);
protected void installApk(File file){
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.net.HttpURLConnection;
import android.app.ProgressDialog;
import android.os.Environment;
public static File getFileFromServer(String path, ProgressDialog pd) throws Exception{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
pd.setMax(conn.getContentLength());
InputStream is= conn.getInputStream();
File file= new File(Environment.getExternalStorageDirectory(),"updata.apk");
FileOutputStream fos= new FileOutputStream(file);
BufferedInputStream bis= new BufferedInputStream(is);
byte[] buffer= new byte[1024];
while((len= bis.read(buffer))!=-1){
在AndroidManifest.xml中添加必要的权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
二、Android Studio安卓开发如何更新Android SDK
在安卓开发的新手之旅中,我遇到了SDK版本更新的问题。初始下载的Github Demo经常因为SDK版本不匹配而报错。经过一番波折,我从一位名叫【杭州-jniu】的高手那里获得了帮助,并参考了他分享的【原文章链接】。这个过程值得记录下来。
问题的关键在于Android SDK Manager无法连接到Google下载,主要依赖于dl.google.com和dl-ssl.google.com这两个地址。由于网络限制,它们通常是不可用的。解决方法是通过修改系统的hosts文件,将这些地址指向可用的Google服务器。可以使用站长工具的超级ping功能来查找国内响应时间较短的IP地址。Windows用户需要找到c:\windows\system32\drivers\hosts.ics文件,Mac用户则在命令终端中使用sudo vim/etc/hosts进行编辑。
在Android Studio(我使用的是2.3版本)中,具体操作步骤是:打开软件,选择菜单「Tools」->「Android」->「SDK Manager」,在弹出的设置窗口中,进入Appearance& Behavior->System Settings,找到HTTP Proxy设置,将其设为No Proxy,然后点击Apply保存。接着,尝试点击出现的错误链接进行更新,如果失败,可以尝试更换hosts文件中的IP地址再试,直至成功更新。
三、Android系统可以升级吗怎么升级
安卓系统可以升级,升级过程如下:
下面以升级Android2.3.4为例子,注意:Android2.3.4只支持从Android2.3.3升级,如果系统是Android2.3.1的话,必须要先升级到Android2.3.3才可以再升级为2.3.4。
另外,这个升级是增量升级,并不会删除原先系统中的数据,所以大家可以放心升级。
第一步:先要手机下载Android2.3.4的升级数据包,我用的电脑给你搜了一下。
第二步:将下载的数据文件放入到内部存储空间的根目录下(不是SD卡)。
第三步:安卓系统升级到此就需重新启动系统了,在重启后需要连续按下VolumeUp(音量增大)和Power(电源)按键的方法来进入到Bootloader。
第四步:使用Volume(音量)按键来选中“recovery”,再按下Power(电源)按键进行确认。当在屏幕上看到三角形以后,需要按下Power(电源)按键然后再按下VolumeUp(音量增大)按键,这个时候就能够看到一个选项列表了,选择第一步中下载文件进行更新即可。
安卓系统升级过程需要持续数分钟,请保持电力的充足。
Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 1.0)。后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。
甜点命名法开始于Android 1.5发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松饼(Android 2.0/2.1),冻酸奶(Android 2.2),姜饼(Android 2.3),蜂巢(Android 3.0)。
冰激凌三明治(Android 4.0),果冻豆(Jelly Bean,Android4.1和Android 4.2),奇巧(KitKat,Android 4.4),棒棒糖(Lollipop,Android 5.0),棉花糖(Marshmallow,Android 6.0),牛轧糖(Nougat,Android 7.0),奥利奥(Oreo,Android 8.0)。