根据回忆写下的面试要点,都是比较常见的问题。大家可以对照回答下,不清楚的可以查下资料补充下。
这次疫情下,Android开发的岗位明显少了很多,开的工资也不是很高,除了一些大公司,比如字节跳动,小公司工资不高,要求还是挺高的,感觉啥都要会,所以Android开发现在也是亚历山大,所以离职要慎重,不要裸辞,多弥补下基础知识,梳理下自己的工作及对应的应用及实践,准备充足点,不要浪费少量的机会。
Android基础
1、什么是ANR 如何避免它?
如果耗时操作需要让用户等待,那么可以在界面上显示进度条。
2、View的绘制流程;自定义View如何考虑机型适配;自定义View的事件
3、分发机制;View和ViewGroup分别有哪些事件分发相关的回调方法;自定义View如何提供获取View属性的接口;
4、Art和Dalvik对比;虚拟机原理,如何自己设计一个虚拟机(内存管理,类加载,双亲委派);JVM内存模型及类加载机制;内存对象的循环引用及避免;
5、ddms 和 traceView;
6、内存回收机制与GC算法(各种算法的优缺点以及应用场景);GC原理时机以及GC对象;内存泄露场景及解决方法;
7、四大组件及生命周期;ContentProvider的权限管理(读写分离,权限控制-精确到表级,URL控制);Activity的四种启动模式对比;Activity状态保存于恢复;
8、什么是AIDL 以及如何使用;
9、请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系;
10、Fragment生命周期;Fragment状态保存startActivityForResult是哪个类的方法,在什么情况下使用,如果在Adapter中使用应该如何解耦;
11、AsyncTask原理及不足;ntentService原理;
12、Activity 怎么和Service 绑定,怎么在Activity 中启动自己对应的Service;
13、请描述一下Service 的生命周期;
14、AstncTask+HttpClient与AsyncHttpClient有什么区别;
15、如何保证一个后台服务不被杀死;比较省电的方式是什么;
16、如何通过广播拦截和abort一条短信;广播是否可以请求网络;广播引起anr的时间限制;
17、进程间通信,AIDL;
18、事件分发中的onTouch 和onTouchEvent 有什么区别,又该如何使用?
19、说说ContentProvider、ContentResolver、ContentObserver 之间的关系;
20、请介绍下ContentProvider 是如何实现数据共享的;
21、Handler机制及底层实现;
22、Binder机制及底层实现;
23、ListView 中图片错位的问题是如何产生的;
24、在manifest 和代码中如何注册和使用BroadcastReceiver;
25、说说Activity、Intent、Service 是什么关系;
26、ApplicationContext和ActivityContext的区别;
27、一张Bitmap所占内存以及内存占用的计算;
28、Serializable 和Parcelable 的区别;
29、请描述一下BroadcastReceiver;
30、请描述一下Android 的事件分发机制;
31、请介绍一下NDK;
32、什么是NDK库,如何在jni中注册native函数,有几种注册方式;
33、AsyncTask 如何使用;
34、对于应用更新这块是如何做的?(灰度,强制更新,分区域更新);
35、混合开发,RN,weex,H5,小程序(做Android的了解一些前端js等还是很有好处的);
36、什么情况下会导致内存泄露;
37、如何对Android 应用进行性能分析以及优化;
38、说一款你认为当前比较火的应用并设计(直播APP);
39、OOM的避免异常及解决方法;
40、屏幕适配的处理技巧都有哪些;
41、两个Activity 之间跳转时必然会执行的是哪几个方法?
42、Okhttp原理
43、Rxjava用法和原理
44,热更新技术有哪些,知道的原理!
45、Activity启动流程
46、Android内存管理
47、Android权限管理
48、将一下7.0的新特性
49、说下你你们项目的架构
50、组件化的有点和具体实施方案
51、内存泄露检测方法
52、Http协议,SSL握手机制。
Android——性能优化
1.如何对 Android 应用进行性能分析
2.什么情况下会导致内存泄露
3.如何避免 OOM 异常:首先OOM是什么?Android的OOM怎么样?如何避免OOM?
4.Android 中如何捕获未捕获的异常
5.ANR 是什么?怎样避免和解决 ANR(重要)
6.Android 线程间通信有哪几种方式
7.Devik 进程,linux 进程,线程的区别
8.描述一下 android 的系统架构
9.android 应用对内存是如何限制的?我们应该如何合理使用内存?
- 简述 android 应用程序结构是哪些
11.请解释下 Android 程序运行时权限与文件系统权限的区别
12.Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么
13.多线程间通信和多进程之间通信有什么不同,分别怎么实现
14.Android 屏幕适配
15.什么是 AIDL 以及如何使用
16.Handler 机制
17.事件分发机制
18.子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么
19.子线程中能不能 new handler?为什么
20.Android 中的动画有哪几类,它们的特点和区别是什么
21.如何修改 Activity 进入和退出动画
22.SurfaceView & View 的区别
项目框架的使用
1.开发中都使用过哪些框架、平台
2.使用过那些自定义View
3.自定义控件:绘制圆环的实现过程
4.自定义控件:摩天轮的实现过程
5.GridLayout的使用
6.流式布局的实现过程
7.第三方登陆
8.第三方支付
9.进程保活
非技术问题汇总
1、研究比较深入的领域有哪些;
2、对业内信息的关注渠道有哪些;
3、最近都读哪些书;
4、自己最擅长的技术点,最感兴趣的技术领域和技术点;
5、项目中用了哪些开源库,如何避免因为引入开源库而导致的安全性和稳定性问题;
6、实习过程中做了什么,有什么产出;
7、5枚硬币,2正3反如何划分为两堆然后通过翻转让两堆中正面向上的硬8币和反面向上的硬币个数相同;
8、时针走一圈,时针分针重合几次;
9、N * N的方格纸,里面有多少个正方形;
10、现在下载速度很慢,试从网络协议的角度分析原因,并优化(网络的5层都可以涉及)。
HR问题汇总
1、您在前一家公司的离职原因是什么?
2、讲一件你印象最深的一件事情;
3、介绍一个你影响最深的项目;
4、介绍你最热爱最擅长的专业领域;
5、公司实习最大的收获是什么;
6、与上级意见不一致时,你将怎么办;
7、自己的优点和缺点是什么?并举例说明?
8、你的学习方法是什么样的?实习过程中如何学习?实习项目中遇到的最9、大困难是什么以及如何解决的;
10、说一件最能证明你能力的事情;
11、针对你你申请的这个职位,你认为你还欠缺什么;
12、如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本13、不适合这个职位,你怎么办;
14、项目中遇到最大的困难是什么?如何解决的;
15、你的职业规划以及个人目标;未来发展路线及求职定位;
16、如果你在这次面试中没有被录用,你怎么打算;
17、评价下自己,评价下自己的技术水平,个人代码量如何;
18、通过哪些渠道了解的招聘信息,其他同学都投了哪些公司;
19、业余都有哪些爱好;
20、你做过的哪件事最令自己感到骄傲;
21、假如你晚上要去送一个出国的同学去机场,可单位临时有事非你办不可,你怎么办;
22、就你申请的这个职位,你认为你还欠缺什么;
23、当前的offer状况;如果BATH都给了offer该如何选;
24、你对一份工作更看重哪些方面?平台,技术,氛围,城市,money;
25、理想薪资范围;杭州岗和北京岗选哪个;
26、理想中的工作环境是什么;
27、谈谈你对跳槽的看法;
28、说说你对行业、技术发展趋势的看法;
疫情之下,如何做好职业规划
目前困难重重,简历多,招人少,个人前景不明
1,求职岗位数量缩减,招聘通道缩减
缺少招聘会通道,缺少面对面沟通了解,
各行业受到打击,减少人力成本,裁员和减少招聘需求很常见。
2,岗位竞争激烈
物以稀为贵,岗位少,必定求职竞争更加激烈。
怎样应对?
1,调整心态,做好持久战
接受目前现状,调整心态,多充电读书,做好长期求职准备,找工作当成一种状态,就是把找工作当成一种“工作”。
2,时刻准备,抢占先机
从职业规划上提升自己的自我竞争力。围绕内因和外因梳理强化自己的优势。内因就是我们的才干知识和技能,外因就是靠行业定位,企业匹配,职位设计。
自己的优势是什么,还需要提升什么技能,适合什么岗位,是专精一个岗位,还是所有岗位都涉猎,最后达到自己职业规划的目标。
行业和公司选择上,考虑直接进大厂还是去创业公司,是不是去竞品公司历练,是不是去外派公司积累经验。
一些个人建议:
做好长期职业规划,梳理自己的优劣势及兴趣爱好,找到自己的长期优势,并强化和建立起自己的优势。
在做好本质工作的前提下,发展多份收入模式,工作收入,发展兴趣带来的收入,投资产生的被动收入,多收入驱动,从此人生发展之路会顺利宽广很多。
找工作之前,以长远目标为终,想好自己想在哪个岗位发展,发展路线是什么,然后去各种招聘渠道去找合适的工作,多利用身边的资源和圈子,借助他人力量帮助你找到合适的工作。
找工作之前做好笔试面试的准备,准备充分点,不要浪费机会,在选择公司和岗位时要慎重综合考虑,当你拿到多个offer时,以最重要的三个要素去分别打分,最后确定你的决定。
找工作跟投资原理一样,选择好赛道,良好商业模式的公司,选择企业文化认同的公司,选择你佩服和领导力强的领导所带领的公司。
总之,所选工作是适合自己的,也是适合公司的,达到双赢结果。
最后
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。(以下是一小部分,获取更多其他精讲进阶架构视频资料可以关注【我的主页】或者【简信我】获取免费领取方式)
以下是今天给大家分享的一些独家干货:
【Android开发核心知识点笔记】
【Android思维脑图(技能树)】
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【Android高级架构视频学习资源】
Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!
【Android进阶学习视频】、【全套Android面试秘籍】关注我【主页简介】或者【简信我】查看免费领取方式!
最后,祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作!









网友评论