关于面试的充分准备
一些基础知识和理论肯定是要背的,要理解的背,用自己的语言总结一下背下来。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,我能明显感觉到国庆后多了很多高级职位,所以努力让自己成为高级工程师才是最重要的。
好了,希望对大家有所帮助。
接下来是整理的一些Android学习资料,有兴趣的朋友们可以关注下我免费领取方式。
①Android开发核心知识点笔记
②对标“阿里 P7” 40W+年薪企业资深架构师成长学习路线图
③面试精品集锦汇总
④全套体系化高级架构视频
**Android精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
对于 mdpi,ldpi 与 xxxhdpi 根据需要提供有差异的部分即可。
尽可能的重用已有的图片资源。例如对称的图片,只需要提供一张,另外一张图
片可以通过代码旋转的方式实现。
能用代码绘制实现的功能,尽量不要使用大量的图片。例如减少使用多张图片组
成 animate-list 的 AnimationDrawable,这种方式提供了多张图片很占空间。
4 、Android 与服务器交互的方式中的对称加密和非对称加密是什么?
对称加密,就是加密和解密数据都是使用同一个 key,这方面的算法有 DES。
非对称加密,加密和解密是使用不同的 key。发送数据之前要先和服务端约定生
成公钥和私钥,使用公钥加密的数据可以用私钥解密,反之。这方面的算法有
RSA。ssh 和 ssl 都是典型的非对称加密。
5 、设备横竖屏切换的时候,接下来会发生什么?
1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期,
切横屏时会执行一次,切竖屏时会执行两次
2、设置 Activity 的 android:configChanges=”orientation”时,切屏还是会重新调
用各个生命周期,切横、竖屏时只会执行一次
3、设置 Activity 的 android:configChanges=”orientation|keyboardHidden”时,切
屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法
6、 Android 启动 Service 的两种方式是什么? 它们的适用情况是什么?
如果后台服务开始后基本可以独立运行的话,可以用 startService。音乐播放器就
可以这样用。它们会一直运行直到你调用 stopSelf 或者 stopService。你可以通过
发送 Intent 或者接收 Intent 来与正在运行的后台服务通信,但大部分时间,你只
是启动服务并让它独立运行。如果你需要与后台服务通过一个持续的连接来比较
频繁地通信,建议使用 bind()。比如你需要定位服务不停地把更新后的地理位置
传给 UI。Binder 比 Intent 开发起来复杂一些,但如果真的需要,你也只能使用它。
startService:生命周期与调用者不同。启动后若调用者未调用 stopService 而直接
退出,Service 仍会运行
bindService:生命周期与调用者绑定,调用者一旦退出,Service 就会调用
unBind->onDestroy
7 、谈谈你对 Android 中 Context 的理解?
Context:包含上下文信息(外部值) 的一个参数. Android 中的 Context 分三
种,Application Context ,Activity Context ,Service Context.
它描述的是一个应用程序环境的信息,通过它我们可以获取应用程序的资源和类,
也包括一些应用级别操作,例如:启动一个 Activity,发送广播,接受 Intent 信
息等
8 、Service 的 onCreate 回调在 UI 线程中吗?
Service 生命周期的各个回调和其他的应用组件一样,是跑在主线程中,会影响
到你的 UI 操作或者阻塞主线程中的其他事情
9 、请介绍下 AsyncTask 的内部实现,适用的场景是?
AsyncTask 内部也是 Handler 机制来完成的,只不过 Android 提供了执行框架来提
供线程池来执行相应地任务,因为线程池的大小问题,所以 AsyncTask 只应该用来执行耗时时间较短的任务,比如 HTTP 请求,大规模的下载和数据库的更改不
适用于 AsyncTask,因为会导致线程池堵塞,没有线程来执行其他的任务,导致
的情形是会发生 AsyncTask 根本执行不了的问题。
10 、谈谈你对 binder 机制的理解?
binder 是一种 IPC 机制,进程间通讯的一种工具.
Java 层可以利用 aidl 工具来实现相应的接口.
11 、Android 中进程间通信有哪些实现方式?
Intent,Binder(AIDL),Messenger,BroadcastReceiver
12 、介绍下实现一个自定义 view 的基本流程
1、自定义 View 的属性 编写 attr.xml 文件
2、在 layout 布局文件中引用,同时引用命名空间
3、在 View 的构造方法中获得我们自定义的属性 ,在自定义控件中进行读取(构
造方法拿到 attr.xml 文件值)
4、重写 onMesure
5、重写 onDraw
13 、Android 中 touch 事件的传递机制是怎样的?
14 、Android 多线程的实现方式有哪些?
15 、Android 开发中何时使用多进程?使用多进程的好处是什么?
16 、ANR 是什么?怎样避免和解决 ANR?
17 、Android 下解决滑动冲突的常见思路是什么?
18 、如何把一个应用设置为系统应用?
19 、Android 内存泄露研究?
20 、内存泄露检测有什么好方法?
结语
网上高级工程师面试相关文章鱼龙混杂,要么一堆内容,要么内容质量太浅, 鉴于此我整理了上述安卓开发高级工程师面试题以及答案。希望帮助大家顺利进阶为高级工程师。
目前我就职于某大厂安卓高级工程师职位,在当下大环境下也想为安卓工程师出一份力,通过我的技术经验整理了面试经常问的题,答案部分是一篇文章或者几篇文章,都是我认真看过并且觉得不错才整理出来。
大家知道高级工程师不会像刚入门那样被问的问题一句话两句话就能表述清楚,所以我通过过滤好文章来帮助大家理解。
现在都说互联网寒冬,其实只要自身技术能力够强,咱们就不怕!我这边专门针对Android开发工程师整理了一套【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
https://bbs.csdn.net/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!