当前位置:网站首页>AutoJs学习-实现文件下载进度
AutoJs学习-实现文件下载进度
2022-07-21 18:37:00 【芝麻粒儿】
关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
本文约3千字,新手阅读需要8分钟,复习需要2分钟 【收藏随时查阅不再迷路】
实践过程
/** * @功能 悬浮窗显示文件下载进度 */
var app下载地址 =
'你的下载地址';
let url = app下载地址; // update_list.url
var filePath = files.join(files.getSdcardPath(), 'myApp.apk');
log('url=' + url);
log('filePath=' + filePath);
download(url, filePath);
function download(url, filePath) {
importClass('java.io.FileOutputStream');
importClass('java.io.IOException');
importClass('java.io.InputStream');
importClass('java.net.MalformedURLException');
importClass('java.net.URL');
importClass('java.net.URLConnection');
importClass('java.util.ArrayList');
var url = new URL(url);
var conn = url.openConnection(); //URLConnection
var inStream = conn.getInputStream(); //InputStream
var fs = new FileOutputStream(filePath); //FileOutputStream
var connLength = conn.getContentLength(); //int
var buffer = util.java.array('byte', 1024); //byte[]
var byteSum = 0; //总共读取的文件大小
var byteRead; //每次读取的byte数
log('要下载的文件大小=');
log(connLength);
var threadId = threads.start(function() {
var w = floaty.rawWindow(
<vertical gravity="center" w="{
{device.width}}px" h="{
{device.height}}px">
<horizontal layout_gravity="center" gravity="center" bg="#ffcc00">
<text textSize="39sp">下载进度</text>
<text textSize="39sp" id="progressNum">
0
</text>
</horizontal>
</vertical>
);
while (1) {
var 当前写入的文件大小 = byteSum;
var progress = (当前写入的文件大小 / connLength) * 100;
if (progress > 0.1) {
var progress = parseInt(progress).toString() + '%';
ui.run(function() {
w.progressNum.setText(progress);
});
if (当前写入的文件大小 >= connLength) {
break;
}
}
sleep(1000);
}
});
while ((byteRead = inStream.read(buffer)) != -1) {
byteSum += byteRead;
//当前时间
currentTime = java.lang.System.currentTimeMillis();
fs.write(buffer, 0, byteRead); //读取
}
threadId && threadId.isAlive() && threadId.interrupt();
toastLog('下载完成');
}
其他
作者:小空和小芝中的小空
转载说明-务必注明来源:https://zhima.blog.csdn.net/
这位道友请留步️,我观你气度不凡,谈吐间隐隐有王者霸气,日后定有一番大作为!!!旁边有点赞收藏今日传你,点了吧,未来你成功️,我分文不取,若不成功️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。
边栏推荐
猜你喜欢
随机推荐
华泰证券远程开户安全吗?有保障吗?
互联网寒冬,3个月如何从功能测试进阶自动化测试?【附学习指南】
List集合
第二章 第二十四节:文件操作:写
Laravel文档阅读笔记-How to deploy Laravel 8 project on Cpanel shared hosting
第三章 第二节:参数的概念
数据访问之JPA
本地数据如何高效灾备上腾讯云
高校学生返校名单信息生成- 腾讯云场景连接器全国高校创新赛
【报错】ValueError: It seems that you are using the Keras 2 and you are passing both
关于最近面试总结
Review of Biochemistry III. sugars
opencv实现银行卡号识别
DHCP 以及 DHCP 的工作原理
解决API开发痛点,Apipost和Apifox哪个更好?
Section 23 of Chapter 2: document operation: Reading
第二章 第十七节:字典知识补充
Solution of exceeding the margin after padding or border when wechat applet width100%
Let me show you eight fallacies in software design
leetcode:1838. 最高频元素的频数【排序 + 前缀和 + 二分 + 思维】