Android阿面试积累,2024Android笔试真题-程序员宅基地

技术标签: 2024年程序员学习  面试  android  职场和发展  

四面:

四面是CTO面,当时有点紧张,CTO很有绅士风度,一上来主动跟我握手,当时我有些紧张,手心都出汗了,他说我是不是很热,我说是的。然后说自己从网易出来之后就开始创业了,一直是在做提高企业生产效率相关的产品,现在做的GrowingIO也是的,然后问了我很多问题,主要是我在上一份工作中的成长跟收货,未来的规划等等,以及在项目中遇到问题是如何进行团队协作的,问地很细,可以看地出来公司对这款产品非常重视,像滴滴企业版,陌陌等都是他们的客户,感觉这家公司会发展很不错,最后我也问他为什么会尝试做那么多产品而不是专注于某一款产品等等,然后他也给了详细的解答。

没有给我Offer的原因在于我的薪资可能开地过高,一面基本上是处于被淘汰的局面,但是我跟后面的面试官都聊地很好,晚上还在那儿吃了顿饭,最后CTO还跟我聊了很久,我觉得他们应该是觉得我可以培养,但是薪资要低偏高,所以就最终放弃了我,因为对于创业公司,我的薪资都开地高一些,不管结果怎么样,还是挺感谢这家公司的,希望他们发展地越来越好。

公司四(Offer)

面试机会来自于拉勾网

一面:

  • Debug跟Release的APK的区别
  • 软引用跟弱引用的区别
  • ConcurrentHashmap的原理
  • Listview跟Recyclerview的区别(刷新,缓存,各自的使用场景)
  • 对谷歌新推出的Room架构
  • 动画的两种实现:setX跟setTranslationX区别
  • 事件分发:Activity跟window依次到viewgroup
  • Volley源码,优缺点
  • Picasso传入的Activity跟Application的context的区别

二面:

  • 数据库的升级,表结构的修改
  • 常见的排序算法,手写二分查找,二分查找的复杂度分析
  • 点击APP图标启动APP的大致流程
  • SplashActivity中进行初始化MainActivity的参数,Splash没有初始化,AMS直接启动了MainActivity怎么办
  • 设计一个多线程,可以同时读,读的时候不能写,写的时候不能读(读写锁)
  • 设计断点续传,如何判断服务端是否支持断点续传
  • Binder机制:Binder内核所在的进程是如何找到到Server跟Client进行通信的
  • 对JNI是否了解
  • 组件化的原理,组件间通信
公司五:京东

面试机会来自于Boss直聘

京东到家(电面):

  • GitHub上面的开源项目
  • 一个线程能否创建多个Handler,Handler跟Looper之间的对应关系
  • ArrayList跟HashMap是够线程安全,如何保证线程安全
  • Volley返回数据量比较大的请求时怎么办
  • ListView跟RecyclerView刷新数据原理,使用到的设计模式
  • 适配如何做,有没有适配过全面屏
  • Fragment跟Activity的通信方式,你知道几种?

京东商城(电面):

  • 内存泄露的种类
  • ActivityA启动ActivityB时生命周期的变化
  • AMS是如何管理Activity的
  • JVM中的GC回收机制
  • 常见的跨进程通信方式,AIDL的实现原理
  • APP以及Activity的启动流程
  • Hook以及插桩技术
公司六:京东金融(Offer)

一面:

  • 从长度为m的int数组中随机取出n个元素,每次取的元素都是之前未取过的,如何优化
  • https是如何保证安全的,证书如何校验
  • Android的签名机制,APK包含哪些东西
  • 是否遇到过OOM,如何解决
  • 是否做过逆向
  • 对JNI了解多少
  • 手写单例(DCL)
  • 是否写过so文件
  • 热修复原理,如何进行dex替换的

二面:

  • 简单说下项目
  • 内存泄露,如何检测以及检测的原理
  • 点击Launcher跟点击微信支付启动微信有什么区别
  • 逆序一个字符串,不能调用String的reverse方法(考察编码风格)
  • 组件化原理,模块化机制
  • 没有给权限如何定位,特定机型定位失败,如何解决
  • 同步跟异步机制(是业务上的,不知道他想问什么)
  • 线程池中核心线程数跟最大线程数如何定义
