腾讯、百度、华为、搜狗和滴滴Android面试题汇总

前言:前一段时间和大家交流,据反馈现在Android岗位也没有以前那么多了,当然这不意味着饱和,只是市场更趋于合理一些,Android还有有很多机会的。最近结合一些面试的同学(包含社招和校招),整理了下一些面试题目。实际上,很多面试题网上都能找得到。我整理面试题如下,供大家参考,知道比没知道的好。可以帮大家查漏不缺。以下是(腾讯,百度,华为,搜狗和滴滴 这些厂的面试题)

Android基础

View的绘制流程;自定义View如何考虑机型适配;自定义View的事件分发机制;View和ViewGroup分别有哪些事件分发相关的回调方法;自定义View如何提供获取View属性的接口;

Art和Dalvik对比;虚拟机原理,如何自己设计一个虚拟机(内存管理,类加载,双亲委派);JVM内存模型及类加载机制;内存对象的循环引用及避免

内存回收机制与GC算法(各种算法的优缺点以及应用场景);GC原理时机以及GC对象;内存泄露场景及解决方法;OOM的避免及解决方法

四大组件及生命周期;ContentProvider的权限管理(读写分离,权限控制-精确到表级,URL控制);Activity的四种启动模式对比;Activity状态保存于恢复

Fragment生命周期;Fragment状态保存

startActivityForResult是哪个类的方法,在什么情况下使用,如果在Adapter中使用应该如何解耦

AsyncTask原理及不足;IntentService原理

AstncTask+HttpClient与AsyncHttpClient有什么区别

如何保证一个后台服务不被杀死;比较省电的方式是什么

如何通过广播拦截和abort一条短信;广播是否可以请求网络;广播引起anr的时间限制

进程间通信,AIDL

Handler机制及底层实现

Binder机制及底层实现

ApplicationContext和ActivityContext的区别

一张Bitmap所占内存以及内存占用的计算

对于应用更新这块是如何做的?(灰度,强制更新,分区域更新)

混合开发,RN,weex,H5,小程序(做Android的了解一些前端js等还是很有好处的)

说一款你认为当前比较火的应用并设计(直播APP)

Java基础

集合类以及集合框架;HashMap与HashTable实现原理,线程安全性,hash冲突及处理算法;ConcurrentHashMap

进程和线程的区别;多线程与线程池

数据一致性如何保证;Synchronized关键字,类锁,方法锁,重入锁

同步的方法;多进程开发以及多进程应用场景

服务器只提供数据接收接口,在多线程或多进程条件下,加小编微信:AMEPRE,如何保证数据的有序到达

ThreadLocal原理,实现及如何保证Local属性

String StringBuilder StringBuffer对比

接口与回调;回调的原理;写一个回调demo;

泛型原理,举例说明;解析与分派

抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性

静态属性和静态方法是否可以被继承?是否可以被重写?原因

修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法

数据结构与算法

堆和栈在内存中的区别是什么(数据结构方面以及实际实现方面)

最快的排序算法是哪个?给阿里2万多名员工按年龄排序应该选择哪个算法?堆和树的区别;写出快排代码;链表逆序代码

求1000以内的水仙花数以及40亿以内的水仙花数

子串包含问题(KMP 算法)写代码实现

万亿级别的两个URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分组->多文件读写效率->磁盘寻址以及应用层面对寻址的优化)

蚁群算法与蒙特卡洛算法

写出你所知道的排序算法及时空复杂度,稳定性

百度POI中如何试下查找最近的商家功能(坐标镜像+R树)

其他

死锁的四个必要条件

常见编码方式;utf-8编码中的中文占几个字节;int型几个字节

实现一个Json解析器(可以通过正则提高速度)

MVC MVP MVVM; 常见的设计模式;写出观察者模式的代码

TCP的3次握手和四次挥手;TCP与UDP的区别

HTTP协议;HTTP1.0与2.0的区别;HTTP报文结构

HTTP与HTTPS的区别以及如何实现安全性

非技术问题汇总

研究比较深入的领域有哪些

