软件安装下载【Android】

功能描述:

1.下载远程服务器端的apk文件

2.同步显示下载进度

3.下载完成自动安装

                              


关键技术点:

1.sd卡文件读写

2.ProgressDialog的使用

3.分线程请求网络

4.安装apk

主要分为三个步骤:

1.主线程,显示提示视图:ProgressDialog

2.启动分线程,请求下载apk文件,下载过程中显示下载进度

3.主线程,移除dialog,启动安装

首先将要安装的apk进行打包,并将其放在一个先建的web工程下,然后写一个布局文件,只需要有一个简单的按钮即可,可在按钮上设置监听事件,按着上面的步骤进行操作

第一步:

1.显示提示视图:ProgressDialog其为水平进度

2.准备用于保存APK文件的File对象

第二步: 

1.启动分线程,请求下载apk文件,下载过程中显示下载进度

2.使用HTTPUrlConnection得到请求连接对象,设置,连接,得到请求响应码

3.设置Dialog的最大进度

4.得到包含apk文件数据的InputStream

5.创建指向apkFile的FileoutputStream

6.边读边写,显示进度下载,休息一会

7.关闭流,关闭连接

第三步: 

1.移除dialog

2.启动安装

设置保存文件的File对象

 private File apkFile;

button的点击事件

public void download (View v) {
        //1.主线程,显示提示视图:ProgressDialog
        final ProgressDialog dialog = new ProgressDialog(this);
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.show();

        //准备用于保存APK文件的File对象
        apkFile = new File(getExternalFilesDir(null),"net.apk");
        //2.启动分线程,请求下载APK文件,下载过程中显示下载进度
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //得到连接对象
                    String path = "http://192.168.51.5:8080/web_server/app-release.apk";
                    URL url = new URL(path);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    //设置
                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(10000);
                    connection.setConnectTimeout(5000);
                    //连接
                    connection.connect();
                    //请求并得到响应码200
                    int responseCode = connection.getResponseCode();
                    if (responseCode==200) {
                        //设置Dialog的最大进度
                        dialog.setMax(connection.getContentLength());
                        //得到包含APK文件数据的InputStream
                        InputStream is = connection.getInputStream();
                        //创建指向apkFile的FileoutputStream
                        FileOutputStream fos = new FileOutputStream(apkFile);
                        //边读边写
                        byte [] buffer = new byte[1024];
                        int len =-1;
                        while ((len=is.read(buffer))!=-1) {
                            fos.write(buffer,0,len);
                            //显示进度下载
                            dialog.incrementProgressBy(len);
                            //休息一会(模拟网速慢)
//                            Thread.sleep(50);
                            SystemClock.sleep(50);//与上面相比这个不需要抛异常
                        }
                        fos.close();
                        is.close();

                    }
                    //下载完成
                    connection.disconnect();
                    //3.主线程,移除dialog,启动安装
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            dialog.dismiss();
                            install();
                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
启动下载

 private void install() {
        Intent intent = new Intent("android.intent.action.INSTALL_PACKAGE");
        intent.setDataAndType(Uri.fromFile(apkFile),"application/vnd.android.package-archive");
        startActivity(intent);
    }

权限设置,主要需要两个权限,联网权限和保存文件在sd时的权限

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如何在Android系统手机上安装软件的三种方法 很多朋友初用安卓手机,可能都会比较陌生。下面就介绍一下如何在安卓系统上安装软件。在Android平台上安装文件的后缀名一般为“.apk”(如果你下载软件是rar或者zip的话请解压之后再安装),和WM平台上的安装文件的后缀名“.exe”或者S60平台上的安装文件的后缀名“.sis或.sisx”相似。所以只要看到“.apk”结尾的文件就肯定是安装文件了。 在安装软件之前我们首先要对手机进行一系列的设置。在手机程序菜单中点“设置”进入,然后点击“应用程序”选项,在打开菜单中将“未知源”选项勾选中。然后进入“开发”子选项,勾选“USB 调试”选项。这样就完成了手机的设置。 完成如上准备工作后就可以进行软件安装工作了。常用的安装方法一共有三种,下面我依次来为大家讲解。 方法一 使用Android系统的手机最简单的软件安装方法是进入件Market或者也叫电子市场(如果提示需要设置Gmail的话请参看链接)中下载安装。使用非常简单,只需用手指拖出程序菜单,点击Market(或者叫电子市场)图标进入该程序。 然后在搜索框(search)中填写你需要的软件名称搜索即可,或者在软件分类和推荐软件列表中找到你要安装软件点击下载安装即可,如果是免费软件会显示为“Free”,如果是收费软件的话会提示软件的费用为“$xx”。 利用Market下载安装都非常方便,但是此方法的缺点是非常浪费流量(就算软件是免费的,但是网络流量还是要收费的哦!),所以此法只推荐在连接Wifi(如果你Wifi不会设置的话,可以参看该链接)的情况下使用。另外如果你想安装收费软件,但是又不想花钱那么你可以按照下边的方法安装你在论坛或网站下载的以“.apk”为后缀名的破解版软件。 方法二 如果你的手机所刷的固件是安卓自制的固件话,那么你的的手机中可能已经集成了“APK安装器”,你只需要把要安装的文件用读卡器拷贝到内存卡中。然后在在手机程序菜单中点“设置”进入,然后点击“应用程序”选项,拖动菜单到下端可以看到“APK安装器”,点击进入。 安装器会自动搜索你内存卡中的安装程序,你只需选择要安装的程序名称点击安装即可。 如果你的手机使用的是原生的或者没有集成程序安装器的ROM那么你需要去Market中下载一款名为App Installer(其实就是软件安装器)的软件。在Market中下载安装完成后,在程序菜单中就可以找到刚安装的App Installer了,使用方法同上。 方法三 直接使用电脑安装软件。使用“APK安装器”可以直接连接PC中将电脑中的软件安装到你的手机中。不过前提是必须先要安装Android手机的USB驱动,否则电脑无法识别所连接的手机,点击下载USB驱动程序,下载完成解压安装即可。 USB驱动安装完成后电脑就可以将你的手机自动识别为移动磁盘了。这是再点击下载“APK安装器”,下载安装完成后将该压缩包解压,然后点击运行该程序。该程序会自动关联电脑中的apk程序,安装软件时只需双击apk安装文件即可。该程序会帮助你自动将软件安装到你的手机里。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值