第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 想进BAT一线互联网大厂 该怎么准备技术面试?一位6年老Android的面经总结(附300+面试题)

想进BAT一线互联网大厂 该怎么准备技术面试?一位6年老Android的面经总结(附300+面试题)

时间:2018-09-10 20:01:07

相关推荐

想进BAT一线互联网大厂 该怎么准备技术面试?一位6年老Android的面经总结(附300+面试题)

前言

准备面试其实已经准备了挺久了,当时打算面试准备了差不多以后,跟公司谈谈涨薪的事情,谈不拢的话,就年后直接找其他的公司。谁想到婚假还没休完,老板就在公司宣布了撤出上海的决定,愿意去深圳的就去,不愿意的就自己找工作,给了一个多月的时间找工作,就没有赔偿了,反正公司也没钱。悲哀….

幸好提前准备过,不过都是断断续续的今天看点这个,明天看点那个,三天打鱼两天晒网的,也没用心去准备。这下好了,直接到了最差的地步了,没办法,用心准备吧。

简历内容

基本信息

姓名,联系方式,工作年限,学校,专业,学历

个人技能

工作几年独立开发掌握的技能,组件化、插件化、热修复、自定义view适配、架构、第三方源码、性能优化职业技能:管理能力、产品能力、沟通能力

这些东西一定要写自己熟悉的,最好项目里面能体现出来的内容

项目经验

项目描述:一句话 工作内容:做了哪些模块,用了什么技术、做过哪些优化,重构方面的内容

项目方面写两到三个项目,最好最近一两家公司做的项目

公司经历

公司名称 时间 工作内容

面试题准备

项目中用到的技术

整理出来,上网找找相关的技术文章和面试题看看,然后用自己的话把这些内容梳理出来,最好有自己的看到,面试官习惯问为什么。

Android知识点

基础:

四大组件、fragment、自定义View、事件分发、滑动处理、handler、AsyncTask、IntentService、ThreadHandler、Bitmap相关的、动画的用法

进阶:

ListView、RecyclerView、AIDL、LruCache、DiskLruCache、View,Window,Activity的关系、进程保活、性能优化、

高阶:

Bindler、AMS、WMS、Context、APP的启动流程、插件化、组件化、热修复什么的等等

第三方框架:

okhttp、retrofit、RxJava等等,熟悉一个框架的源码,然后知道其他框架的优缺点

混合开发:

通常都是RN相关的,目前Flutter用的不多

架构和语言:

MVC、MVP、MVVM、组件化、插件化、热修复等等

上面介绍得不需要全部掌握,看你项目,挑一些内容掌握住,怎么问都不怕得那种,前提是不去一二线得大厂

java知识点

多线程、并发、java基本语法、泛型、hashmap等容器相关的,一般这几差不多了

面试内容准备

自我介绍

就聊聊最近一个项目里面的工作内容,遇到的问题,有什么亮点,难点 这个看项目,有人说我们没什么亮点啊,我只想说你写的代码都没有bug么,花你半天一天时间搞不定的bug就可以聊了

职业规划

技术线路:架构师技术专家 管理线路:开发leader,项目经理什么的

有什么想问的

技术面试官问你:

问问技术团队多少人、技术氛围怎么样的、如果有可能问问他们的技术栈是什么,围绕着技术来问

HR问:

转正的考核标准啊,薪资待遇啊,公司现有规模啊、发展情况啊,表现出对这个公司很感兴趣就行了

注意一点:

考虑好你得目标公司的规模和行业。

小微公司:不看项目随便问,没有逻辑性,闭了眼睛瞎问,对于这种会就会,不会就不会,别怂,反正也不想去。

稍微大点的厂:一般是围绕项目去问,然后衍生出一些技术问题来细问,问的比较深的时候别慌,把你的理解说出来,然后说其他的就不知道了,体现出你的思考和应变能力。

基本上面试就这些的,剩下的就是尽人事听天命了,记住,面试不上有时候不是你得问题,很可能是公司其实不急着找人,或者面试官不行。

谈一下某次面试的经历

我从找工作到找到工作,历时大概有20多天,前后投了不下于百家公司,接收到的面试不到10家,收到第一家面试的通知之前我已经投了3、40家公司,那时候整个人都快崩溃了,后来把心态放平,还是照着自己心里的期望薪资来,不要将就,后来继续投,陆陆续续有两三家公司通知面试,面试感觉还可以。