对业内信息的关注渠道有哪些

最近都读哪些书

自己最擅长的技术点,最感兴趣的技术领域和技术点

项目中用了哪些开源库,如何避免因为引入开源库而导致的安全性和稳定性问题

实习过程中做了什么,有什么产出

5枚硬币,2正3反如何划分为两堆然后通过翻转让两堆中正面向上的硬币和反面向上的硬币个数相同

时针走一圈,时针分针重合几次

N * N的方格纸,里面有多少个正方形

现在下载速度很慢,试从网络协议的角度分析原因,并优化(网络的5层都可以涉及)

HR问题汇总

讲一件你印象最深的一件事情

介绍一个你影响最深的项目

介绍你最热爱最擅长的专业领域

公司实习最大的收获是什么

自己的优点和缺点是什么?举例说明

你的学习方法是什么样的?实习过程中如何学习?实习项目中遇到的最大困难是什么以及如何解决的

说一件最能证明你能力的事情

项目中遇到最大的困难是什么?如何解决的

你的职业规划以及个人目标;未来发展路线及求职定位

评价下自己,评价下自己的技术水平,个人代码量如何

通过哪些渠道了解的招聘信息,其他同学都投了哪些公司

业余都有哪些爱好

当前的offer状况;如果BATH都给了offer该如何选

你对一份工作更看重哪些方面?平台,技术,氛围,城市,money

理想薪资范围;杭州岗和北京岗选哪个

理想中的工作环境是什么

实习过程中周围同事/同学有哪些值得学习的地方

家人对你的工作期望及自己的工作期望

若上司在公开会议上误会你了,该如何解决

是否可以实习,可以实习多久

你看中公司的什么?或者公司的那些方面最吸引你?

推荐书籍:几本Android程序员必读书籍

以上就是腾讯、百度、华为各公司的Android面试题,希望对大家的学习有所帮助。

(0)

