一、自我介绍

应该算是起点比较高吧!985大学毕业后面一直在国外读研。之前准备面试微软但是可能经验不够,没有通过。经过朋友介绍我准备回国,积累一些开发经验。于是我面试了国内大厂BATJ,还有一些其他比较知名的公司,一共报了11家。我朋友说这叫广撒网多捞鱼!

其他就不说了BATJ都过了,但是由于地区还有待遇问题,我选择了讯飞一家不大不小的公司。一开始做的挺好的,没想到…

面经分享

我是那边的朋友帮忙内推的,简历通过后电话约的面试。

当时约的是 10:30 的面试时间,我提前了二十机分钟左右到达公司楼下。公司楼层有点复杂,花了十分钟左右到目的地(约的食堂)。

第一轮是两个面试官轮流问问题。第一面大约面了一个小时到了 11:40差不多到饭点了。面完我就准备走了,两个面试官要我等会,然后就直接去叫二面的面试官了,我就在食堂看大家吃饭。

大约等了十几分钟第二面的面试官把我叫到了 31 楼。

也是两个面试官,轮流问了大概一个小时。二面后就差不多到了下午一点,面试官带我去食堂吃了个饭,然后帮我约了下午两点的 HR 面。

整个流程下来挺爽的,总共三轮面试,两轮技术面(都是2个面试官),一轮 HR 面。

技术一面

  1. 常 见 的 Activity 类 型+描述Activity 生命周期
    Activity 从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回 调方法,这些回调方法包括:onCreate onStart onResume onPause onStop onDestroy 其实这些方法都是两两对应的,onCreate 创建与 onDestroy 销毁; onStart 可见与 onStop 不可见;onResume 可编辑(即焦点)与 onPause。。

  2. 两个 Activity 之间跳转时必然会执行的是哪几个方法?
    一般情况下比如说有两个activity,分别叫A,B,当在A里面激活B组件的时候, A 会调用 onPause()方法,然后 B 调用 onCreate() ,onStart(), onResume()。 这个时候 B 覆盖了窗体, A 会调用 onStop()方法. 如果 B 是个透明的,或者 是对话框的样式, 就不会调用 A 的 onStop()方法。

  3. 系统是怎么帮我们启动找到桌面应用的
    我说通过意图,他说怎么找到是哪个意图? 我说 PMS 会解析所有 apk 的 AndroidManifest.xml ,如果解析过会存到 package.xml 中不会反复解析,PMS 有了它就能找到了。

  4. 横竖屏切换时 Activity 的生命周期
    跟清单文件里的配置有关系。
    不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生 命周期默认首先销毁当前 activity,然后重新加载。
    设置 Activity android:configChanges="orientation|keyboardHidden|screenSize"时,切 屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法。 通常在游戏开发, 屏幕的朝向都是写死的。

  5. 屏幕适配的处理技巧都有哪些
    手机自适应主要分为两种情况:横屏和竖屏的切换,以及分辨率大小的不同。

  6. 网络优化的问题
    同一个 ip 同一个端口能复用一个连接,后面问道了 http 2.0 的多路复用,我说一个 tcp 可以多个请求,原理呢?我说不知道。后面让我说了下 https 。

  7. 快排和递归

  8. 数组和链表的区别

技术二面

1.存储数据的几种方式:SharePreference、数据库、文件

2.使用安卓数据库时,有哪些生命周期方法:onCreate、onUpgrade

3.如果要给数据库增加字段,需要怎么做?

  • 方法1:通过alter table add column来做

  • 方法2:先给旧表改名,然后建一张新表包含新的字段,再将旧表数据迁移过去,最后删除旧表

4.数据库读写是线程安全的吗?

  • 读操作是线程安全的:多个线程或进程读取同一个数据库的内容,是可以的。

  • 写操作多个线程操作会抛异常(我感觉这里不能直接说线程不安全吧,因为SqlLite确实是有锁机制的):在多进程或多线程中使用sqlite,同时操作同一个数据库的话,会导致异常抛出。不同线程或实例化多个SqliteOpenhelper来操作同一个数据库,也会导致同样的问题。但不同线程使用同一个sqliteopenhelper来获取SqliteDatabase进行操作的话,是可以的。

5.SharePreference的实现原理,是不是线程安全的,apply和commit有什么区别?

commit方法是有一个boolean的返回值,当数据变化进行存储时是一个原子性的操作,当两个editor对象同时对一个共享的preferences参数进行操作时,永远都是最后一个调用commit方法的editor变更了最后的数据值。

apply方法是没有返回值的,当两个editor同时对preferences对象编辑时,也是最后一个调用apply方法的对象编辑数据。apply的提交操作也是原子性的,但是只提交到内存,速度更快。

6.Handler机制

7.HashMap、HashTable、ConcurrentHashMap的原理

8.计算机网络五层模型

9.http状态码

10.你遇到的最难解决的问题?
我说我们公司项目没有采用动态加载框架,但是后面集成 U3D 项目需要动态加载,但只需要用到 so 和资源动态加载,功能上第三库也不支持我们的需求,我就自己硬着头皮看了各大版本的源码,支持动态修复替换加载 so 和 assets 资源动态修复加载,然后把具体的细节说了一遍。

写在最后

本次我的分享也接近尾声了,感谢你们在百忙中花上一下午来这里聆听我的宣讲,希望在接下来的日子,我们共同成长,一起进步!!!

