Skip to content

Latest commit

 

History

History
127 lines (87 loc) · 7.27 KB

interview.md

File metadata and controls

127 lines (87 loc) · 7.27 KB

TODO

要想提升,你会发现该学的东西一样也少不了在哪里等着你...

Groovy & Gradle

Groovy 脚本基础全攻略
Groovy 教程
Gradle 教程
Gradle 教程
Gradle 用户指南官方文档中文版

Gradle 爬坑指南 -- 导论

Python

Kotlin 相关

JetPack 相关

组件化

个人认为,组件化现在被过度使用了,体量不大的项目、成员不多的开发组,其实没必要一定要组件化的。相对面试来说的,如果不是大厂、大项目,去考察你的组件化真的就是为了面试而面试了。
针对功能模块解耦,感觉仅仅模块化就足够了。
不过人家面试人家说了算,该学还是学学,也没多少东西。

组件化实践
方案:JIMU
Demo: DDComponentForAndroid
1. Android 彻底组件化方案实践
2. Android 彻底组件化 demo 发布
3. Android 彻底组件化 — 代码和资源隔离
4. Android 彻底组件化 —UI 跳转升级改造
5. Android 彻底组件化 — 如何使用 Arouter

优化

音视频

对应下面 3 个项目
GPUImage
AudioVideoRecordingSample
Grafika

动画

知识点概念

问题点

  • LocalBroadcast 跨进程通知(同一个应用,不同的进程)
  • 一个 Activity 多个 Handler 时,Message 消息是否会混乱?
  • LiveData 数据倒灌原因,解决方案

设计模式

项目问题

崩溃率

  • 接口返回的数据格式不可控造成的问题
  • 内存溢出造成的问题,低端、内存较小的机型容易崩溃
  • 页面问题,RecyclerView 为了不解决复用问题,禁用了复用,导致线上列表数据很多时,页面崩溃(组员)
  • 机型兼容问题,vivo 某些低端机型 不兼容 svg ,当加载不规范的 svg 时会有问题。使用云真机去做测试。

难点

  • handler 的消息队列里的数据处理正常是很快的,但是如果存在耗时的处理,会导致不能及时处理队列中的消息,这个时候可以把消息队列中的数据都打印出来。在你想开始打印的地方增加 Looper.getMainLooper().setMessageLogging(new LogPrinter(4, "xuwenping"));,这样,log 里就会出现 I/xuwenping: <<<<< Finished to Handler (android.view.ViewRootImpl$ViewRootHandler) {672b748} null 的类似 log
  • LiveData 数据倒灌问题,一个列表,点击 A 看详情,再点击 B 看详情,解决 LiveData 置空 | 使用 id 标识数据(返回的数据格式内的 id 和 请求 id 比对)。
  • kotlin 和 Java 兼容问题,最常见的就是 空 安全的问题。
  • vector 问题,动态设置颜色渲染,会使所有使用的地方变色。解决:复制一份 svg 图标。
  • textView 的 inputType 问题。
  • 过期跳转登录问题,清空栈。(clear task | new task)
  • application 缓存数据的问题,退出后台,当系统内存不足的时候会回收app,再恢复时全新app并启动退出时的Activity页面。
  • 目前未解决的问题:RecyclerView 内使用 fragment。

框架

  • EventBus 原理 关键字:反射、注册时保存类名,并反射保存注解监听方法、线程切换,主线程用Handle,其他用线程池
  • ButterKnife 原理 关键字:apt、编译生成对应文件,bind()时对应
  • Glide 原理 关键字:空界面fragment监听生命周期、三级缓存
  • okhttp 原理 关键字:责任链、线程池、缓存、gzip、不是采用httpurlConnention,而是Socket
  • ARouter 原理 关键字:apt,注解内字符串 Map 对应 class 类名
  • Retrofit 原理 关键字:动态代理
  • RxJava 2.0 使用 关键字:函数响应式编程;代替品:EventBus、Handle、Kotlin 协程、Kotlin Flow

面试历程

  • 同步屏障