Android高级工程师面试题,适用于中高级

本Android面试题,适用于中高级开发工程师,仅供参考,文章有点长,还请耐心查看,希望对你有帮助。

 中级模块        
一.Activity的启动模式    

四种启动模式1.startdard每次都会创建2.TOP只要不在栈顶都会进行创建3.Task如果存在,就重用,没有则创建,重用是,移到栈顶,在他上面的都会被移除栈4.Instance创建并共享该栈的实例,相当于多个应用共享一个应用,适用于闹铃,不适用于中间页面跳转        
二.MVC、MVP设计模式  

1.前者主要将逻辑交互和用户交互都放到Controllor中,也就是Activity2.后者将用户交互和逻辑交互分离开来3.前者允许Model与View进行交互,后者Model与View的交互有Presenter完成    M:业务逻辑和实体模型 V:view的绘制和用户交互C:逻辑处理 P:model与view的交互    
三.四大组件以及使用方式            
四.网络请求   

1.Volley使用方法 2.OKHttp使用方法3.Retrofit使用方法    三者区别和联系    

五.get/post请求的区别    

1.查询类操作/增删改类操作2.安全性能3.前者传递的数据量较少4.前者获取数据,后者传送数据        
六.xml/json的区别以及解析方式  

 相同点:可读性、扩展性都差不多    

不同点:1.Json编码、解码难度较低2.Json数据体积较小,传递速度比较快3.Json与JS交互更加方便4.XML对数据的描述性较好    
七.谈谈对Handler的理解  

 1.四个对象,Handler,Message,MessageQueue,Looper        
八.service的启动方式  

 onStart,生命周期startService-onCreate-onStartCommond-onStop-onDestory    onBind,生命周期bindService-onCreate-onBind-unBind-OnDestory    
九.屏幕适配  

 1.图片放到对应大小的文件夹2.创建多个分辨率下的dimens文件3.多余RelativeLayout4.巧用weight属性5.多用wrap-content以及match-parent6.在代码中拿到屏幕像素,按照比例适配        
十.文件存储方式    

1.sp2.文件存储3.网络存储4.ContentProvider5.SQLite        
十一.创建子线程的方式  

 1.继承Thread 2.实现 Runnable接口 3.实现Callable接口        
十二.开发中遇到哪些问题?如何解决的?(开放性的题目,几乎每家公司都会问到,加减分的重要题目)

你觉得开发中哪个项目对你个人提升比较大,为什么?

你觉得你最擅长的部分是什么?细讲一下。          

        
十三.ArrayList与LinkedList区别    

1.前者基于数组,后者基于链表2.前者实现随机访问接口,后者实现队列接口3.前者读取速度快,添加值很慢;后者添加值很快4.前者增删的开销大于后者        
十四.Android中PID和UID的区别  

 1.前者是进程的身份标识,唯一,进程终止后,会产生新的较大的进程号2.后者为linux中的用户ID,标明哪个用户运行了这个程序,主要用于权限管理3.都是用来识别应用身份,后者还能用于数据共享        
十五.Binder的理解,以及为什么要用Binder,进程间通信的方式  

 效率高效,安全可靠  

 intent、广播、Binder、contentProvider  

 1.四个角色Client、Server、serviceManager、Binder驱动
十六.框架搭建选型的注意点            
十七.第三方SDK应用  

 支付、地图等  ,一般说一个整个使用的流程就OK了。     
十八.内存优化,性能优化    

1.APP性能优化:APP启动优化、布局优化、响应优化、内存优化、电池使用优化、网络优化    内存优化:1.及时清空对象2.及时关闭游标3.及时释放图片4.注册与反注册5.IO流的及时关闭    
十九.TCP与UDP的区别  

 1.前者面向连接、可靠的数据流传输,后者非面向连接、不可靠的数据流传输2.前者提供可靠的服务,无差错、不丢失、不重复,后者不保证可靠交付3.前者面向字节流,后者面向报文4.TCP只支持点对点,后者支持one to more,more to one,more to more,one to one.5.TCP首部开销大于UDP,前者20字节,后者8个字节6.前者全双工可靠信道, 后者不可靠信道    定义:TCP面向连接、可靠、基于字节流的传输层通信协议  UDP:是OSI中的无连接的传输层协议,提供面向事务的简单不可靠信息传送服务    
二十.hybird APP          

高级模块

上面的这些,都是属于基础部分,一般是小公司,或者对Android要求不是很高的,只要你能简单独立开发。
下面这部分,是对要求比较高,不仅仅是是针对于开发的。也是深圳的那些大厂,一般会问到的
1.自定义 View,绘制流程、步骤,
2.事件拦截和分发机制
3.进程间的通信方式
4.应用的创建启动流程
5.Handler 是怎么导致内存泄露的
6.常用设计模式理解问得也多,
7.Binder 驱动
8.Dalvik虚拟机方面
9.数据结构和算法,Java 的常用集合实现原理,比如 ArrayList ,LinkedHashMap 的实现原理
10.算法:缓存淘汰策略,红黑树和二叉树,最短路径规划,海量数据筛选...
11.性能优化,如何检测一段代码的执行时间,界面卡顿如何修复
12.滑动不流畅怎么处理
13.fps如何提高
14.内存泄露怎么检测,leakcanay 的原理
15.线程和线程池,wait() 和 sleep() 的区别,同步锁,线程池的参数详解,AsyncTask 源码参数详解 

 

深圳最新Android面试题集锦

(TCL\康佳\平安)

1.TCP的通讯过程
2.HASHMAP的实现原理
3.Handler消息队列,轮询器的机制
4.Activity在哪里实例化的?
5.安卓系统通过什么方式检测ANR
6.OkHttp用了哪些设计模式
7.RXJAVA具体有哪些操作符

记录时间 2018年12月12日

2019最新面试题整理,只说几个大方向和经常被问到的,频率非常高!!!重要等级MAX!!!

1.你觉得哪个项目对你提升最大,为什么?

2.详细介绍下你自己做的项目

3.EventBus实现原理

4.对自定义view的理解

5.mvc和mvp的使用场景和优缺点

6.Hashmap实现原理

7.性能优化(一定要具体说出很多方案,比如内存、电量、流量等具体解决方案)

8.单例模式的写法和各种写法的优缺点

9.okHttp、volley、retrofit等网络框架的使用和原理

10.四大图片加载框架的使用和原理

11.如何考虑架构设计

除此之外,博主开通了面试专栏--->里面技术点更加详细,请点击这里!

记录时间2019年6月26日17:02

你可能感兴趣的:(Android,Android面试专栏)