从年初到现在公司一直在招人,面试也有几十个人。这篇文章总结下我面试一般会问的问题。
一般我会提前拿到简历,会根据简历的整理出对应的问题,如果能下载到对应开发的 APP,会下载过来,且试用一段时间,有时候会反编译看一下。
非技术问题
这块一般是考察面试者的沟通能力,稳定性,全面性。
-
在公司除了完成业务需求还会做什么?
会负责项目优化,内存优化,技术调研,参与设计产品讨论等 -
如何进行项目优化,内存优化,最近做的一个 APP 多大,一般占用多少内存?问题根据前面的回答提出。
利于各种工具优化,这里的回答大部分都不一样,很多人连最近的 APP 有多少兆大小,内存通常占用多少都不知道,如果不知道这些怎么优化?又如何知道优化了?优化都是有对比的,数据说话 -
平常怎么打包,会有自动化打包吗?
这个有的人用过,有的没用过,用过的一般会问怎么搭建,讲一下这个流程(我是用的 Jenkins) -
代码管理?
一般 git 居多,常用命令,分支管理,rebase、merge 区别 -
日常提高开发、工作效率的方法/工具
抓包,debug,Android Studio自带的一些工具,番茄工作法,开发前先设计好(很多人开发的时候都是直接敲代码或者画 UI)等
这块暂时想到了这些,后面想到了再补充。
技术问题
我主要是面这个,因为其他方面一般 HR 和后面第二轮技术面试会主要考察,我还是需要看一下专业技术怎么样的,一般Java、Kotlin、Android、设计模式、思想,架构设计上都会问一些。
-
聊一聊集合
常用集合的数据结构,优缺点,然后会拿出一个具体的集合类聊一下原理 -
线程
一般问了集合就不问线程了,两个挑一个问,多线程,线程状态,线程安全,锁... -
聊一聊 Android 的一些坑,设计不足的地方
版本适配,WebView,厂商适配,推送,地图等等,主要可以看出一个人的经验,和解决问题的能力 -
组件化/模块化的思路
这个一般很多人的答的出来,但我会举一些实际列子,比如 支付模块 你如何去设计这模块 -
聊一聊 Kotlin
目前我们项目是采用 Kotlin 开发,如果面试者有 Kotlin 经验会聊多一点,为什么使用 Kotlin,异常机制,Kotlin 做架构设计有什么好处,包括一些基础的关键字用法 let,by lazy...一般随意拿出一两个问一下 -
聊一聊设计模式
常用设计模式,根据简历写的随便找一个第三方 SDK,聊一聊这个 SDK 采用到了什么设计模式,或者核心的设计模式 -
OOP,AOP等思想
越是基础的越重要,思想好,写的代码效率好,质量高,易维护 -
MVP,MVC,MVVM架构模式(根据简历问)
架构模式带来的好处,分这几层各自负责什么,举一个实例说明。比如登录功能如何设计
以下的问题大部分会对应聘初中级提出
-
不用第三方,写一个网络请求,核心类,注意点,断点下载如何实现?
URLConnection
或HttpURLConnection
,RandomAccessFile
相关知识点自行百度 -
activity的启动模式有哪些?是什么含义?
-
activity在屏幕旋转时的生命周期?
-
Handler 机制
-
Activity 启动过程,设计到哪几个核心类
-
APP 启动过程
-
自定义控件
-
事件分发
-
国际化,如果做过需要注意什么,各版本差异
-
基础算法快速排序,冒泡等
-
单元测试,自动化测试了解过吗?
-
精度丢失遇到过吗?如何避免
小结
一般面试都会根据简历来的,以上是目前能想到之前问过的问题,应该还有不少遗漏。后面慢慢补充。
广告
我司还正在火热招人包含但不限于 Android,另外有Go,Java,iOS,产品,测试等在招聘,可内推欢迎来稿~
网友评论