所以今天小编就在这里分享一波福利,里面包含了一些移动互联网开发岗位的面试题、主要都是互联网行业的,还有一些是Android架构方面的技术资料,里面包括有高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的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 应用对内存是如何限制的?我们应该如何合理使用内存? 10. 简述 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、最近都读哪些书;
最后
跳槽季整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…