| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 网易云音乐客户端一面总结 -> 正文阅读 |
|
[移动开发]网易云音乐客户端一面总结 |
1、有一个线程池,核心线程数5个,最大线程数10个,阻塞队列最大存放10个数据,如何快速加载完100张bitmap 2、一个函数里面有个异步调用,异步调用有返回值,如何使这个函数变成同步的,返回异步执行的返回值 3、Android里面的Drawable用过吗,说说系统常见有哪些drawable,然后问了Drawable里面的callback、mutate函数的作用 4、现在有一个纵向的RecyclerView,里面的item是一个横向的RecyclerView,请问如何优化提高RecyclerView的性能(我回答了共用缓存池,重写getItemId,面试官提示我可以从绘制方面入手,如何减少绘制) 5、sp是进程不安全的,如何保证进程安全(我回答的contentprovider),那如何跨进程监听到sp的改变呢(没有回答上来) 6、jetpack组件用过吗,说说livedata如何实现生命周期的监听的,就是在activity不在前台为啥就不会通知到数据改变,等到到了前台才通知呢(我不太清楚这边,jetpack还没怎么学) 7、事件分发中,有哪些会发送cancel事件(我回答触发父容器的拦截条件时会发送,其他的我不太知道) 8、glide源码有看过吗,怎么复用里面的bitmap的(这边复用缓存我不太清楚,有些问题我没明白,所以没抓到问的点) 9、networkInterceptor和普通的用户自定义的拦截器区别在哪里(我回答的是network拦截器是在获取到网络数据时使用的,这时候的数据是完全服务端返回的,可以在这里监听分析网络的状态之类的,面试官说还有就是重定向的时候,这个拦截器会执行两次,普通的只会执行一次) 这边我还说了普通拦截器可以额外统一处理添加请求头之类的,network拦截器这边不好加,其实我想表达的是network拦截器这边不太好加,因为到这里已经拼接成完整报文了,面试官就反驳说这边也可以加的,当时被前面的问题搞懵了,没表达清楚 10、http2.0与1.1的区别(我回答的是2.0可以多路复用,而且是基于流传输的,而且可以几个请求同时进行) 11、如果我现在在电梯里面,怎么进行弱网下的网络请求优化呢(我先回答的是通过android api获取到当前网络状态,然后发给服务端,服务端根据参数返回不同数据,我这边虎了虎了,这是解决图片在弱网下的一个方法,和这个题目不搭嘎,面试官说如果数据不减少呢,就是这么多,我回答不上来) 12、讲一讲dns优化呢(我回答的是httpdns,说了dns解析的话可能会被运营商劫持,而且可能会运用网速很慢的ip进行解析,httpdns是直接用ip请求的,而且会返回优质ip。 面试官问还有别的吗,超出我的知识范围了,有其他大厂应该也做了类似httpdns的东西) 13、如何进行冷启动优化的呢(我回答,有adbshell命令可以统计app启动速度,在androidstudio里面有工具可以抓取app启动所执行的操作,查看火焰图、topdown那些图可以找到耗时函数,然后做对应优化,我尝试过把三方sdk放到子线程或者延迟初始化,然后根据layout inspector工具减少布局的嵌套之类的,然后看看有没有过度绘制什么的, 面试官说这些都是常规优化,还有别的吗,好吧,超出知识范围) 14、kotlin reified关键字讲一讲(我回答我只是运用了基础的kotlin语法开发过,这个不清楚) 15、一个按钮我点击了,这个view如何第一时间刷新重绘的呢(我回答的是,如果是surfaceview主动调用刷新会立即重新刷新,但是普通的不会的啊,它只会订阅下一帧,等下一帧到来的时候才会重绘) 16、canvas与surface的区别(我回答canvas继承自surface,然后最终是通过surfaceflinger进行绘制的,其他不是很清楚) 17、时间差不多了,你有什么想问的吗(我虽然基本没答上来,但是还是厚着脸皮问了:我想问下,万一有幸能进入网易的话,我想问问项目中大概用到了哪些技术,我去学习或者复习下。 面试官回答我:kotlin要好好学下,flutter也学下,我们这边是以绘制view为主,用mvvm和jetpack全家桶的,因为的确好用,也要学下。因为我还说了这次好难,我太菜了,面试官还安慰不要灰心,上面很多问的是细节,好好加油) 还有几个问题,我压根就没理解,也忘记是什么了,面试下来总结,面试官很好很耐心的,我自己太菜,很多知识没有学到家,不过这次面试经历会鞭励我,我会变的更加强大的,嘿嘿嘿。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:44:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |