- HttpURLConnection:在Android 2.2版本之前,HttpClient拥有较少的bug,是以应用它是最好的选择。而在Android 2.3版本及今后,HttpURLConnection则是最佳的选择。它的API简单,体积较小,因而异常实用于Android项目。紧缩懈弛存机制可以有效地削减收集拜访的流量,在晋升速度和省电方面也起到了较大年夜的感化。对于新的应用法度榜样应当加倍偏向于应用HttpURLConnection,因为在今后的工作傍边我们也会将更多的时存放在优化HttpURLConnection膳绫擎。特点:比较简便,灵活,易于扩大,在3.0后以及4.0中都进行了改良,如对HTTPS的支撑,在4.0中,还增长了对缓存的支撑。
- HttpClient:高效稳定,然则保护成本昂扬,故android 开辟团队不肯意在保护该库而是转投更为简便的
- okHttp:okhttp 是一个 Java 的 HTTP+SPDY 客户端开辟包,同时也支撑 Android。须要Android 2.3以上。特点:OKHttp是Android版Http客户端。异常高效,支撑SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会主动处理常见的收集问题,像二次连接、SSL的握手问题。如不雅你的应用法度榜样中集成了OKHttp,Retrofit默认会应用OKHttp处理其他收集层请求。大年夜Android4.4开端HttpURLConnection的底层实现采取的是okHttp。
- volley:早期应用HttpClient,后来应用HttpURLConnection,是谷歌2013年推出的收集请求框架,异常合适去进行数据量不大年夜,但通信频繁的收集操作,而对于大年夜数据量的收集操作,比如说下载文件等,Volley的表示就会异常糟糕。
- xutils:缓存收集请求数据
- Retrofit:和Volley框架的请求方法很类似,底层收集请求采取okhttp(效力高,android4.4底层采取okhttp),采取注解方法来指定请求方法和url地址,削减了代码量。
- AsyncTask
13、常用的图片加载框架以及特点、源码
- Picasso:PicassoSquare的收集库一路能发挥最大年夜感化,因为Picasso可以选择将收集请求的缓存部分交给了okhttp实现。
- Glide:模仿了Picasso的API,并且在他的基本上加了很多的扩大(比如gif等支撑),支撑图片流,是以在做爱拍之类的视频应用用得比较多一些。
- Fresco:Fresco中设计有一个叫做image pipeline的模块。它负责大年夜收集,大年夜本地文件体系,本地资本加载图片。 为了最大年夜限度节俭空间和CPU时光,它含有3级缓存设计(2级内存,1级文件)。Fresco中设计有一个叫做Drawees模块, 便利地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空寄┞芳用。
Fresco是把图片缓存放在了Ashmem(体系匿名内存共享区)
- Heap-堆内存:Android中每个App的 Java堆内存大年夜小都是被严格的限制的。每个对象都是应用Java的new在堆内存实例化,这是内存中相对安然的一块区域。内存有垃圾收受接收机制,所以当 App不在应用内存的时刻,体系就会主动把这块内存收受接收。不幸的是,内存进行垃圾收受接收的过程恰是问题地点。当内存进行垃圾收受接收时,内存不仅仅进行潦攀垃圾收受接收,还把 Android 应用完全终止了。这也是用户在应用 App 时最常见的卡顿或短暂假逝世的原因之一。
- Ashmem:Android 在操作 Ashmem 堆时,会把该堆中存稀有据的内存区域大年夜 Ashmem 堆中采掏出来,而不是把它释放掉落,这是一种弱内存释放模式;被采掏出来的┞封部分内存只有当体系真正须要更多的内存时(体系内存不敷用)才会被释放。当 Android 把被采掏出来的┞封部分内存放回 Ashmem 堆,只要被采取的内存空间没有被释放,之前的数据就会恢复到响应的地位。
防止屏幕扭转的时刻重建,在清单文件中添加设备:
不管产生什么,垃圾收受接收器都不会主动收受接收这些 Bitmap。当 Android 绘制体系在衬着这些图片,Android 的体系库就会把这些 Bitmap 大年夜 Ashmem 堆中采掏出来,而当衬着停止后,这些 Bitmap 又会被放回到本来的地位。如不雅一个被采取的图片须要再绘制一次,体系仅仅须要把它再解码一次,这个操作异常敏捷。
14、在Android开辟里用什么做线程间的通信对象?
传统点的办法就是往同步代码块里些数据,然后应用回调让别的一条线程去读。在Android里我一般会创建Looper线程,然后Hanlder传递消息。
15、Android新特点相干
- 5.0:Material Design、多种设备的支撑、支撑64位ART虚拟机、Project Volta电池续航改进筹划等
- 6.0:动态权限治理、过度动画、付出、指纹等
- 7.0:分屏、通知消息快捷答复、夜间模式、流量保护模式等
16、收集请求优化
收集请求优化
- 可以或许缓存起来的尽量去缓存起来,减轻办事器的压力。例如APP中首页的一些数据,又例如首页的搁笔、案牍都是缓存起来的,并且这些数据经由过程收集来指定可以使app具有更大年夜的灵活性。
- 不消域名,用 IP 直连,省去了DNS域名解析。
- 连接复竽暌姑、请求归并、请求数据Body可以应悠揭捉?缩算法Gzip来进行紧缩,应用JSON 代替 XML
收集请求的安然性
这块懂得的不多。我给你说说我的思路吧,应用哈希算法,比如MD5,办事器给我们的数据可以经由过程时光戳和其他参数做个加密,获得一个key,在客户端掏出数据后根据数据和时光戳再去生成key与办事端给的做个比较。
17、新技巧相干
RXJava:一个异步请求库,核心就是异步。应用的是一种扩大的不雅察模式,被不雅察者产生某种变更的时刻,可以经由过程事宜(onNext、onError、onComplete)等方法经由过程不雅察者。RXJava同时支撑线程的调剂和切换,用户可以指定订阅产生的线程以及不雅察者触发的线程。
android5.0的SCG矢量动画机制
- 图像在办法缩小的时刻图片质量不会有损掉
- 应用XML来定义图形
- 适配不合分辨率
Retrofit:经由过程注解的方法来指定URL、请求办法,本质上底层是经由过程OKHttp来实现的。
推荐阅读
Github年度报告盘点:TensorFlow无疑是最大赢家!
开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 以前十年,Github所有开辟者共享2500万公共仓库的代码,用户遍布200多个国度,应用人数达到了2400万,有6700万Repo,新增了10亿提>>>详细阅读
本文标题:Android面试17个知识点总结宝典
地址:http://www.17bianji.com/lsqh/39609.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示