后来有家公司a通知我面试,这家公司投的比较早了,中间改过一次简历的,最终面完试,技术说我这边过了,后面领导随便聊聊就行,等了两天没消息,以为a公司没希望了,没想到是他们公司要走流程什么的,然后电话给我说让我给个现在工资流水,后面就是定薪资,走审批,体检,后来总算拿到offer。而且转正以后的薪资福利加一起要比我期望的还要高,还有几个月的年终奖,是不是很羡慕,嘿嘿。

总体来说还算幸运吧,至少有个坑让我呆了。

总之,面试需认真谨慎地对待。

300+Android面试题分享

我是整理了一份一千多页的Android 高级开发面试题,但由于篇幅太长了,所以这里就只放上300多的Android方面的面试题,关于面试题解析可以先戳这里获取:【github

第一部分

Overload 和 Override 的区别String 和 StringBuffer 的区别实现一个字符串倒序抽象类与接口的区别(abstract 与 interface 的区别)集合的实现类与区别线程有几种状态,分别是哪些(调用 run()和调用 start()的区别)Final、finally、finanlize()的区别J2EE 是什么?请对以下在 J2EE 中常用的名词进行解释(或简单描述)j2ee 常用的设计模式?说明工厂模式开发中都用到了那些设计模式?用在什么场合常用设计模式及应用场景广播如何调用,有什么方式,各自的区别,实现广播的意图是什么,哪里用到android 系统架构Android 的四大组件是什么?它们的作用是什么Activity 生命周期?保存 activity 的一些信息在哪个生命周期方法中Activity 的 onSaveInstanceState() 和 onRestoreInstanceState()activity 在屏幕旋转时的生命周期Android 中 asset 文件夹和 raw 文件夹区别Android 中的五种存储方式及其应用场景什么是 ANR 如何避免它?(Android 线程间的通信方式 )listview 优化策略ListView 分页加载实现思路ListView 图片异步加载实现思路Intent 的原理、作用、可以传递哪些类型的参数如何实现屏幕分辨率的自适应(布局、九线图、目录)简述 Android 中的 IPC 机制Android 程序入口如何判断android 哪几种方式访问网络说说 HttpClient 的通信过程移动互联数据交互格式有哪些及其区别

第二部分

XML 解析有哪几种?各自优缺点,官方推荐使用哪种sax 解析代码百度地图核心类,及实现的功能GC 内存泄露在什么情况下会出现?怎么解决android 内存的优化加载大图片的时候如何防止内存溢出Android 缓存机制如何实现消息推送MVC 在 Android 中的应用Android 自定义组件实现思路版本更新的实现思路播放视频有哪些实现方式NDK 开发流程?(JNI 运行原理)如何实现一键退出AndroidManifest.xml 清单文件<Activity>标签中属性的含义如何将一个 Activity 设置成窗口的样式谈谈 UI 中, Padding 和 Margin 有什么区别,gravity 与 layout_gravity 的区别实现手风琴效果Android SDK 3.0(HoneyComb)及 4.0(Ice Cream)新特性android 客户端如何实现自动登录请介绍下 Android 中常用的五种布局。android 中的动画有哪几类,它们的特点和区别是什么activity 的启动模式有哪些?是什么含义跟 activity 和 Task 有关的 Intent 启动方式有哪些?其含义是如何启用 Service,如何停用 Service。Handler说明 handler 机制的原理什么情况会导致 Force Close ?如何避免?能否捕获导致其的异常请介绍下 ContentProvider 是如何实现数据共享的。Service 和 Thread 的区别

第三部分

Android 异常IntentService 有何优点Activity如何将一个 Activity 设置成窗口的样式如何退出 Activity?如何安全退出已调用多个 Activity 的 ApplicationAIDL 的全称是什么?如何工作?能处理哪些类型的数据请解释下 Android 程序运行时权限与文件系统权限的区别系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由android 系统的优势和不足Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念嵌入式操作系统内存管理有哪几种, 各有何特性什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗一条最长的短信息约占多少 byte用算法调整图片的透明度如何将 SQLite 数据库(dictionary.db 文件)与 apk 文件一起发布sqlite 的用处及用法, 哪里用过sqlite,修改,添加字段,版本更新,排序,默认排序如何建一个“aaa.db”数据库,如何建一个 user 表;写出增删改查语句SQLite 线程安全吗?sqlite3_threadsafe()来确实是否线程安全版本怎么提高 sqlite 的效率如何将打开 res aw 目录中的数据库文件DDMS 和 TraceView 的区别java 中如何引用本地语言ListView 切换奇偶行背景色getView()方法中判断 position 的奇偶性, 然后给 ConvertView 设置背景色EditText 单行显示oom 避免以及产生方式,遇到过几种 OOMthrow 与 throws 区别LOST.DIR设置界面怎么做的