最后放上一个大概的Android学习方向及思路(详细的内容太多了~),提供给大家:

对于程序员来说,要学习的知识内容、技术有太多太多,这里就先放上一部分,其他的内容有机会在后面的文章向大家呈现出来,不过我自己所有的学习资料都整理成了一个文档,一直在不断学习,如今整理的资料不知不觉居然已经有将近80G了,在这里作为读者福利免费分享给大家,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

资料获取传送门:点击免费获取Android架构设计

群内有许多技术大牛,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

Android架构师之路很漫长,一起共勉吧!

如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

后还会更新技术干货,谢谢您的支持!**

Android架构师之路很漫长,一起共勉吧!

如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

斗鱼直播Android开发二面被刷,好文推荐相关推荐

  1. 安卓开发实战!斗鱼直播Android开发二面被刷,成功入职阿里

    我的移动开发春季历程 没有稳定的工作,只有稳定的能力. 春天,又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的我,在经历了5年的脱发生涯后,现在更多的是称呼自己为移动开发攻城 ...

  2. 斗鱼直播Android开发二面被刷,赶紧收藏!

    前言 "金三银四"再过几天就到了,又到了一年一度的大型**"程序猿跳槽大会"**.作为大龄IT从业者的我们,每到这个时候就会想起年轻时的自己,为了能搞定面试官, ...

  3. 斗鱼直播Android开发二面被刷,跳槽薪资翻倍

    前言 前几年移动互联网创业的风口,如今渐渐消失,移动互联网被巨头公司瓜分,一些创业公司倒闭了,Android 开发需求慢慢趋近于饱和.而当初移动互联网处于风口时,自学.转行以及培训机构出来了大量 An ...

  4. 斗鱼直播Android开发二面被刷,真香!

    前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样. 本文思维导图 快看看下面这些面试真题,是不是都能答得上来? HttpUrlConnection ...

  5. 斗鱼直播Android开发二面被刷,不吃透都对不起自己

    前言 最近我开始偷偷投简历了.与老东家的合同快要到期,想知道自己的斤两,续签合同也好有个底,顺便悄悄看看新的工作机会.虽然市场环境不好,但我们身在涨工资靠跳槽的行业没办法. 由于工作了5年了,经验有了 ...

  6. 安卓web项目开发教程!斗鱼直播Android开发二面被刷,先收藏了

    互联网现状 如今的互联网,延续了2018年的态势.虽然前些年,每到年底的时候大环境都不好,然而来年照样春暖花开.但是现在的互联网环境是真的不好了. 首先各大公司争相优化员工,小公司我就不提了,咱就只说 ...

  7. oppo安卓面试题,斗鱼直播Android开发二面被刷,深度好文

    前言 我最近在筹备Android面试的相关文章,我发现,Framework是一个十分重要的点,被不少大厂所看重. 如图,这是我们的一个技术交流群里面的对话↓↓↓ 前阵子我写的Android技术文里面, ...

  8. android电子市场!斗鱼直播Android开发二面被刷,大厂面试题汇总

    开头 这是一个做精品的时代了,不是当年出个产品就能拉投资骗点击的时代了.精品需要的是更专业的人才,也就是对APP开发人员的素质要求会更高,这个市场会回归一个正常的节奏,拿多少钱就是看能力,看产品.我觉 ...

  9. Android岗面试必问!斗鱼直播Android开发二面被刷,深度好文

    开头 在我认为,对于Android面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题 ...

最新文章

  1. 深度学习(5)感知机(神经元)与神经网络
  2. 面试:TCP协议经典十五连问!
  3. COM:中科院遗传发育所发表“重组菌群体系在根系微生物组研究中应用”的重要综述
  4. boost::geometry::reverse_dispatch用法的测试程序
  5. fastclick库的介绍和使用
  6. python的三维图片_python如何做三维图
  7. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
  8. .net后台怎么提取html中的多个图片的绝对地址_SpringBoot中yml配置文件说明和一些常用配置项说明...
  9. MySQL基础篇(04):存储过程和视图,用法和特性详解
  10. 案例展示自定义C函数的实现过程
  11. python之文件操作read
  12. ReactJs移动端兼容问题汇总
  13. 【html和css入门】实现简单的页首导航
  14. APP性能测试之GT 测试
  15. Python金融大数据分析——第11章 统计学(2)投资组合优化 笔记
  16. 圆排列公式推导_数学广角早在公元三世纪,我国数学家刘徽为推导圆的面积公式而发明了 爱问知识人...
  17. CentOS7.6腾讯云中域名的备案详细流程
  18. secureCRT免密安装
  19. devise 自定义手机号登录
  20. python安装pillow报错

热门文章

  1. 基于Flink打造实时计算平台为企业赋能
  2. DevExpress winform 更换主题
  3. 空间数据可视化神器,Pydeck!
  4. BeTheme:遵循最新设计趋势的WordPress主题
  5. 【训练题27:单调队列实现RMQ(附带详细说明)】 H :圣诞糖果 | 吉首大学第十届“新星杯”
  6. Windows ❀ AD域服务器的搭建(LDAP协议)
  7. 各版本Eclipse安装WindowBuilder
  8. 【JQuery】学习
  9. 设置微信PC端代理使用burp抓取微信小程序的数据包
  10. Firefox 删除插件