Android开发Android开发经验谈Android技术知识

Android开发五年,面试阿里才发现这些知识点没完全掌握;你知

2020-05-18  本文已影响0人  4ca1bbef6a0c

第一次观看我文章的朋友,可以关注,点赞,转发一下,每天分享各种干货技术和程序猿趣事

前言

工作五六年了,一路磕磕绊绊从小厂走到大厂,大大小小的面试也经历了不少,也有一些经验。下面我整理了一下历来面试所遇到的面试内容,内容包含:Android学习PDF+架构视频+最新面试文档+源码笔记 这几块的内容。免费分享给大家,非常适合有这些困惑的朋友。也是希望可以帮助到大家提升进阶,有需要的可以私信我【资料】领取

好了话不多说下面我们进入正题!

正文

网络优化

移动端获取网络数据优化的几个点

1、连接复用:节省连接建立时间,如开启 keep-alive。于Android来说默认情况下

HttpURLConnection和HttpClient都开启了keep-alive。只是2.2之前HttpURLConnection存在影

响连接池的Bug。

2、请求合并:即将多个请求合并为一个进行请求,比较常见的就是网页中的CSS Image Sprites。

如果某个页面内请求过多,也可以考虑做一定的请求合并。

3、减少请求数据的大小:对于post请求,body可以做gzip压缩的,header也可以做数据压缩(不

过只支持http 2.0)。

返回数据的body也可以做gzip压缩,body数据体积可以缩小到原来的30%左右(也可以考虑压缩

返回的json数据的key数据的体积,尤其是针对返回数据格式变化不大的情况,支付宝聊天返回的

数据用到了)。

4、根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)。

5、使用HttpDNS优化DNS:DNS存在解析慢和DNS劫持等问题,DNS 不仅支持 UDP,它还支持

TCP,但是大部分标准的 DNS 都是基于 UDP 与 DNS 服务器的 53 端口进行交互。HTTPDNS 则不

同,顾名思义它是利用 HTTP 协议与 DNS 服务器的 80 端口进行交互。不走传统的 DNS 解析,从

而绕过运营商的 LocalDNS 服务器,有效的防止了域名劫持,提高域名解析的效率。

image

内存抖动(代码注意事项):

内存抖动是由于短时间内有大量对象进出新生区导致的,它伴随着频繁的GC,gc会大量占用ui线程和

cpu资源,会导致app整体卡顿。

避免发生内存抖动的几点建议:

为什么WebView加载会慢呢?

这是因为在客户端中,加载H5页面之前,需要先初始化WebView,在WebView完全初始化完成之前,

后续的界面加载过程都是被阻塞的。优化手段围绕着以下两个点进行:

因此常见的方法是:

除此之外还有一些其他的优化手段:

FC(Force Close)什么时候会出现?

Error、OOM,StackOverFlowError、Runtime,比如说空指针异常

解决的办法:

如何解决View的事件冲突?

常见开发中事件冲突的有ScrollView与RecyclerView的滑动冲突、RecyclerView内嵌同时滑动同一方

向。

滑动冲突的处理规则:

滑动冲突的实现方法:

Draw的基本流程

绘制基本上可以分为六个步骤:

setWillNotDraw的作用

如果一个View不需要绘制任何内容,那么设置这个标记位为true以后,系统会进行相应的优化。

invalidate() 和 postInvalidate()的区别 ?

invalidate()与postInvalidate()都用于刷新View,主要区别是invalidate()在主线程中调用,若在子线程

中使用需要配合handler;而postInvalidate()可在子线程中直接调用

数据库的四大特征,数据库的隔离级别?

数据库的四大特征:

数据库的隔离级别:

文末

好了,由于内容太多文章篇幅有限,今天的分享就到这里了,有需要完整资料的朋友可以私信我【资料】免费获取或者点这里

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

Android学习PDF+架构视频+最新面试文档+源码笔记

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【Android必备核心知识点】

上一篇 下一篇

猜你喜欢

热点阅读