00:00
好来下面呢,我们来去做它,首先第一个界面布局,这个也太简单了。大家看就是一个什么。把这个给拉走。乃拖一个八。左上角来。嗯,就头一个button好了,这个button呢,不要ID了,ID也不要了,来一个这个是叫什么名字啊,叫直接下载并安装最新APP。嗯,直接下载并安装,嗯,最新APK好了吧,好,如果它没有ID,这里面写着一个on click属性呢。叫什么呢?Download APK,好,有这样一个回调方法,来,我们来写一下。
01:14
好了吧,嗯,好吧,来,那我们就把这一步给搞完了,下面。啊,这个点击处理,我们回调方法已经写了,下面我们重点是不是写他们仨呀,来一个一个去一个一个写,没关系啊看着。先来看第一步主线程显示视图。这咋做呀?现在我们是一个水平进度的吧,那水平进度了怎么办呢?看到pro dialo啊dial log等于六一个progressal log传一个this,好,接着要给它设置一下点。
02:03
Set。Progress。Dialoggue.stylez。水平的一个样式,好了,可以把它显示出来点秀。对对吧,好,下面大家看啊。我们现在呢,除了去准备一个视图,还有一个需要准备的,因为我们后面是不是要下载呀,下载成为一个文件吧,你说要保存一个文件,需要有一个什么东西。啊,这个地方我们需要有一个费对象对吧,用一个fair来去保存那个文件吧。嗯,这个地方我们还要准备一个。嗯,准备用于保存APK文件的备对象,嗯,看看这个怎么做。
03:15
那首先你得想我们这个费尔对象是保在哪个位置的,对不对?啊,跟大家说一下,我们的这个费对象到时候是不是要启动安装的吧,不能去保存到data下面,为什么不能保存那里面,因为那是私有的。而我们是要启动安装界面,那个界面是我们的应用的界面的吗?并不是,就是我们最终是不是启我一点下载,最终是不是启动的那个安装界面吧,那个界面是不是要读那个AK啊。那HK如果私有的,他能读到吗?不能,所以说我们需要去把它放到SD卡里面。放在SD卡里面是不是又分两个位置啊?啊,你随便选一个位置就行。啊,至于说假设我们最终呢,把那个放到SD卡,SD卡是个什么路径呢?Storage SD card,嗯,下面我们如果是有报名的话啊,譬如说那个路径一怎么写,Android接着吧。
04:18
Package name是吧,下面的对吧,下面的什么叉叉叉点APK是吧?好来我们就搞这个路径。我需要有这样一个对象。这个能得到吗?叫APK菲。来注意一下。这个路径怎么得来的?还记得不?Get fair there?对吧,传一个,那这一个只是得到的是哪个路径的费啊。
05:00
是非要死啊,好了,我要得到路径,那这样的话,那就这么做。我就溜一个菲,大家看,嗯,这里面哪个比较合适。第几个?第一方,第三个。第三个比较合适。首先是他的那个目录的费对象,就他。对吧,接着里面传一个什么APK文件的名字啊啊,我们随便定一个名字啊。随便就真的不特别不好随便,说实话,就好像人那时候经常跟人吃饭的时候,你说吃啥随便随便啊,随便他没有这个菜啊,不能不能下载啊,啊点APK。啊。搞定啊,这样我们就有了一个非尔对象,下面我们继续往下看啊,下面呢,我们要启动分线程,怎么做呢?
06:04
看一下这里面,那不是我们拿手戏吗?点start。好,来这里面整一个roundable吧,又一个round。嗯,好,我们需要去启动分析去下载来了,大家看啊。真正下载的时候需要发请求啊嗯。这个请求的过程,来,我把它写一下啊,把这个过程写一下,第一步我简单的写,这一次我就简单写得到连接对象,第二步啊设置第三步啊连接啊第四步。这一次,我们是get请求、post请求。我们请求的路径不就是一个刚才的这样一个路径吗?我们POS你想我们提交数据吗?
07:01
提交啥数据吗?就请求这样一个路径,我们提交啥数据,他也接受不了数据。对吧,这个明显就是个get请求,对吧,好。下面来,那如果这个概率请求我就不用写什么数据了吧,是吧,那我直接就是去啊请求哦,并得到。嗯,想一码吧,想一码这个小一码是多少来着。应该是200对吧,啊为200啊,我们在干活做什么事呢。那为200的时候我们做什么?大家看啊,这个时候下载下来是干嘛呢。这个地方大家看啊,我们要做这样的,做这些事得到什么牛。是不是包含APK文件的文件数据的什么的啊,叫input。
08:09
对吧。好了吧,啊,那有有一个输入流,我得把这个输入流干什么事去了,是把它保存为一个非对象,保存到这个文件里面去啊,这文件现在是个空文件吧,什么文什么数据有没有对不对。咋了?来,下面还要创建一个流。啊,创建啊,一个指向指向AKB的另外一个牛是吧,叫fair output string,是不是有了这两个牛就干嘛。是不是要边读边写啊啊,边读边写。
09:05
没问题吧,好大家别忘了,这里面还有一个视频大家看啊,我们这一个我们的第二步这个地方下载过程中显示下载进度。你边读边写,你是不是要写了一点以后,读一点写一点以后就干嘛。第八步。显示下载进度吧。没了吧,好。你其实我们这个第七步和第八步是应不应该在一个循环里面做吧。这个要懂啊好出来循环后面呢,那下载完了。啊,大家看后面呢,会涉及到一个啊,啊下载完成说什么事好关闭流啊关闭还有做什么。
10:08
那你是不是要去切换到主线上去做呀,啊哦,就进入第三步。牛三,嗯,就干这样的事就差不多对吧?好。来下面呢,我们就照着这个流程呢,给他写一写。得到一个连接,通过谁来得连接呀,是不是URL呀,我们用原生来去做啊,这个比较其实用起来比较方便,URL好,现在需要一个路径。就是一个pass。好,他怎么写,刚才我们不是在这。是不是就这个,嗯。不就他吗?
11:00
对吧,好,这里面呢有异常。好,来继续得到,还没有调到年纪的是整了半天叫什么open connection connection是吧?好,有了connection以后下面做一些设置。哎,不对,这个这个不行是吧,我们要改一下类型。Http URL connection做一个。Http connection啊下,因为有下面的问题,它不提示啊。好,来看一下设置请求方式,为什么呢?Get跟大家说一下,默认就是get可以不用设置。
12:03
如果你是get请求的话,它肯定要有一个默认的方式嘛,对不对啊好,下面主要还是超时时间,一个是连接超时啊,假设我写个五秒吧,好,还有一个那个read超时是吧?啊譬如说啊这一次十秒。可以吧,好,下面。连接点能了解吧,下面。来衣服。啊,我们现在先要得到小一码再说,对吧?connection.get response cold这个瑞扣的if,瑞方扣的要等于200,我才干下面的事。
13:05
是这个情况吧,好啦,下面来看啊。得到包含AK的input stream,这个怎么着?connection.get。Input stream,好,这里面有一个输入流了,好,下面需要一个,需要一个输出流。啊,一个fair in out是吧,String好,需要一个fair。哪个APK?对吧,嗯,好这个地方啊,我这个APP后面要用,如果我后面还用一下的,我把这个呢,可以把它保存为一个成员变量啊。好了吧,好,下面我们来看一下啊,这地方是一个out of the stream OS。
14:08
好了吧,边读边写。来什么呀?我得定义一些东西才能well吧,这过写法来啊,我把这个我的这个写了无数遍了,又一个。看吧,好,下面有一个特勒等于负一吧,好,下面。我把我括号,那等于。is.read读读到八分里面不等于负一是吧?嗯,好了,写fos点来写写到方法里面去,零开始写写认。
15:03
好吧。对吧,好,这个时候就要注意了。嗯,我们边读边写的过程中写一点,是不是相当于保存一些数据,要显示进度啊,这个怎么显示进度呢?PD啊,Dialogue刚才叫什么名字啊,看到看dialo。爹。Set progress。那三分是多少啦?这个地方我们是不是要进度要增长啊,有一个方法挺有用的啊,叫increment。博格败。这是啥意思呀?你看着啊,它这个地方是不是在以前的那个基础上加上一些啊,加上一些,那我那我加上多少啊。
16:01
是不是加上嫩呢?这个有个前提,你要这么写得有一个前提。什么前提呀?就是我的最大值要等于我整个文件的是不是大小啊啊,我最大进度也就是说在这个里面大家看到啊,我们在这里面这里先。要去设置嗯,进度设置大的最大进度吧,的最大进度,这个怎么设呢?来dialo.set一个max,关键是这个max等于多少,首先我们知道这等于文件大小吧,我怎么得到文件的大小了。对吧,这个地方有一个方法像get content。
17:00
这个就非常有用。对吧。这是不是相当于内容的大小,就是文件的大小啊,嗯。来了,好了吧。好了,来继续往下看啊。嗯,下面我每一次是不是增加我读的个数啊就可以了。好来,为了能够有一个明显的效果,我这个地方做一个事情很简单,休息一会,我这个休息会是模拟什么?模拟网速比较慢对吧,网速慢啊好休息一会,以前我们都用这样一个嘞,用一个shad对吧?啊用它有一个啊来right.sleep睡睡一个,嗯,比如说睡一个多长时间呢,50吧。啊,50毫秒,嗯,其实在在这里面大家说一下,在安卓里面有一个比较好用的类叫system clock,它有一个方法也是叫sleep。
18:08
嗯,它们俩有什么区别呢?大家可以看一下啊。就是我们的S,他说抛异常啊。哦,我这个泡一茶吗?不。看到了吧,啊,其实就是很大很大一个区别,就是它这里面已经把异常给他是不是处理掉了啊,也就是说我这里面没看见抛异常啊。我都快踹了嘛,对吧。啊,真正我们平常用的比较多的是下面这一个,我把它给大家用一下,嗯,这个也比较有意思,嗯,它呢,还有一个方法,我们已经这个地方啊,后面也可能会用到。啊呃,得到看到得到一个它在里面,它在里面得到当前的时间可以啊,我们以前用什么得到当前时间,还记得不?System had ten minutes是吧,嗯。
19:07
好,先用一下它啊试试,嗯。好啦,那这样是不是可以保存完成呢?好保存完成,下载完成以后呢,我要循环一出来就会进入到这个里面来看到啊啊在这下载完成关闭并进入三。啊,关闭连接怎么说。嗯,这个地方有一个,哎,这个关闭应该在外面是不是去整了啊,对吧,因为有可能不是200对不对。啊,牛也要关是吧?啊牛关一下来在哪个关,我们看一下啊。在衣服里面去关吧,啊,Is fo fos.clothes还有一个点close没了吧。好,把这个别忘了来。下载完成关闭其断开连接,说白了就是connection d第connection断开连接好进入三,那进入三怎么样进入三呢?
20:14
嗯,来看一下这个三怎么做主线程run us new,一个run。好了吗?嗯,来,在这个地方首先移除dial dial点这个太简单了。重点是我现在是不是要启动一个安装啊。Start安装,呃安装怎么说呢,就是安装吧。嗯,我就写一个方法叫install APK吧,就写这样一个方法叫install APK,好来试一下,我把这个方法呢给它创建出来。
21:00
别写在里面,我写到外面去啊。谢谢老外面可以吧,嗯,可以。
我来说两句