Android网络编程面试题汇总(含详细解析 七)

134 阅读4分钟

Android并发编程高级面试题汇总最全最细面试题讲解持续更新中👊👊 👀你想要的面试题这里都有👀 👇👇👇

断点续传原理(腾讯)

这道题想考察什么?

是否掌握断点续传原理

考察的知识点

HTTP协议

IO处理

考生如何回答

在基于HTTP协议的通信中,断点续传功能最核心的原理就是利用HTTP请求中Range字段。

当请求服务器上的一个文件时,通过在请求头中设置"Range: bytes=x- "

HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
httpConnection.setRequestProperty("RANGE","bytes=200");

Range表示需要服务器返回的文件字节数据从第x字节开始,指定需要传输的文件数据范围。

当需要对服务端传输的文件数据进行保存(下载)。在Java中也可以借助RandomAccessFile的seek方法访问记录并读取指定位置的数据。

RandomAccess rafile = new RandomAccessFile("down.zip","rw"); 
// 定位文件指针到 200 位置 
rafile.seek(200);
// 前200字节不改动,从200字节开始写入数据到文件
rafile.write(...)

7.9 如何保证下载文件的完整性(网易)

这道题想考察什么?

文件下载程序鲁棒性

考察的知识点

文件校验

考生如何回答

以Android程序进行更新升级为例,一般情况下,APP启动都会请求服务端:是否有新版本APK?

如果有升级需要,那么服务端可能会返回如下数据:

{'msg':'更新日志','url':'下载地址''version':'版本号',......}

那么此时我们通过服务端响应的json数据中新版本APK的URL地址对APK文件进行下载,然而在互联网中进行文件传输过程中,可能由于各种原因导致文件的不完整。此时我们程序中若无法进行APK文件完整性的判断,直接请求安装此APK文件,很显然会显示:无法安装。

为了解决这个文件,服务端的响应数据中需要增加文件校验码( MD5、SHA1、CRC32)。以MD5为例,服务端在响应的数据中新增了:md5字段。

{'msg':'更新日志','url':'下载地址''version':'版本号','md5':'xxx',......}

每个文件都可以用 MD5 验证程序算出一个固定的 MD5 码。当客户端下载了文件后,可以计算所下载的文件的 MD5 码,和服务端响应的 MD5 码比较。如果计算出来的和服务端响应的不匹配,那么下载的APK文件不完整,或是被别人动过手脚。

因此可以通过文件校验的方式保证下载文件的完整性。

更多Android面试题 可以详细Vx关注公众号:Android老皮 解锁                  《2023最新Android中高级面试题汇总+解析》

目录

img

第一章 Java方面

  • Java基础部分
  • Java集合
  • Java多线程
  • Java虚拟机

img

第二章 Android方面

  • Android四大组件相关
  • Android异步任务和消息机制
  • Android UI绘制相关
  • Android性能调优相关
  • Android中的IPC
  • Android系统SDK相关
  • 第三方框架分析
  • 综合技术
  • 数据结构方面
  • 设计模式
  • 计算机网络方面
  • Kotlin方面

img

第三章 音视频开发高频面试题

  • 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
  • 怎么做到直播秒开优化?
  • 直方图在图像处理里面最重要的作用是什么?
  • 数字图像滤波有哪些方法?
  • 图像可以提取的特征有哪些?
  • 衡量图像重建好坏的标准有哪些?怎样计算?

img

第四章 Flutter高频面试题

  • Dart部分
  • Flutter部分

img

第五章 算法高频面试题

  • 如何高效寻找素数
  • 如何运用二分查找算法
  • 如何高效解决雨水问题
  • 如何去除有序数组的重复元素
  • 如何高效进行模幂运算
  • 如何寻找最长回文子串

img

第六章 Andrio Framework方面

  • 系统启动流程面试题解析
  • Binder面试题解析
  • Handler面试题解析
  • AMS面试题解析