Android 2020-2021年 最新面试题(附个人面试经历),深入浅出Android

随着时间的流逝,很多人说互联网这一块前景已经不好了,随着互联网红利期的过去,Android开发进入了平稳发育期,砸钱的时代已经过去,因为前两年红利期还没过去的影响,还是有一大批人进军互联网,人多了,自然就不好做了,这点我深有体会。

2020.05月,本人离职(此时4年工作经验,深圳就职),开始试水安卓市场,寻求一份合适自己,稳定的中大型公司。投了很多公司,面试机会并不是我想象中的那么多,即时面试过程顺利,也没有获得offer(候选人太多太多)。不过借此机会,前前后后我面了10家公司,现在就把我遇到的面试题,并且提供一些面试技巧给各位即将面试的同志们。

OK,进入主题,请看Android知识图谱。

面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸

二 ,以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解!

基础知识 – 四大组件(生命周期,使用场景,如何启动)

java基础 – 数据结构,线程,mvc框架

通信 – 网络连接(HttpClient,HttpUrlConnetion),Socket

数据持久化 – SQLite,SharedPreferences,ContentProvider

性能优化 – 布局优化,内存优化,电量优化

安全 – 数据加密,代码混淆,WebView/Js调用,https

UI– 动画

其他 – JNI,AIDL,Handler,Intent等

开源框架 – Volley,Gilde,RxJava等(简历上写你会的,用过的)

拓展 – Android6.0/7.0/8.0特性,kotlin语言,I/O大会

急急忙忙投简历,赶面试,还不如沉淀一两天时间,再过一遍以上内容。想稳妥拿到一个offer,最好能理解实现原理,并且知道使用场景了。不要去背!要去理解!面试官听了一天这些内容是很厌倦的,最好能说出一些自己的见解。

面试题(固定答案不解答,自己可以找到)


顺序是根据记忆排的,没有优先级之分,都是重点。

**1.Activity的启动过程(不要回答生命周期) **

http://blog.csdn.net/luoshengyang/article/details/6689748

2.Activity的启动模式以及使用场景

(1)manifest设置,(2)startActivity flag

http://blog.csdn.net/CodeEmperor/article/details/50481726

此处延伸:栈(First In Last Out)与队列(First In First Out)的区别

**3.Service的两种启动方式 **

(1)startService(),(2)bindService()

http://www.jianshu.com/p/2fb6eb14fdec

4.Broadcast注册方式与区别

(1)静态注册(minifest),(2)动态注册

http://www.jianshu.com/p/ea5e233d9f43

此处延伸:什么情况下用动态注册

5.HttpClient与HttpUrlConnection的区别

http://blog.csdn.net/guolin_blog/article/details/12452307

此处延伸:Volley里用的哪种请求方式(2.3前HttpClient,2.3后HttpUrlConnection)

6.http与https的区别

http://blog.csdn.net/whatday/article/details/38147103

此处延伸:https的实现原理

7.手写算法(选择冒泡必须要会)

http://www.jianshu.com/p/ae97c3ceea8d

8.进程保活(不死进程)

http://www.jianshu.com/p/63aafe3c12af

此处延伸:进程的优先级是什么(下面这篇文章,都有说)

https://segmentfault.com/a/1190000006251859

9.进程间通信的方式

(1)AIDL,(2)广播,(3)Messenger

AIDL : https://www.jianshu.com/p/a8e43ad5d7d2

https://www.jianshu.com/p/0cca211df63c

Messenger : http://blog.csdn.net/lmj623565791/article/details/47017485

此处延伸:简述Binder , http://blog.csdn.net/luoshengyang/article/details/6618363/

10.加载大图

PS:有家小公司(规模写假的,给骗过去了),直接把项目给我看,让我说实现原理。。

最让我无语的一次面试,就一个点问的我底裤都快穿了,就差帮他们写代码了。。

http://blog.csdn.net/lmj623565791/article/details/49300989

11.三级缓存(各大图片框架都可以扯到这上面来)

(1)内存缓存,(2)本地缓存,(3)网络

内存:http://blog.csdn.net/guolin_blog/article/details/9526203

本地:http://blog.csdn.net/guolin_blog/article/details/28863651

12.MVP框架(必问)

http://blog.csdn.net/lmj623565791/article/details/46596109

此处延伸:手写mvp例子,与mvc之间的区别,mvp的优势

13.讲解一下Context

http://blog.csdn.net/lmj623565791/article/details/40481055

14.JNI

http://www.jianshu.com/p/aba734d5b5cd

此处延伸:项目中使用JNI的地方,如:核心逻辑,密钥,加密逻辑

15.java虚拟机和Dalvik虚拟机的区别

http://www.jianshu.com/p/923aebd31b65

16.线程sleep和wait有什么区别

http://blog.csdn.net/liuzhenwen/article/details/4202967

17.View,ViewGroup事件分发

http://blog.csdn.net/guolin_blog/article/details/9097463

http://blog.csdn.net/guolin_blog/article/details/9153747

18.保存Activity状态

onSaveInstanceState()

http://blog.csdn.net/yuzhiboyi/article/details/7677026

19.WebView与js交互(调用哪些API)

http://blog.csdn.net/cappuccinolau/article/details/8262821/

20.内存泄露检测,内存性能优化

http://blog.csdn.net/guolin_blog/article/details/42238627

这篇文章有四篇,很详细。

此处延伸:

(1)内存溢出(OOM)和内存泄露(对象无法被回收)的区别

(2)引起内存泄露的原因

21.布局优化

http://blog.csdn.net/guolin_blog/article/details/43376527

22.自定义view和动画

以下两个讲解都讲得很透彻,这部分面试官多数不会问很深,要么就给你一个效果让你讲原理。

(1)http://www.gcssloop.com/customview/CustomViewIndex

(2)http://blog.csdn.net/yanbober/article/details/50577855

23.设计模式(单例,工厂,观察者。作用,使用场景)

一般说自己会的就ok,不要只记得名字就一轮嘴说出来,不然有你好受。

http://blog.csdn.net/jason0539/article/details/23297037/

此处延伸:Double Check的写法被要求写出来。

24.String,Stringbuffer,Stringbuilder 区别

http://blog.csdn.net/kingzone_2008/article/details/9220691

25.开源框架,为什么使用,与别的有什么区别

这个问题基本必问。在自己简历上写什么框架,他就会问什么。

如:Volley,面试官会问我Volley的实现原理,与okhttp和retrofit的区别。

开源框架很多,我就选几个多数公司都会用的出来(框架都是针对业务和性能,所以不一定出名的框架就有人用)

网络请求:Volley,okhttp,retrofit

异步:RxJava,AsyncTask

图片处理:Picasso,Glide

消息传递:EventBus

以上框架请自行查找,太多了就不贴出来了。

26.RecyclerView

这个挺搞笑的。有另外一个同事也在找工作,面试官嫌他没用过RecyclerView直接pass掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值