相关推荐

  • Android 面试题汇总

        Android 70道面试题汇总不再愁面试 本文为开发者奉献了70道经典Android面试题加答案--重要知识点几乎都涉及到了,你还等啥,赶紧收藏吧!! 1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A.ArithmeticExcep

  • Android招聘面试题解答

    一般简单题1. Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.2. SIM卡的 EF 文件有何作用?sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的.3. 嵌入式操作系统内存管理有哪几种,各有何特性?页式

  • Android工程师面试题大全

    下面对这段时间面试遇到的问题进行整理,分享给大家供大家参考,具体内容如下 Java基础: 1.内存泄露的原因 1).资源对象没关闭. 如Cursor.File等资源.他们会在finalize中关闭,但这样效率太低.容易造成内存泄露. SQLiteCursor,当数据量大的时候容易泄露 2).使用Adapter时,没有使用系统缓存的converview. 3).即时调用recycle()释放不再使用的Bitmap. 适当降低Bitmap的采样率,如: BitmapFactory.Options o

  • 腾讯、百度、华为、搜狗和滴滴Android面试题汇总

    前言:前一段时间和大家交流,据反馈现在Android岗位也没有以前那么多了,当然这不意味着饱和,只是市场更趋于合理一些,Android还有有很多机会的.最近结合一些面试的同学(包含社招和校招),整理了下一些面试题目.实际上,很多面试题网上都能找得到.我整理面试题如下,供大家参考,知道比没知道的好.可以帮大家查漏不缺.以下是(腾讯,百度,华为,搜狗和滴滴 这些厂的面试题) Android基础 View的绘制流程:自定义View如何考虑机型适配:自定义View的事件分发机制:View和ViewGro

  • 2021最新Android笔试题总结美团Android岗职能要求

    目录 Android开发面试的几部分 1.基础知识 Java部分: Android部分: 数据结构与算法: 计算机基础: 设计模式: 开源项目: 重点项目经历 技术以外的东西 自我驱动和追求 沟通和协作 我的面经总结 Android Java 计算机网络 数据结构及算法 题外话 优秀的战士需要出色的剑才能战斗.同样,在现代IT中,每个编码人员都需要最好的Android开发人员工具来提高他们的技能和效率.在Android应用程序开发这个残酷的竞争行业中,只有优秀的开发人员才能生存下去.您需要向客户

  • Android 常见bug汇总及解决方案

    作为开发人员,平时总会遇到各种各样的问题,之前都没有收集bug的习惯,遇到相同的问题总会有种莫名的熟悉感,或许把问题都汇总,方便查找,也可以给大家踩踩坑,后面会陆续更新补充! 1.关于使用OkHttp运行时出现的错误 报错如下: Static interface methods are only supported starting with Android N (--min-api 24):  okhttp3.Request okhttp3.Authenticator.lambda$stati

  • VS2015 Update2 构建 Android 程序问题汇总

    自VS2015起, Visual Studio开始逐渐内置支持跨平台开发, 并且Visual Studio团队还额外发布了一个编译工具集Clang with Microsoft CodeGen, 方便开发人员进行跨平台代码的开发, 该工具集在VS 2015 Update 2时采用的 Clang 版本号是3.7. 与此同时VS的移动开发能力也不再局限于Windows Phone, 而是支持了包括Android, iOS在内的主流平台的应用开发. 和其它新特性首次被引入一样, 虽然历经了两次Upda

  • Android自定义控件案例汇总2(自定义开关、下拉刷新、侧滑菜单)

    案例四 自定义开关: 功能介绍:本案例实现的功能是创建一个自定义的开关,可以自行决定开关的背景.当滑动开关时,开关的滑块可跟随手指移动.当手指松开后,滑块根据开关的状态,滑到最右边或者滑到最左边,同时保存开关的状态,将开关的状态回调给调用者.当然,上述功能系统给定的switch控件也可以实现. 实现步骤: 1. 写一个类继承view,重写两个参数的构造方法.在构造方法中指定工作空间,通过attrs.getAttributeResourceValue方法将java代码中的属性值和xml中的属性值联

  • Android自定义控件案例汇总1(菜单、popupwindow、viewpager)

    自定义控件是根据自己的需要自己来编写控件.安卓自带的控件有时候无法满足你的需求,这种时候,我们只能去自己去实现适合项目的控件.同时,安卓也允许你去继承已经存在的控件或者实现你自己的控件以便优化界面和创造更加丰富的用户体验.在平常的项目中,我们 人为的把自定义控件分为两种:一种是组合方式实现.一种是通过继承view或viewgroup及其子类实现.两者都可以实现我们想要的效果,因此,我们可以根据自己的需求,选择合适的方案.本文以案例的形式来显示几种较为常见的自定义控件. 案例一 优酷菜单: 功能介

  • Android绘图常用方法汇总

    Android绘图常用方法有哪些,下面一一为大家列举: 1.有关画笔(Paint)的方法 Paint mPaint= new Paint(); mPaint.setAntiAlias(true); // 消除锯齿 mPaint.setStrokeWidth(mCircleWidth); // 设置圆环的宽度 mPaint.setStrokeCap(Paint.Cap.ROUND); // 定义线段断点形状为圆头 mPaint.setAntiAlias(true); // 消除锯齿 mPaint.

  • Android面试题问答整理

    概述 找工作挺难,为更好的应对面试,我将一些面试题收集整理起来,好让自己随时复习. 1.请谈一下Android系统的架构. 答:Android系统采用了分层架构,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 2.谈谈android大众常用的五种布局. 答:在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),Ta

  • Erlang实现的百度云推送Android服务端实例

    百度云推送官方地址http://developer.baidu.com/wiki/index.php?title=docs/cplat/push 简单的介绍下原理: 百度云推送支持IOS和Android的云推送.Android支持的还不错,但是IOS一般很难调通.百度云对于IOS的推送来说,他只是做了一个中间的代理,为用户提供接口,优点是使用百度云推送,Android和IOS可以统一管理:缺点是:调通不容易,用户的IOS证书需要上传验证,会直接暴露给第三方,并且IOS的apns支持用户自己构建p

随机推荐