【internship life】小米android面经
2017-09-06 17:04
155 查看
2017/7/10日入职,到现在,在小米实习了将近两个月,这两个月总体来说还是挺愉快的,导师特别负责任,教给我很多东西,比起在学校自己学习,在这里实习收获很多。小组的成员也都对我好好,也体验了五彩城附近几乎所有的好吃的,哈哈哈哈哈哈哈,感觉自己月底回学校都可能无法适应。前几天提出能不能转正,这两天开始面试,把面试的问题总结下来。感觉这个面试比较注重应用,好多我都没有接触到,也和实习的小组的项目有点联系。最后,希望自己好运,可以转正。
一面(不按顺序,记得的就这么多了)
jpg、png、webp 区别和转换
有损压缩和无损压缩
有损(不可逆,损失部分图片的信息,按照一定的算法将临近的像素点进行合并)
索引色和直接色
索引:256种,用一个字节的数字来索引一种颜色。
直接:四个数字表示,红绿蓝以及透明度。
点阵图和矢量图
点阵图:位图,像素图。缩放会失真
矢量图:也叫向量图。缩放不失真。并不记录画面上每一点的信息,而是记录了元素形状及颜色的算法,当打开的时候,软件对图像对应的函数进行计算,将运算结果显示出来。
BMP:
是无损的、及支持索引色也支持直接色的点阵图。较大。
jpg:
有损的采用直接色的点阵图。
png-8
无损的,使用索引色的点阵图。具有更小的体积,支持透明度的调节。
png-24
无损的,使用直接色的点阵图。体积较大,支持透明度的调节。
webp
支持有损和无损、使用直接色的点阵图。体积更小,支持透明度的调节。
在无损压缩的情况下,相同质量的WebP图片,文件大小要比PNG小26%;
在有损压缩的情况下,具有相同图片精度的WebP图片,文件大小要比JPEG小25%~34%;
WebP图片格式支持图片透明度,一个无损压缩的WebP图片,如果要支持透明度只需要22%的格外文件大小。
sharedpreferences 的 apply/commit 方法区别? ANR
由于在一个进程中,sharedpreferences时单示例,一半不会出现并发冲突,如果对提交的结果不关系的话,可以使用
git merge / git cherry-pick提交到一个分支之后,提交到另一个分支
A ———> B (将A分支merge到B分支)
git checkout A
git pull
git checkout B
git merge A
(提交到一个分支之后,提交到另一个分支)
git checkout 另一个分支
git cherry-pick
打包流程、优化(减小包大小)、lint、混淆原因
listview/recyclerview 显示不同样式的item
ListView:重写
RecyclerView:重写
dex 怎么能让方法不被65535限制
Activity、DecorView、Window
自定义view混淆后,构造方法会少吗
自定义view默认不会被混淆
三个构造方法
public View (Context context)是在java代码创建视图的时候被调用,如 果是从xml填充的视图,就不会调用这个
public View (Context context, AttributeSet attrs)这个是在xml创建但是没有指定style的时候被调用
public View (Context context, AttributeSet attrs, int defStyle)给View提供一个基本的style,如果我们没有对View设置某些属性,就使用这个style中的属性
EventBus和handler有什么区别
EventBus注册两次有什么后果
注册一般是在
EventBusException: Subscriber class already registered to event class
可以先判断:
取消注册要写到
不要盲目相信官方文档,官方文档写的是在
内存泄漏分析方式
MAT、android Monitor等工具
anr处理
滑动冲突(两种,父子)
不同应用的contentprovider的authority可以一样吗 (不可以)
给一个界面,让写xml
二面
聊人生,为什么学android
android7.0新特性,权限
mvc/mvp
recycler/listview区别、优化 viewholder是什么
一个viewholder描述一个条目视图和元数据对应在recyclerview的地方。
实习期间都做了什么,有什么感受,有什么收获
对公司有什么建议、对研发有什么建议、对研发方式有什么建议
说说测试给你提的bug,以及解决方法
一面(不按顺序,记得的就这么多了)
jpg、png、webp 区别和转换
有损压缩和无损压缩
有损(不可逆,损失部分图片的信息,按照一定的算法将临近的像素点进行合并)
索引色和直接色
索引:256种,用一个字节的数字来索引一种颜色。
直接:四个数字表示,红绿蓝以及透明度。
点阵图和矢量图
点阵图:位图,像素图。缩放会失真
矢量图:也叫向量图。缩放不失真。并不记录画面上每一点的信息,而是记录了元素形状及颜色的算法,当打开的时候,软件对图像对应的函数进行计算,将运算结果显示出来。
BMP:
是无损的、及支持索引色也支持直接色的点阵图。较大。
jpg:
有损的采用直接色的点阵图。
png-8
无损的,使用索引色的点阵图。具有更小的体积,支持透明度的调节。
png-24
无损的,使用直接色的点阵图。体积较大,支持透明度的调节。
webp
支持有损和无损、使用直接色的点阵图。体积更小,支持透明度的调节。
在无损压缩的情况下,相同质量的WebP图片,文件大小要比PNG小26%;
在有损压缩的情况下,具有相同图片精度的WebP图片,文件大小要比JPEG小25%~34%;
WebP图片格式支持图片透明度,一个无损压缩的WebP图片,如果要支持透明度只需要22%的格外文件大小。
sharedpreferences 的 apply/commit 方法区别? ANR
apply()没有返回值而
commit()返回
boolean表明修改是否提交成功。
apply()是将修改数据院子操作提交到内存,而后异步真正提交到硬盘,而多个并发的提交
commit()的时候,他们会等待正在处理的
commit()保存到磁盘后再操作,从而降低了效率。apply()效率高一些。
apply()方法不会提示任何失败的信息。
由于在一个进程中,sharedpreferences时单示例,一半不会出现并发冲突,如果对提交的结果不关系的话,可以使用
apply(),如果需要确保提交成功而且有后续操作的话,还是需要使用
commit()的。
git merge / git cherry-pick提交到一个分支之后,提交到另一个分支
A ———> B (将A分支merge到B分支)
git checkout A
git pull
git checkout B
git merge A
(提交到一个分支之后,提交到另一个分支)
git checkout 另一个分支
git cherry-pick
打包流程、优化(减小包大小)、lint、混淆原因
listview/recyclerview 显示不同样式的item
ListView:重写
getItemViewType()、
getViewTypeCount()。
getView()的时候,根据类型加载。
RecyclerView:重写
onCreateViewHolder()、
onBindViewHolder()、
getItemViewType()。根据类型自定义viewholder。
dex 怎么能让方法不被65535限制
Activity、DecorView、Window
自定义view混淆后,构造方法会少吗
自定义view默认不会被混淆
三个构造方法
public View (Context context)是在java代码创建视图的时候被调用,如 果是从xml填充的视图,就不会调用这个
public View (Context context, AttributeSet attrs)这个是在xml创建但是没有指定style的时候被调用
public View (Context context, AttributeSet attrs, int defStyle)给View提供一个基本的style,如果我们没有对View设置某些属性,就使用这个style中的属性
EventBus和handler有什么区别
EventBus注册两次有什么后果
注册一般是在
onCreate和
onStart里注册,尽量不要在
onResume,可能出现多次注册的情况。
EventBusException: Subscriber class already registered to event class
可以先判断:
if (!EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().register(this); }
取消注册要写到
onDestroy,不要写到
onStop里。
不要盲目相信官方文档,官方文档写的是在
onStart()和
onStop()里面注册和取消注册。但是实际使用中,Activity的这两个生命周期可能会因为各种跳转而执行多次,所以不太适合做这样的事情。
内存泄漏分析方式
MAT、android Monitor等工具
anr处理
滑动冲突(两种,父子)
不同应用的contentprovider的authority可以一样吗 (不可以)
给一个界面,让写xml
二面
聊人生,为什么学android
android7.0新特性,权限
mvc/mvp
recycler/listview区别、优化 viewholder是什么
一个viewholder描述一个条目视图和元数据对应在recyclerview的地方。
实习期间都做了什么,有什么感受,有什么收获
对公司有什么建议、对研发有什么建议、对研发方式有什么建议
说说测试给你提的bug,以及解决方法
相关文章推荐
- [置顶] 一年Android工作经验,阿里 百度 网易 美团 小米 快手面经
- 一年Android工作经验,阿里 百度 网易 美团 小米 快手面经
- 一年Android工作经验,阿里 百度 网易 美团 小米 快手面经
- 某人一年Android工作经验,一举拿下百度、网易、美团、小米、快手等Offer面经
- Android 面经
- Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒
- 2018 Android面经分享(京东,百度,陌陌,58到家等知名公司)
- 《4399、小米、UC、百度面经》
- 可能是第十好的Android 开源 日历 Calendar 仿小米
- Android面经总结
- 为Android加入busybox工具之小米(开发版本)
- Java面经:小米暑期实习+秋招真题分享
- Android集成“小米消息推送”详细教程
- Android填坑系列:在小米系列等机型上放开定位权限后的定位请求弹框
- Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒
- android高仿小米时钟(使用Camera和Matrix实现3D效果)
- android 仿小米icon处理,加阴影和边框
- android如何在小米调试中,更改应用程序图标
- android 通过广播来弹出dialog(在小米上会一闪而过的原因)
- android 调用系统相机,预置路径,解决小米等机型uri返回为null的问题