周二约的面试,周六下午面试(难道是大小周吗?),周五发的邮件;
面试官是一位女性,很礼貌可爱,但是会经常忽略我的回答,打断后,直接进行下一个问题,我讲话的时候她会和别人讲话或者看手机
使用的是赛码网,很卡顿,个人面试前网络监测都没问题,不清楚是系统问题还是其他原因。
整体面试体验下来感觉有点KPI,问题都有回答上来,也会给她拓展,引导她问一些问题(都被人家忽略了),算法A出来比较简单。
但是不妨碍面完秒挂,算是秋招第一次面试被挂了(希望是最后一次)
面试内容:
- 有看到你在大疆里面做和硬件层的适配,可以详细讲讲吗?
- 面对的不同的厂商,可能用的不一定是Android系统或者用的是很老的版本,会经常调用一些系统的设备接口没有Google的系统方法,需要自己去对JNI层的方法修改
- 比例自己在做语音助手接入SDK调用麦克风的时候有去做这类工作
- 做系统App和应用App区别?
- 对底层的调用不同,适配的方向也不一样
- 做腾讯项目时候的打包需要注意什么?
- 基本和普通的App打包没啥区别,有需要注意的就是会用插件化的功能,看需求选择打包内容;
- 项目中换肤和多语言如何实现?
- 资源的选择加载实现
- 现在有新的框架实现动态加载,可以不用重新oncreat()。
- 如果让你实现特色主题皮肤怎么实现?
- 创建主题文件
- 定义主题的对应属性
- 布局文件里面实现
- 调用setTheme()方法实现,重新recreat();
- Java和Kotlin使用区别,优缺点
- kotlin优点:
- 拓展性强,有拓展函数,给类添加方法
- 有可空类型,避免空指针问题
- 有lambda表达式这些函数编程
- 有协程!(可惜她不问协程)
- 缺点:
- Java和Kotlin适配问题,Kotlin 和 Java 混用时,需要处理两种不同的空安全机制
- kotlin适配老的Android8,9问题
- kotlin 加载编译时间长一点
- 有做内存优化的事情,怎么去做?
- 资源管理方向的优化,和一些数据处理的优化
- 资源管理,Bitmap的管理,图片压缩Webp,控制view的数量;
- 数据处理方向,对内存泄漏处理,控制缓存策略和释放一些不需要的资源等等
- 有说到内存泄漏处理,用什么工具?
- Android Studio自带的Memory Profiler,LeakCanary,MAT等等(我就等着被问如何使用的,结果没了)
- Android热更新怎么去做?
- 通过插件化的功能实现,不用每一次去加载所有的包,只编译修改过的那一部分
算法题:
给定(),{},[],判断是否对应匹配,leetcode的原题
用栈,左括号都压栈,遇到右括号就出栈判断,A出来了
#小红书##小红书面经##Android面经##下头面试#