公司七:(Over)

面试机会来自于拉勾

一面:

  • StringBuffer跟StringBuilder之间的区别
  • 并发相关,各种锁
  • View的绘制流程,事件分发
  • Hashmap,Arraymap,SparseArray
  • 四种引用
  • MVP跟MVC的区别
  • LV跟RV之间的区别
  • Service相关,startService以及bindService
  • Fragment不同于Activity的生命周期
  • 生产者消费者问题:一对多,多对多情况
  • 常见的设计模式,并选择一种描述一下
  • Scroller的使用

二面:

  • Gradle生命周期
  • Java&Android关于Classloader源码解析
  • Python的class文件
  • DCL中Volatile的作用,如何防止反射实例化单例对象
  • 抽象类能否实例化,理论依据是什么?
  • 如何通过Gradle配置差异较大(20%差异)的多渠道包
  • class文件如何转化成dex
  • Service先start再bind如何关闭service,为什么bindService可以跟Activity生命周期联动?
  • JVM相关,DVM以及ART是如何进行优化的,具体步骤
  • 长连接常见的库,短链接
  • 静态同步锁与普通同步锁的区别
  • 直接在Activity中创建一个thread跟在service中创建一个thread之间恩区别
高德—汽车事业部(Over)

面试机会来自于Boss

一面:

  • View的生命周期
  • View的绘制流程跟事件分发
  • Activity跟Window之间的关系
  • 对C跟JNI是否熟悉
  • 热修复原理,插件化是如何进行加载插件的
  • Java中的锁,各种同步方式之间的区别
  • ANR在四大组件中的时间,场景
  • OOM,如何避免
  • 内存泄露原理,如何避免
  • MVC跟MVP之间的区别
  • ListView针对多种item的缓存是如何实现的
  • Android绘制二维跟三维的View的区别
  • 是否了解硬件加速
  • ListView是如何实现对不同type的item的管理的

二面:

  • Android中IPC方式,各种方式优缺点,为什么选择用Binder
  • 主流的热修复框架流派,原理,是否研究过classloader源码
  • Android为什么要设计两种classloader,为什么不用一种,通过type来区分
  • Bundle传递数据为什么需要序列化
  • 手写一个快排,分析原理
  • 广播传输的数据是否有限制,是多少,为什么要限制?
  • Activity启动时生命周期是如何回调的?
  • MVP.MVC.MVVM之间对比分析
  • 组件化通讯:有几种通信方式,Arouter原理
  • 插件化加载流程,原理
  • 关于反射混淆,耗性能的解决方式
  • 天猫七巧板布局原理
  • 热修复流派,原理
高德—地图事业部(Over):

面试机会来自于Trinea内推

一面:

  • RecyclerView的itemdecoration如何处理点击事件
  • 单例模式如何修改数据
  • android事件传递,非常细
  • 多线程

**二面:

  • JVM内存分布,Classloader
  • 静态代理跟动态代理
  • 线程的生命周期
  • 是否用过DataBinding
  • 是否接触过JNI
  • 对热修复跟插件化了解多少
  • 对RN了解多少
  • 二分查找
  • 说下多态
  • 编译期注解跟运行时注解
  • 线程跟进程间通信
  • Android中的IPC
  • java中的传递
  • equals跟==
  • Picasso的存储
  • 项目中的难点
  • 项目中用到了哪些第三方
  • MVC,MVVM,Clean架构
  • 抽象类跟接口的区别,接口的默认修饰符
掌阅科技(Over)

面试机会来自于Boss

一面:

  • Canvas.save()跟Canvas.restore()的调用时机
  • 程序A能否接收到程序B的广播?接入微信支付的时候,微信是如何跟当前程序进行通信?
  • 对Java.nio了解多少
  • ConcurrentHashMap是如何实现分段锁?
  • 现在需要遍历SD卡下所有的文件打印出后缀名为.txt文件名称,如何提高时间效率?
  • 为什么复写equals方法的同时需要复写hashcode方法,前者相同后者是否相同,反过来呢?为什么?
  • Android4.0~8.0之间大的变化,如何处理?
  • 说一下Measurespec这个类
  • ViewHolder有什么用?
  • Gradle的Flavor能否配置sourceset?
  • 线程池核心线程数一般定义多少,为什么?
  • Intentservice有什么用
  • 弱引用什么时候被回收
  • Android中提供了哪些类来帮忙处理线程
  • http的状态码,常见的请求头,http缓存协议https如何加密
  • 多进程的优缺点,多线程的优缺点
  • 热修复如何修复资源文件?
  • 有没有遇到64k问题,为什么,如何解决?
  • httpUrlconnection跟httpClient有什么区别