第四部分

ui 效果图介绍布局login 模块怎么做的点击登录按钮的时候,会从 server 端获得什么?传送什么android 客户端如何实现自动登录版本更新,从 server 端获得什么,通过什么进行更新Fragment 和 Activity 之间的联系Fragment 如何实现 Activity 跳转,你怎么处理 Fragment 之间的信息交互fragment 在哪个方法里实现代码res 和 assets 资源文件的作用分别是什么,怎么读取了解 pad 开发吗常用的适配有哪些,如何进行优化应用换肤有什么方案可以实现异步任务中允许有多个线程同时进行吗图片是怎么获取的文件的下载图片的下载缓存区的图片如何适当的释放图片缓存到哪里那你的图片是如何请求的图文混排怎么实现相册缩略图是怎么实现的下拉刷新的实现思路,反弹的效果是怎么实现的自定义的 View自定义控件用过哪些?对自定义控件是怎么看的瀑布流的实现思路聊天窗口的实现android 的 dvm 和 Linux 进程是一样的吗监听模式如何刷新 viewListview

第五部分

viewPager 左右切屏listview 加载图片错位,什么原因导致的ListView 中条目中显示 webView 会怎么样用 listview 进行快速翻页,如何解决内存溢出listview 快速滑动时,加载几条数据实现 listview 分页动画分为哪几种,各自的特点和区别写出 Socket 服务器与客户端交互的代码和实现思路谈谈对 Http 的理解谈谈递归写出 Activity 里的方法都是在什么情况下执行dp 与 sp 的区别java 有那些排序,冒泡代码Java 线程实现方式和区别Android 中布局、区别、应用场景线程间通讯进程间通讯判断网络网络代理HTTP 的 post 和 get 方法的区别怎么判断服务端返回的数据类型栈,队列代码服务 service多线程下载,离线下载支付方式如果想改变分辨率但不动原来布局,实现思路是什么java 常用的处理异常的机制,原理及应用一段字符串“abdecffr”,请输出只出现一次的字母输入一个数,求其二进数中有多少个 1有一个 pizza 生产线

第六部分

推送了解吗?推送底层代码掌握吗asynctack 原理NDK 具体说一下Service 结合代码说一下,原理当内存不足时,如何对尚未关闭的应用程序进行回收service 的运行级别service 如何一直保持在后台运行service 的启动方式软引用怎么用?为什么要用软引用还有一个 Service 是建立在哪个线程上面接口都有哪些内容接口是否可继承接口如何通过程序进行对服务器的接口调用,写出具体过程分页加载思路分页加载需要传递哪些参数讯飞语音在什么地方用到消息推送LBS 定位用到哪个地图?为什么要使用这个?实现了哪些功能地图中怎样获得附近的信息百度地图显示周边招聘信息移动互联使用了哪种方式集合方面的底层理解每个 item 都是不同的内容,怎么弄有没有自己写过 NDK一个版本的 app 不更新,只是给他赠加或着减少一个功能,怎么弄架构的情况多线程的讲解线程的异常怎么处理请求网络用什么,http 的使用解释 intent 和 activity 的区别

第七部分

如何处理内存溢出如何去除一个字符串首尾的空格如何把一个字符串转换成 asll 码得到一个数组中出现次数最多的数手机 QQ 聊天框冒泡效果怎么做groupby 是干什么的你 android 应用假如你手机设置了其他语言你的应用语言会变吗了解后台吗,对后台的认识'学 java'内存中占多少个字节Intent 可以传递那些数据DDMS 与 TraceView 的区别横竖屏切换不设置属性会怎么样单例类在 android 中哪种更合适一串字符串编写程序翻转 split()json 写实体类如果标题过长超出界面,请写出你的解决方法开发 android 应用怎样减少耗电量提供额外的两个 int 域和一个 Object 域android 开发过程有几种缓存方式,并说明缺点Activity 相关Bitemap 内存溢出解决方法推送文件传输缓存 app 缓存边距测试Java 数据结构常用的分辨率Ui 一般有几套,是什么格式的,.9 格式的还是什么格式的onCreateView 和 onViewCreated 之间的区别继承与组合的关系

