美文网首页
面试造火箭,看下这些Android中高级岗面试原题

面试造火箭,看下这些Android中高级岗面试原题

作者: 小城哇哇 | 来源:发表于2022-06-16 17:49 被阅读0次

    前言

    需求已改活已加,加班通宵看朝霞。 终是上线已延期,bug还是改不完。

    面试造火箭,工作拧螺丝,虽然我只想拧螺丝,可是我需要用造火箭的技术去寻找拧螺丝的工作,如何能在面试过程中让自己处于不败的地步呢,刷题是一个比较好的捷径,今天就汇总了一些比较经典的面试题进行了汇总,分享给大家。

    大厂面试真题

    嘀d出行:

    • handler原理,主线程发送message给子线程
    • recyclerview列表的优化
    • 自定义view,onmeasure的如何测量,测量模式起什么作用?
    • 大图片如何处理?
    • sp支持多进程吗?多线程呢?
    • 数据库读写在同一个线程吗?
    • 一个文本文件中每行有一个手机号或电话号,给定一个手机号,判断该文件中是否存在。给出时间复杂度较低的方案。

    最y:

    • 对着项目一通问,包括项目结构、自己参与的部分等等
    • OKhttp原理,链式调用、链接复用等
    • 对exoplayer、ijkplayer的了解,如果在视频未播放时就调用暂停,会有什么问题?如何解决视频的边下边播?如何解决列表中的视频滑动到屏幕中间就自动开始播放?
    • 列表滑动卡顿该如何定位问题?
    • 对以空间换时间的理解?
    • HashMap、LinkedHashMap原理

    作y帮:

    • 主线程给子线程发送消息,handler、threadlocal、threadlocalmap、thread之间是怎么联系的
    • glide的结构设计、btimap的复用和系统的复用比较,有什么优点?与生命周期的绑定
    • 自定义view测量、布局、绘制,有没有做过复杂的自定义view,举个例子
    • 一个scrollview里有个button,button有点击事件,列表可滑动,怎么去做事件分发的
    • 项目架构设计、mvp的实现、model里的请求分页怎么实现?
    • 视频播放器、exoplay的优缺点,ijkplay的优缺点

    小m:

    • handler、massage、massager、Loop之间的关系和区别
    • view的绘制和事件分发,Android的绘制机制?布局的绘制流程?
    • Activity在oncreate中finish,生命周期是怎样的?
    • Glide、okhhtp、retrofit等三方库的原理,简单阐述
    • 视频播放器封装、弹幕的实现,自己项目的结构和路由框架、新闻列表的实现、mpv的实现等
    • android内存泄露有哪些?怎么处理?handler为什么会发生内存泄露?它的gcRoot是什么?强软弱虚引用哪些可以解决内存泄露?为什么?
    • 一个view上每秒显示一个数字,每隔一秒改变一次,想出解决办法,越多越好
    • 代码健壮性和质量怎么控制?appbug怎么统计的?怎么处理的?
    • 一个string值传入方法,值改变吗?换成stringbuild呢?
    • Java垃圾回收、分代算法的原理,如何判定对象死亡?gcRoot有哪些?Java内存模型,哪些区可以作为gcRoot?内存怎么释放?线程的工作内存放在哪?强软弱虚四种引用的区别?
    • 给定数组-1,0,1,0,-1,-4,0找出其中3个数相加为0的全部组合,给出解决方案
    • 判断单链表相交,找出节点,手写代码
    • 反转单链表,手写代码
    • 给定两个链表,存储着两个16进制数,链表的一个节点存储着16进制数的其中一个数,从高位到低位,求相加的值,返回一个链表,链表中保存相加的结果。(先反转链表,然后逐位相加,记录进位值,再与高位相加)手写代码

    百d:

    • 抽奖转盘,分四份,中奖概率为5%,UI和逻辑怎么实现
    • 数据库查询,至少参与了三项考试,且分数均超过80的人,写出sql语句
    • 线程同步:线程1循环输出1到10,线程2循环输出1到10,启动线程1、2,要求做到线程2输出5之后,线程1才开始输出(用wait、notify实现)
    • jvm内存模型,垃圾回收机制
    • 手写单例
    • kotlin类的扩展,【】方括号该扩展什么?
    • 怎么在项目中进行架构设计的?MVP模式的优点,如何实现?MVVM了解吗?
    • 网络请求大量图片并展示在页面上,需要注意什么?网络请求资源复用、图片缓存等
    • 内存泄露有哪些?怎么处理?
    • 数据查出来为什么用cursor游标,而不直接返回个list集合?
    • 缓存了10000条数据、怎么查出来并显示?项目中数据库大概是什么量级的?数据量及占内存量?
    • content provide是干什么的?Google为什么设计它?
    • 一个网格页面、显示9张图片,弱网情况下,滑到下一页,怎么去调度线程加载下一页面的图片?
    • 了解的设计模式,代理模式流程、观察者模式流程、涉及几个类
    • 了解哪些google推出的比较新的库、livedata?databinding?jetpack?
    • kotlin相对于Java有什么优势?函数式编程的优势?函数式和面向对象比较
    • 商城里有图片、文档、视频,字段有(id,name,type,pic,author,price),选择购买后在我的订单页可以查看,可选择下载至手机本地,给出客户端实现方案、写关键代码,给出数据库实现,写关键sql语句
    • 文件中每行有一个手机号对应用户信息,给定手机号查找出对应信息,如果手机号排序了,怎么查?用了二分法查,写了简单的二分法实现
    • 任意二叉树,求出其中最远的两个节点间的距离
    • 对未来职业生涯的规划?怎么去做有深度的工程师?开发中遇到的困难?怎么解决的?自己项目里做的亮点!面对一份新工作怎么去适应?自己公司开发项目的流程是怎样的?你参与了哪些流程?项目中你有没有主动提出过对产品优化的意见?

    Android面试原题解析

    这份面试真题合集《2022最新Android中高级面试题汇总》分为9个部分:Java基础、Android基础、UI控件篇、网络通信篇、架构设计篇、性能优化篇、源码流程篇、新技术篇、面试篇,,从知识点到面试题到新技术都进行了全面以及详细的解析!

    2022Android中高级面试题汇总

    • Android事件分发机制,请详细说下整个流程
    • Android view绘制机制和加载过程,请详细说下整个流程
    • Android四大组件的加载过程,请详细介绍下
    • Activity的启动模式
    • A、B、C、D分别是四种Activity的启动模式,那么A->B->C->D->A->B->C->D分别启动,最后的activity栈是怎么样的
    • Activity缓存方法
    • Service的生命周期,两种启动方法,有什么区别
    • 怎么保证service不被杀死
    • 静态的Broadcast 和动态的有什么区别
    • Intent可以传递哪些数据类型
    • Json有什么优劣势、解析的原理
    • 一个语言的编译过程
    • 动画有哪几类,各有什么特点
    • Handler. Looperi消息队列模型,各部分的作用
    • 怎样退出终止App
    • Android IPC:Binder原理
    • 理解Window和WindowManager
    • Bitmap的处理
    • 如何实现一个网络框架(参考Volley)
    • ClassLoader的基础知识
    • 插件化框架描述: dynamicLoadApk为例子
    • 热修复:Andfix为例子
    • 线程同步的问题,常用的线程同步
    • Asynctask和线程池,GC相关(怎么判断哪些内存该GC,GC算法)
    • 数据库性能优化:索引和事务
    • APK打包流程和其内容
    • 网络劫持的类型原理:可以百度一下了解一下具体概念
    • bundle的数据结构,如何存储
    • listview内点击buttom并移动的事件流完整拦截过程:
    • Android的IPC通信方式,线程(进程间)通信机制有哪些
    • 操作系统进程和线程的区别
    • HashMap的实现过程:
    • Java的线程如何实现
    • Java 中内部类为什么可以访问外部类
    • 设计移动端的联系人存储与查询的功能,要求快速搜索联系人,可以用到哪些数据结构?
    • 红黑树特点
    • ConcurrentHashMap内部实现,HashTable的实现被废弃的原因:
    • HandlerThread是什么
    • IntentService是什么
    • class和dex
    • 过度绘制、卡顿优化:
    • apk瘦身:
    • ANR的形成,各个组件上出现ARN的时间限制是多少
    • Serializable和Parcelable的区别
    • Sharedpreferences源码简述
    • 操作系统如何管理内存的:
    • 浏览器输入地址到返回结果发生了什么
    • Activity的生命周期

    Java基础

    • 第一节静态内部类和非静态内部类的比较
    • 第二节多态的理解与应用
    • 第三节java方法的多态性理解
    • 第四节java中接口和继承的区别
    • 第五节线程池的好处,详解,单例(绝对好记)
    • 第六节线程池的优点及其原理
    • 第七节线程池的优点(重点)
    • 第八节为什么不推荐通过Executors直接创建线程池
    • 第九节不怕难之BlockingQueue及其实现
    • 第十节深入理解ReentrantLock与Condition
    • 第十—节Java多线程:线程间通信之Lock
    • 第十二节 Synchronized 关键字原理
    • 第十三节ReentrantLock原理
    • 第十四节HashMap中的Hash冲突解决和扩容机制
    • 第十五节JVM常见面试题
    • 第十六节JVM内存结构
    • 第十七节类加载机制/双亲委托

    Android基础

    • 第一节Activity知识点(必问)
    • 第二节Fragment知识点
    • 第三节Service知识点
    • 第四节 Intent知识点

    性能优化

    • 第一节启动优化
    • 第二节内存优化
    • 第三节绘制优化
    • 第四节安装包优化

    源码流程

    • 第一节开源库源码分析
    • 第二节Glide源码分析
    • 第三节 Android面试题:Glide
    • 第四节day 20面试题:Glide面试题
    • 第五节聊—聊关于Glide在面试中的那些事
    • 第六节面试官:简历上如果写Glide,请注意以下几点
    • 第七节 Glide OOM问题解决方法汇总
    • 第八节OkHttp源码分析
    • 第九节 okhttp连接池复用机制
    • 第十节 okhttp 流程和优化的实现
    • 第十—节—篇让你受用的okhttp分析
    • 第十二节OkHttp面试之--OkHttp的整个异步请求流
    • 第十三节OkHttp面试之--HttpEngine中的sendRequest方法详解
    • 第十四节OkHttp解析大总结
    • 第十五节Okhttp任务队列工作原理
    • 第十六节Android高频面试专题–架构篇((二)okhttp面试必知必会
    • 第十七节Android网络优化,使用HTTPDNS优化DNS,从原理到OkHttp集成
    • 第十八节Retrofit源码分析
    • 第十九节RxJava原理与源码分析

    最后

    由于文章篇幅有限无法展示全部资料,需要领取《2022Android中高级面试题汇总》的小伙伴可以在公众号中免费领取,希望这份资料能帮上大家,同时也祝大家都能在新的一年都能找到满意的工作。

    《2022最新Android中高级面试题汇总》

    相关文章

      网友评论

          本文标题:面试造火箭,看下这些Android中高级岗面试原题

          本文链接:https://www.haomeiwen.com/subject/mzuqvrtx.html