学Android进BAT技术指南(PS:我问过的一些校招面试题)
Posted 懂你的大海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学Android进BAT技术指南(PS:我问过的一些校招面试题)相关的知识,希望对你有一定的参考价值。
前段时间时间面试,自己以及小伙伴们简要的汇总的一些面试问题,可以对照的参考一下吧~
简单介绍一下本人:大厂拧螺丝,字节资深摸鱼执行官,参加过某大型项目(开会的时候提了点小建议)。。。
建议就是在面一家公司之前了解好这个公司的app是以什么为驱动的,例如电商的话肯定要了解hybrid 开发的一些知识点,图像处理的公司要好好复习下bitmap canvas相关的知识点,祝好运!
UI:
1.View的绘制
Android视图绘制流程完全解析,带你一步步深入了解View(二)
3)canvas
Activity:
onPause:可以看到这个activity (比如dialog) onStop:看不见这个activity
2.Activit用的启动方式
- standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。
- singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。
- singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
- singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。
3.ActivityManagerService
第6章 深入理解ActivityManagerService
4.activity的启动过程:
5.Activity之间的协作当一个activity A启动了另外一个activity B,它们的生命周期是有交叉的;
- 首先A的onPause()被调用;
- e之后B的onCrate(), onStart()及onResume() 方法会被调用(此时B拥有用户焦点);
- 最后,如果A在屏幕上不可见,onStop()方法被调用;
- 因此,我们在两个activities中传递数据,或者共享资源时(如数据库连接),需要在前一个activity的onPause()方法而不是onStop()方法中进行;
Service
1)service解析
2)两种启动方式
Fragment
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 选择
1.请求合并:
即将多个请求合并为一个进行请求,比较常见的就是网页中的 CSS Image Sprites。如果某个页面内请求过多,也可以考虑做一定的请求合并。
2. 减少请求数据的大小:
对于post请求,body可以做gzip压缩的,header也可以作数据压缩(不过只支持http 2.0)。
3. 返回的数据的body也可以作gzip压缩,body数据体积可以缩小到原来的30%左右。(也可以考虑压缩返回的json数据的key数据的体积,尤其是针对返回数据格式变化不大的情况,支付宝聊天返回的数据用到了)
4. 根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)
图像处理:
1.裁剪
2.Fresco:
android缓存
1.LRUCache
GC:
1.GC过程:
内存:
1)内存分配:
多线程
1)线程池:
事件分发机制
1)Touch
算法:
1.TopK堆解决
优化
1)Listview的优化
2)convertView是如何传递到adapter的getView方法的
Hybrid
1)java和JS的交互
Android中JavaScript和Native之间的Bridge
- WebView开启javascript脚本执行
- WebView设置供JavaScript调用的交互接口。
- 客户端和网页端编写调用对方的代码。
最后
关于面试题,我整理了一份包含初中高三个等级的面试题PDF文档,里面较为详细地总结了一些面试知识点,以及相关面试题的答案,需要的同学可以点这里,免费获得
同时除开这份面试题,以前整理的文档也全部分享给大家
需要的同学可以点这里,免费获得,免费赠送!!!
以上是关于学Android进BAT技术指南(PS:我问过的一些校招面试题)的主要内容,如果未能解决你的问题,请参考以下文章
BAT门槛高Android渣本处境难?开发3年还未进大厂焦虑?大厂内部面试官分享进大厂操作指南
求PS高手进、我有一个PSD文件、想把里面的一组动作录制成ant、我录制了几次颜色都不对、高手加Q说
中高端Android开发人才进,享学课堂忠实陪伴,让学习成为一种享受