马蜂窝(Over)

面试机会来自于Boss

一面:

  • 两个非基本数据类型数组: array1=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,×11] array2=[x6,x3,x10,x5] 计算结果:[x6,x7,x8,x9,x1,x2,x3,x4,x10,x11,x5],写出你的算法
  • 类的初始化过程
  • 点击事件穿透原则
  • 线程池使用的是哪一种,使用原则
  • LeakedCanary原理
  • LinerLayout跟RelativeLayout的绘制原理
  • Android新版本的一些新特性6.0,7.0,8.0
  • 类的初始化顺序依次是(静态变量、静态代码块)>(变量、代码块)>构造方法

二面:

  • 看了看项目提了问题如何进行优化
  • 如何实现马蜂窝中的一个动画效果
  • 软键盘顶起布局
  • 组件化通信方案
爱奇艺(Offer)

面试机会来自于拉勾

一面:

  • 聊聊RecyclerView,动画,缓存,数据绑定底层是如何实现的。
  • 聊了聊我的开源项目实现原理
  • View在屏幕中的移动底层是如何实现的
  • Binder跟Socket之间的区别,什么时候用哪一个,Binder的底层实现
  • Activity,Window跟View之间的关系
  • setContentView都干了啥
  • Activity的启动模式
  • MVC跟MVP之间的区别
  • 算法:将一个有序数组去重得到一个新数组(空间复杂度为O(N))

二面:

  • LruCache底层实现
  • Hashmap的hash算法

学习分享,共勉

Android高级架构师进阶之路

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人,若有关Android学习进阶可以与我在Android终极开发交流群一起讨论交流。 点击这里前往我的Git领取资料 的同时,还可以加入一个好的学习交流圈,何乐而不为呢?加入我们和我们一起吧!!

  • Android进阶知识体系学习脑图

  • Android进阶高级工程师学习全套手册

  • 对标Android阿里P7,年薪50w+学习视频

  • 大厂内部Android高频面试题,以及面试经历

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

10964027448)]
[外链图片转存中…(img-0Bxs2yEt-1710964027448)]
[外链图片转存中…(img-4TOS1LyU-1710964027449)]
[外链图片转存中…(img-MX2VYfxj-1710964027449)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-ydTy5vJg-1710964027449)]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_55030688/article/details/136893637

智能推荐

web服务器项目常见面试题目(C++)_webserver面试-程序员宅基地

文章浏览阅读1.9w次,点赞87次,收藏439次。项目介绍1、为什么要做这样一个项目?2、介绍下你的项目_webserver面试

AndroidX的库在哪里下载(AndroidStudio)_androidx.jar-程序员宅基地

