Android 开发必备知识点及面试题汇总(Android+Java,Kafka是如何实现高性能的

本文详细梳理了Android开发中面试常考的知识点,包括TCP三次握手、TCP与UDP的对比、HTTP协议及头部字段、HTTPS、GET与POST的区别、心跳包实现、文件断点上传、Fragment的使用和生命周期、四大组件的交互、内存管理、Service生命周期、BroadcastReceiver、ContentProvider原理以及View绘制过程。还涵盖了性能优化、内存泄漏预防和三级缓存等内容,是Android开发者面试和进阶的重要参考资料。
摘要由CSDN通过智能技术生成
  • 执行相应地任务,因为线程池的大小问题,所以 AsyncTask 只应该用来执行耗时时间较短的任务,

  • 比如 HTTP 请求,大规模的下载和数据库的更改不适用于 AsyncTask,因为会导致线程池堵塞,没有

  • 线程来执行其他的任务,导致的情形是会发生 AsyncTask 根本执行不了的问题。

算法集合

网络相关


1.TCP三次握手
2.为什么TCP是可靠的,UDP早不可靠的?为什么UDP比TCP快?
  • TCP/IP协议高,因为其拥有三次握手双向机制,这一机制保证校验了数据,保证了他的可靠性。

  • UDP就没有了,udp信息发出后,不验证是否到达对方,所以不可靠。

  • 但是就速度来说,还是UDP协议更高,毕竟其无需重复返回验证,只是一次性的

3.http协议了解多少,说说里面的协议头部有哪些字段?
  • http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议;http请求由三部分组成,分别是:请求行、消息报头、请求正文。

  • HTTP消息报头包括普通报头、请求报头、响应报头、实体报头

4.https了解多少

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

5.谈谈 HTTP 中Get 和 Post 方法的区别
  • GET - 从指定的服务器中获取数据,明文发送内容

  • POST - 提交数据给指定的服务器处理

  • POST请求不能被缓存下来

  • POST请求不会保存在浏览器浏览记录中

  • 以POST请求的URL无法保存为浏览器书签

  • POST请求没有长度限制

6.推送心跳包是TCP包还是UDP包或者HTTP包

心跳包的实现是调用了socket.sendUrgentData(0xFF)这句代码实现的,所以,当然是TCP包。

7.如何实现文件断点上传

在 Android 中上传文件可以采用 HTTP 方式,也可以采用 Socket 方式,但是 HTTP 方式不能上传

大文件,这里介绍一种通过 Socket 方式来进行断点续传的方式,服务端会记录下文件的上传进度,

当某一次上传过程意外终止后,下一次可以继续上传,这里用到的其实还是 J2SE 里的知识。

这个上传程序的原理是:客户端第一次上传时向服务端发送

“Content-Length=35;filename=WinRAR_3.90_SC.exe;sourceid=“这种格式的字符串,服务端 收到后会查找该文件是否有上传记录,如果有就返回已经上传的位置,否则返回新生成的 sourceid 以及 position 为 0,类似 sourceid=2324838389;position=0“这样的字符串,客户端收到返回后 的字符串后再从指定的位置开始上传文件。

计算机网络基础

Fragment相关


1.Fragment 如何实现类似 Activity 栈的压栈和出栈效果的?

Fragment 的事物管理器内部维持了一个双向链表结构,该结构可以记录我们每次 add 的

Fragment 和 replace 的 Fragment,然后当我们点击 back 按钮的时候会自动帮我们实现退栈操作。

2.Fragment 在你们项目中的使用
  • Fragment 是 android3.0 以后引入的的概念,做局部内容更新更方便,原来为了到达这一点要

  • 把多个布局放到一个 activity 里面,现在可以用多 Fragment 来代替,只有在需要的时候才加载

  • Fragment,提高性能。

Fragment 的好处:
  • Fragment 可以使你能够将 activity 分离成多个可重用的组件,每个都有它自己的生命周期和UI。

  • Fragment 可以轻松得创建动态灵活的 UI 设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。

  • Fragment 是一个独立的模块,紧紧地与 activity 绑定在一起。可以运行中动态地移除、加入、交换等。

  • Fragment 提供一个新的方式让你在不同的安卓设备上统一你的 UI。

  • Fragment 解决 Activity 间的切换不流畅,轻量切换。

  • Fragment 替代 TabActivity 做导航,性能更好。

  • Fragment 在 4.2.版本中新增嵌套 fragment 使用方法,能够生成更好的界面效果

3.如何切换 fragement,不重新实例化

正确的切换方式是 add(),切换时 hide(),add()另一个 Fragment;再次切换时,只需 hide()当前, show()另一个

fragement知识点

四大组件相关


1.Activity和Fragment生命周期有哪些?

Activity——onCreate->onStart->onResume->onPause->onStop->onDestroy<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值