Android 面试问题记录

面试个推:

1.先问些java基础问题 

java基础面试题地址:http://www.importnew.com/22083.html 就看下上就行,下我看了下,对Android 有关不多

2.Glide 深度研究,让你做一个Glide 怎么做,谈一谈

这个需要深入研究,Glide 内部有什么组成,实现方法,之后总结。

3.界面优化

答:界面优化有:通过减少层级、减少测量和绘制时间、提高复用(include标签),避免过度绘制

地址:https://www.cnblogs.com/cr330326/p/8011523.html

4.http/tcp 相关的知识

5.mvp和mvc的区别,和优点

6.activity生命周期,service生命周期

7.在Android中常用的设计模式

8.多线程


面试余杭一家公司:

1.过渡绘制的优化

2.Handler 的机制

3.activity生命周期

4.广播的相关知识,Local广播了不了解

5.oom的形成和解决方案

6.常用的集合类,说一些。 然后说下HashMap的原理

7.说说在Android中常用的设计模式

8.多线程用过吗,有哪些? 后期,为什么new thread 不好?那用什么?


电话面试大华

1.事件的分发:说下流程

2.自定义View的流程

3.动画几类,特点

4.mvc和mvp的区别,mvp的优点

5.说下支付宝微信支付的,支付的具体流程。描述下

6.项目代码怎么优化的?


面试一家国企:

1.ANR是什么?引起的原因有哪些?怎么解决?

2.handler的机制

3.多线程相关

4.底层的串口通信有没有接触过

5.一般项目开发多少人,多少时间

还有一些忘了



面试大搜车:

1.Dev过程中,git 上传到A,却上传错到了B,过了一段时间后,才发现,如何正确的操作?


2.mvp的优点和缺点,有没有接触过mvvm


3.原生嵌套webView中,你是如何与webView进行交互,js的交互。

答案:http://blog.csdn.net/carson_ho/article/details/64904691


面试杭州亲宝宝公司(笔试和面试):

笔试中:

1.Handler 的机制

2.动画几种,各有什么特点?

3.怎么让activity变成窗口,类似dialog?

4.anr是什么,怎么解决?面试时的补充问题?activity几秒?service几秒?

面试中:

1.okhttp3 怎么支持httpsd的?

2.过度绘制有哪些造成?解决方法?用哪些控件优化?

3.Glide的缓存几种,特点?

4.解析xml有几种,特点。

5.给你一个列表,你怎么选择用listview还是recycleView?


补充 电话面试:

1.mvp怎么用的?

2.fragment,Activity生命周期,fragment怎么样将信息,返回给自身的Activity,将其刷新?

3.ArrayList 和LinkList 的区别,及什么时候优先用ArrayList,什么时候用LinkList?

4.你用的最好的技术?这个有点尴尬?

5.java 的内部类,用过没,怎么用的?

6.你们项目,有几个module?模块化听说过没?模块与模块之间的,双向服务调用你们怎么实现?

答:因为做的项目没接触过模块化,但研究过。

module之间的双向调用:

1.广播的形式,属于Android系统原生就支持的; 

2.EventBus,这个在Android界几乎无人不知吧,发布/订阅事件的神器;

其实还有更好的:使用路由框架:推荐阿里的ARouter,ARouter这个框架解决了模块化的两大难题,模块跳转和模块间服务调用

具体使用地址:https://blog.csdn.net/finddreams/article/details/78339809

7.堆和栈的了解嘛?区别?Object A = new Object(B);  哪个在堆里?,哪个在栈里?

答:    栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量)for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。

        堆内存:存储的是数组和对象(其实数组就是对象),凡是new建立的都是在堆中,堆中存放的都是实体(对象),实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以用,所以堆是不会随时释放的,但是栈不一样,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会被释放,但是会被当成垃圾,Java有垃圾回收机制不定时的收取。

区别:

1.栈内存存储的是局部变量而堆内存存储的是实体;

2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;

3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。

8.热修复用过没?用的是什么?说一说怎么用的?

9.多渠道打包如何打的?



统计完善中。。。。

猜你喜欢

转载自blog.csdn.net/u012881042/article/details/79622647