文章浏览阅读6.8k次。AndroidXAndroidX 是对 android.support.xxx 包的整理后产物。由于之前的 support 包过于混乱,所以,Google 推出了AndroidX。在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须迁移到 AndroidX 。如何迁移到AndroidX在 AndroidStudio 3.2 或更高版本(截图中 AndroidStudio..._androidx.jar

Linux bash(bash shell) 特性_bin bash 操作liunx 命令-程序员宅基地

文章浏览阅读541次,点赞22次,收藏16次。最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

SQL Server超详细使用教程——从安装到编写SQL语句_sqlserver在哪里写sql语句-程序员宅基地

文章浏览阅读10w+次,点赞762次,收藏4.7k次。到微软官网下载SQL Server Developer版本,现在的最新版本是SQL Server 2019 Developer。微软官网传送门:点击此处直达下载完成之后,在文件夹中找到刚才下载的文件,双击打开,打开之后的界面如下图所示。我们选择自定义安装,之后再选择要安装的位置,再点击安装,如下图所示点了安装之后会出现如下图所示的界面,我们需要等待它下载安装包,此过程等待的时间可能较长..._sqlserver在哪里写sql语句

浏览器前端 javascript可以获取客户端的信息_浏览器获取客户端基本信息-程序员宅基地

文章浏览阅读1k次。var appName = navigator.appName; //浏览器的正式名称 var appVersion = navigator.appVersion; //浏览器的版本号 var cookieEnabled = navigator.cookieEnabled; // 返回用户浏览器是否启用了..._浏览器获取客户端基本信息

(最终)如何利用印象笔记搭建自己的知识体系_印象笔记建立个人知识体系-程序员宅基地

文章浏览阅读1k次。1、 为什么要记录笔记这个问题我印象中探讨过很多次,但是简单来讲就是方便日后在遇到相似问题时查询解决方式,并在记录笔记的过程汇总中对知识进行一轮新的复习。这样一生,如果作为一个技术人员来讲的话,我不可能只学习一门技能,需要学习的东西很多。当只会一门技能时,做不做笔记其实无所谓,但是当你学会多种技能时,你需要笔记这样一个第二大脑来帮助存储那些琐碎并不通用的知识,你自己的大脑来记忆通用性的知识,可以迁移的方法。在遇到问题时,知道做什么永远比怎么做更重要。1.1 知识的分类1.1.1 元认知解释:能指导_印象笔记建立个人知识体系

随便推点

css3新增属性有哪些?css3中常用的新增属性-程序员宅基地

文章浏览阅读9k次,点赞2次,收藏31次。**一、css3新增边框属性**1、css3新增属性之border-color:为边框设置多种颜色p {border-style:solid;border-color:#ff0000 #0000ff;} 需要注意:“border-width” 属性如果单独使用的话是不会起作用的。请首先使用 “border-style” 属性来设置边框。2、css3新增属性之border-image:图片边框div {-webkit-border-image:url(border.png) 30 30 r_css3新增属性

ANSYS错误提示:An unknown error occurred during solution. Check the Solver Output on the Solution ...-程序员宅基地

文章浏览阅读1.6w次。An unknown error occurred during solution. Check the Solver Output on the Solution Information object for possible causes._an unknown error occurred during solution. check the solver output on the so

VUE项目里配置eslint less-程序员宅基地

文章浏览阅读1.8k次。VUE项目里配置eslint lessless安装 less 和less-loader ,npm install less less-loader --save**修改webpack.base.config.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加 // 此种方法在控制台中标签样式显示的是style标签样式{ test: /\.less$/, loader: "style-loader!css-loader!less-loader",}_eslint less

SpringSecurity6 | 核心过滤器-程序员宅基地

文章浏览阅读1.4w次,点赞27次,收藏21次。大家好,我是Leo哥,上一节我们通过源码剖析以及图文分析,了解了关于委派筛选器代理和过滤器链代理的原理和作用。这节课我们接着学习SpringSecurity的过滤器,了解SpringSecurity中都有哪些核心过滤器。好了,话不多说让我们开始吧。以上便是本文的全部内容,本人才疏学浅,文章有什么错误的地方,欢迎大佬们批评指正!我是Leo,一个在互联网行业的小白,立志成为更好的自己。如果你想了解更多关于Leo,可以关注公众号-程序员Leo,后面文章会首先同步至公众号。

面试ASP.NET程序员的笔试题和机试题-程序员宅基地

文章浏览阅读128次。面试 一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷 两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据库或一些基本的算法(二分查找,递归等),公司一般都是测试你的基本功是否扎实,如果你基本功好就游刃有余不必紧张! asp.net面试题 1.new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX()..._.net面试机试题

【二、大数据环境篇】001、方法论_方法论semma-程序员宅基地

文章浏览阅读405次。1、官网的文档无论是学习Hadoop的hdfs、hive,还是hbase等,都要非常看重官网的文档。大数据的很多框架,都是Apache的顶级项目,各个组件框架的官网链接都可以从下面的链接进入:Hadoop:http://hadoop.apache.org/Avro: 序列化系统HBase: 分布式数据库Hive: 数据仓库Mahout: 机器学习与数据挖掘库Pig: 并行计算的高级数据..._方法论semma

推荐文章

热门文章

相关标签