技术实现,Android技术功底不够如何去面试

简介: 技术实现,Android技术功底不够如何去面试

导语

思来想去,还是觉得有必要把自己这一路的经历写出来给小伙伴分享分享,也感谢身边人对自己这一路来的帮助。


首先自我介绍一下,本人非科班非211渣本,电子科学与技术专业,电子、光通信方向,真是偏的不能再偏了。从七月初到九月底,秋招历时三个月。最后拿到了腾讯Android开发岗位和阿里移动软件工程师offer,快手Android开发岗位,也还算幸运。


谨以此文记录我的校招经历与感悟。同时祝还在一线奋战的各位都能尽快找到自己满意的工作!


阿里巴巴

面试问题还记得一些,一部分已经忘记了,为了防止再忘记,所以写出来。

1:你是如何理解Android操作系统的。

2:是否熟悉framework层,如果熟悉,那就对framework做个简介。

3:是否熟悉多线程,如果熟悉,介绍下线程。

4:对象锁和类锁是否会互相影响,会举例子让你判断锁的使用是否恰当,并说出原因。

点击领取完整开源项目《安卓学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

5:是否熟悉Lopper架构,如果熟悉说下其原理,如果你自己实现,你会怎么实现。这里主要考察阻塞消息队列原理,和其变形。

6:自定义控件原理,及消息分发流程。

7:binder工作原理。

8:ActivityThread,Ams,Wms的工作原理。

9:如果工作中需要修改framework,你如何寻找切入点。

电话面试就这么多内容,自我感觉给回答打了75分,然后就是等通知;又隔了两天,阿里的HR打电话让我去指定地点面试,心里有点紧张,因为想给马云打工的人太多,竞争激烈程度可想而知


小米

一面、二面


1.介绍一下binder和原理


2.measure layout draw流程,滑动冲突


3.常用的多线程工具类。blockingqueue ,concurrenthashmap,信号量,countdownlatch,cyclicbarrier,exchanger等,stringbuffer


4.stringbuilder 和stringbuffer区别


5.lock和syncrognized原理区别,适合什么场景。


6.实现生产者,消费者


7.handler原理,是如何实现延时的。


8.一个activity启动另外一个activity的生命周期。


算法题:


1反转链表

2.归并排序

3.快速排序

4.feiboqiena数列

5.二分查找

6.两个队列实现栈

7.两个栈实现队列

8.判断链表是否成环,找到成环的交点。


字节跳动面试

一面


1:插件化。启动activity的hook方式。taskAffity。


2:okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称


3:handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。


4:阻塞是怎么实现的?为什么不会阻塞主线程?


5:求二叉树中两个节点之间的最大距离。


6:206含义,未修改资源是哪个,302含义,301含义


7:多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?


8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理


9:Application和Activity在Context的继承树上有何区别?二者使用上有何不同?


10:任意一颗二叉树,求最大节点距离


二面


1:设计一个日志系统。


2:内存泄露的分类。怎么查看内存泄露的问题


3:touch事件源码问题。


4:组件化的问题。module和app之间的区别。moduler通信是如何实现的。


5:native奔溃的日志采集,怎么处理?


6:注解实现一个提示功能:如果int的值大于了3需要提示。


三面


1:介绍下flutter的启动流程


2:介绍下flutter与weex的区别


3:组件化介绍一下


4:webview中与js通信的手段有哪些?


5:介绍下flutter_boost的原理


四面


1:适配器和装饰模式各自特点和使用场景


2:视频编解码是怎么做的


3:三色球排序


一面为什么工作一年就想换工作?onTouchEvent/onTouchListenr.onTcouchEvent/onClickListenrhashmap的原理?java的hashcode和equals的区别java的gc了解多少?kt的伴生对象是饿汉模式还是懒汉模式?handler.postDelayed的原理ANR怎么产生?怎么捕捉?智力题:桌子上有101块饼***拿先手,他拿后手,你需要怎么赢tcp 三次握手/四次挥手, 为什么要三次握手,四次挥手?内存泄漏是什么?怎么找?算法题:斐波拉契数列,递归的方式怎么优化?


二面手淘这种大型app是怎么迭代起来的?你对小程序的原理了解么?v8binding怎么做?你项目的价值是什么?图片缓存怎么做?你要设计一个图片缓存框架怎么搞?lrucache怎么实现?为什么是o(1)的时间复杂度?voliate 关键字解释下?voliate 关键字不能实现什么?https解释下常见的对称加密算法和非对称加密算法有哪些?让你设计一个打点系统怎么做?如果进程被杀死或者切换后台,数据如何保存丢失?你怎么设计埋点系统一个线程模型?快速排序?快速排序是稳定的么?如何实现一个快速排序的稳定性?minstack怎么设计?kotlin和java混用有哪些问题?设计一个数据结构,微博里面有人发了文章怎么实现?关注怎么实现?微博里面有人发了文章,关注的人如何获取最新的10条?如何获取关注的人的文章的最新1000条?设计一个高效的算法


三面你为什么选择换工作?你组里面的人都怎么样?你怎么解决项目中的难点?你有工作中遇到过哪些比较麻烦的地方?你平时怎么学习的啊?你除去学习之外都看什么书?

相关文章
|
3天前
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术深度对比
【10月更文挑战第18天】 在智能手机操作系统领域,安卓和iOS无疑是两大巨头。本文将深入探讨这两种系统的技术特点、优势以及它们之间的主要差异,帮助读者更好地理解这两个平台的独特之处。
14 0
|
3天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
36 6
|
1天前
|
安全 搜索推荐 Android开发
揭秘iOS与Android系统的差异:一场技术与哲学的较量
在当今数字化时代,智能手机操作系统的选择成为了用户个性化表达和技术偏好的重要标志。iOS和Android,作为市场上两大主流操作系统,它们之间的竞争不仅仅是技术的比拼,更是设计理念、用户体验和生态系统构建的全面较量。本文将深入探讨iOS与Android在系统架构、应用生态、用户界面及安全性等方面的本质区别,揭示这两种系统背后的哲学思想和市场策略,帮助读者更全面地理解两者的优劣,从而做出更适合自己的选择。
|
1天前
|
Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
|
1天前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
1天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
|
4天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
13 3
|
5天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
13 2
|
5天前
|
安全 Android开发 iOS开发
安卓vs iOS:探索两种操作系统的独特魅力与技术深度###
【10月更文挑战第16天】 本文旨在深入浅出地探讨安卓(Android)与iOS这两种主流移动操作系统的特色、优势及背后的技术理念。通过对比分析,揭示它们各自如何塑造了移动互联网的生态,并为用户提供丰富多彩的智能体验。无论您是科技爱好者还是普通用户,都能从这篇文章中感受到技术创新带来的无限可能。 ###
22 2
|
5天前
|
机器学习/深度学习 人工智能 Android开发
安卓与iOS:技术演进的双城记
【10月更文挑战第16天】 在移动操作系统的世界里,安卓和iOS无疑是两个最重要的玩家。它们各自代表了不同的技术理念和市场策略,塑造了全球数亿用户的移动体验。本文将深入探讨这两个平台的发展历程、技术特点以及它们如何影响了我们的数字生活,旨在为读者提供一个全面而深入的视角,理解这两个操作系统背后的哲学和未来趋势。
21 2