灵犀互娱 24秋招 终端一面

被约了面试,面试官先上来问一下,了不了解终端这个岗位干什么?

回答不了解,被告知具体的大前端的方向,跨端做的比较多。

面试内容:

  1. 是否了解Kotlin协程相关?
  2. 轻量级线程,底层是对语言进行支持保证能做到挂起操作
  3. 可以解决回调地狱的问题
  4. 看项目有使用MVVM架构,谈一谈和MVP的区别
  5. MVVM能解耦,View和ViweModel之间能各自做自己的事情
  6. MVP也能,但是MVP的View和Model之间的数据传输问题太难,都要Presenter进行手动同步,MVVM可以双向绑定
  7. 了解Handler内存泄漏的情况吗?
  8. Handler主要泄漏的原因是内部类持有了外部类的引用,会有外部Activity的引用
  9. 比如延迟发送这种情况
  10. 那Android的内存泄漏有哪些?
  11. 静态引用,匿名内部类持有外部类的引用,单例持有其他对象的引用
  12. 监测Android内存泄漏的方法?
  13. Android studio自带的Profiler工具,可以看到内存使用情况,也可以去排查内存抖动这些问题
  14. 定位内存泄漏,Leakcanary;
  15. Java内存分析MAT,可以做一些内存管理的时候用到
  16. Kotlin现在又一个匿名内部类,会又内存泄露吗?
  17. 在kotlin中,kotlin有一些相关的优化,如果接口回调中不调用的外部类,那么生成的匿名内部类不会持有外部类的引用,也就不会造成内存泄漏。 反之,如果接口回调中调用到外部类,生成的匿名内部类就会持有外部类引用
  18. 实现插件化怎么做到的?
  19. 插件化是将一个apk根据业务功能拆分成不同的子apk,插件化更关注动态加载、热更新
  20. 实现的是动态加载,用到某个模块的时候才去加载它
  21. 对于类的加载classloader
  22. 底层依赖于DexClassLoader,它里面的构造方法入参会有dexPath,optimizedDirectory等参数会指定加载类的地址,于是可以实现指定加载哪些类,进而实现动态加载的能力
  23. 对于资源的加载(这块不是很懂,是下来之后了解的)
  24. 反射调用AssetsManager的addAssetPath方法;
  25. 将外部的apk路径添加进去,构建新的Resource对象
  26. 通过classloader加载R.java获取drawable,对应的id
  27. 通过上述构建的Resource获取drawable对象。
  28. 数据加载这块不是很清楚
  29. 性能优化做了哪些?
  30. 资源方向
  31. 资源压缩
  32. 内存管理,监测泄漏,内存抖动
  33. 性能方向
  34. 懒加载实现提前加载
  35. 热启动方向(不是很了解,当时没怎么做这块)
  36. Android 路由跳转怎么做?
  37. 基础的创建导航图
  38. 然后Negavition跳转的时候入参页面对应的标识符
  39. 只支持fragement和activity这种的跳转,没有涉及到Native层,了解阿里有ARouter这种支持URL解析的框架;

没有算法手撕,然后是反问面试官具体的业务方向,涉及的技术栈有哪些

唉!晚上的淘天笔试做的一塌糊涂,写面经都打不起精神,淘天笔试这个样子预计是要凉凉了,写点面经攒攒人品!

#灵犀互娱##Android面经##许愿offer##灵犀互娱面经##写面经攒人品#
全部评论
淘天笔试a了几道啊大佬
点赞 回复 分享
发布于 2023-08-25 09:52 北京

相关推荐

1. 实习项目介绍2. 学习成绩怎么样,年级排名?3. 为什么大学学习这个开发方向4. 学习时有没有看一些好的教程或博客5. kotlin调用c++的接口怎么调用6. native声明的函数是怎么对应到c++的函数7. 原生和c++间是怎么传递数据的8. java的引用类型传递给c++时内存管理是怎么样的9. c++层怎么调用java的方法10. Compose的数据驱动是怎么实现的11. 除了mutableStateOf还有其他方式可以定义状态吗12. 如果外部有一个状态传递给子控件,并且让子控件可以更改状态,改怎么做13. 除了lambda回调还有什么方式14. Compose背后对应的真正的视图,什么时候会创建什么时候会销毁,它的内存管理是怎么样的15. 一个Compose组件内有个状态,什么情况下这个状态会变为默认值(什么情况下组件会销毁重建)16. 手撕:计算视图数量手撕是原创题,大概内容是:移动端的视图层级结构是树状的,每个节点都是一个视图。每个视图都有一个isVisible 属性,表示该视图是否可见;视图间有父子关系,当父视图不可见时,其所有子视图也不可见。现给定以下结构体,请实现一个函数,计算叶子视图中可见视图的数量与不可见视图的数量:struct View {bool isVisible;View subviews[];}mid水平,如果算上没见过需要15分钟内当面思考和写出来并解释,可算得上是hard两天后约三面
点赞 评论 收藏
分享
评论
6
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务