第八部分

IPC 机制具体解释aidl 具体解释为什么要有 NDK为什么 json 与 js 交互方便进程与线程的区别当一个 activity 退出之后在进程中会不会杀死jvm 的内存分配MVC 模式的理解排序有了解过吗?及其实现复杂度android 手机的密度,你如何对屏幕密度进行自适应handler 的理解对于 instancevariable 和 localvarial,JVM 在少女情怀内存时有什么区别Java 线程都有哪些状态?列举你所知道的线程同步方法如何避免比不加载图片混乱的问题AysnTask 最多可以开启几个线程数据库如何升级(添加字段什么的)WebServiceIntentService 的用法service 的启动异步任务强引用新浪微博头像设置加密算法高德地图asynctask 和 handler 的区别跳转图片释放shareprefercnce 保存用户名密码时候怎么加密离线下载怎么实现用过 viewstub 吗?include 呢android 应用程序自启动

第九部分

service 是在主线程中吗?service 中可不可以耗时操作数据库优化socket屏幕适配关于图片压缩,用算法实现关于第三方分享MVC 在安卓的体现surfaceview 和 VIEW 和 GLsurfaceview 的区别都用过什么模式,经常用到的服务器是什么编写代码输入安卓 abc 汉字 6 字节输出安卓 abc 而不是安卓 abc看一个 for 循环循环了几次怎杨跳出一个循环继续执行下一个循环使一个字符串逆序输出 Stringa=abcde一个 for 循环,每次 i+=2,截取字符串输出。Math 的操作,其实用了好几个方法,选择正确的结果线程的状态消息推送,xmpp 轮询udp/tcp动画intent 的几种模式分页加载,每页 15 条数据,拉到底部自动加载数据。Android 系统架构从小到大写用代码手写堆栈即时通讯多人聊天,视频,语音侧拉效果侧拉多界面,组件焦点别的公司封装好的播放器,从 C 中提取源码AsyTask 的三个参数是什么finish()与 System.exit(0)的区别,再谈谈你对退出的理解。

第十部分

反编译和防止反编译tcp/ip,通讯思路UDP,通讯思路hTTP 请求网络流程,HTTPclienthttpUrlconnectionJava 对象池Int 与 intger 的区别做项目的时候遇到哪些印象深刻的问题你在安卓开发中的心得网络互联使用哪种方式动画书架跟随书滚动3D 效果如何实现的读取详细的新闻信息里面的图片读取多张不固定显示服务器端使用什么搭建的怎么调用 android 自带的功能图片的优化Android 每个进程分配的内存是多少都使用过那些第三方平台一个不同公司用一个 APP 的思路平台兼容性重复登录怎么解决比如两台设备同时登录一个账号是每次获取图片都用 AsyncTask 获取吗用户体验度:获取数据之前等待的时间是怎么做的从网络获取图片的大概思路是否做过视频类,关于视频播放使用的什么方式大量耗时操作使用哪种方式,为什么建立一个 Android 工程,实现一个简单的书籍管理应用图片上传怎么做的如果图片太大怎么处理项目开发流程GSON 的使用讯飞语音在什么地方用到LBS 定位用到哪个地图?为什么要使用这个?实现了哪些功能分页加载需要传递哪些参数移动互联使用了哪种方式java.exe 指的是掌握 Android 项目目录结构掌握 AndroidManifest.xml 结构(应用程序入口)掌握模拟器的使用以及常用 adb 命令

以上只是一份面试大纲,相关的详细知识点解析我都已经整理成了文档,接下来用部分截图列举出来:

目录

Activity面试题

Fragment面试题

Service面试题

Handler面试题

..........

要想面试成功进大厂,面试前的准备肯定是要很充分的,除了上面的面试资源分享,我还整理了以下安卓面试复习资源给大家,有需要的朋友自行领取:Android高级开发面试题及答案整理

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。