前段时间时间面试,本身以及小伙伴们简要的汇总的一些面试问题,能够对照的参考一下吧~javascript
简单介绍一下本人:大厂拧螺丝,字节资深摸鱼执行官,参加过某大型项目(开会的时候提了点建议)等等,但愿你们对我有个清楚的认识。html
建议就是在面一家公司以前了解好这个公司的app是以什么为驱动的,例如电商的话确定要了解hybrid 开发的一些知识点,图像处理的公司要好好复习下bitmap canvas相关的知识点,祝好运!java
1.View的绘制android
Android视图绘制流程彻底解析,带你一步步深刻了解View(二)git
2) Android自定义View的实现方法github
3)canvas面试
Andriod中绘(画)图----Canvas的使用详解算法
1.onPause和onStop的区别sql
onPause:能够看到这个activity (好比dialog) onStop:看不见这个activity数据库
2.Activit用的启动方式
3.ActivityManagerService
第6章 深刻理解ActivityManagerService
4.activity的启动过程:
5.Activity之间的协做当一个activity A启动了另一个activity B,它们的生命周期是有交叉的;
1)service解析
2)两种启动方式
1)生命周期:
1)contentprovider
2)sqlite
1,不要让生命周期长于Activity的对象持有到Activity的引用
2,尽可能使用Application的Context而不是Activity的Context
3,尽可能不要在Activity中使用非静态内部类,由于非静态内部类会隐式持有外部类实例的引用(具体能够查看细话Java:”失效”的private修饰符了解)。若是使用静态内部类,将外部实例引用做为弱引用持有。
4,垃圾回收不能解决内存泄露,了解Android中垃圾回收机制
1)volley
Android Volley彻底解析(四),带你从源码的角度理解Volley
2)如何控制TCP链接时的拥塞
3)三次握手
4)Android客户端和服务端如何使用Token和Session
Android客户端和服务端如何使用Token和Session
0. 链接复用 :
节省链接创建时间,如开启 keep-alive。
对于 Android 来讲默认状况下 HttpURLConnection 和 HttpClient 都开启了 keep-alive。只是 2.2 以前 HttpURLConnection 存在影响链接池的 Bug,具体可见:Android HttpURLConnection 及 HttpClient 选择
即将多个请求合并为一个进行请求,比较常见的就是网页中的 CSS Image Sprites。若是某个页面内请求过多,也能够考虑作必定的请求合并。
2. 减小请求数据的大小:
对于post请求,body能够作gzip压缩的,header也能够做数据压缩(不过只支持http 2.0)。
3. 返回的数据的body也能够做gzip压缩,body数据体积能够缩小到原来的30%左右。(也能够考虑压缩返回的json数据的key数据的体积,尤为是针对返回数据格式变化不大的状况,支付宝聊天返回的数据用到了)
4. 根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)
1.裁剪
2.Fresco:
1.LRUCache
1.GC过程:
1)内存分配:
1)线程池:
1)Touch
1.TopK堆解决
1)Listview的优化
2)convertView是如何传递到adapter的getView方法的
1)java和JS的交互
Android中JavaScript和Native之间的Bridge