Android 面试题(重点2)

掘金官网Android面试题

Android 动画

Android 动画
Android面试题

算法和数据结构

设计模式

Java中常用的设计模式
菜鸟教程--Java设计模式

Android项目里用到的设计模式

凯子哥之《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式

直播

从0到1打造直播 App(iOS /Android直播流程介绍整理

FFmpeg

仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑(上)
仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑(下)
何俊林大神

自定义View

自定义View合集
HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础
自定义View大全--值得学习

内存泄漏,内存优化(重点)

性能优化

Android 性能优化

胡凯谈谈Android性能优化方案

多线程,线程池

Android 多线程
Android 多线程下载

Handler Looper Message Messager MessageQueue源码分析

Handler Looper Message Messager MessageQueue源码分析

AsyncTask 源码,为什么 android4.0 以后是串行

AsyncTask 源码

Activity源码

Activity四种启动模式,生命周期

View的绘制流程

Android的绘制流程

EventBus源码分析

从 EventBus 中学到的精华
EventBus--github

Glide ,Picasso 都分别有几个线程池

volley 与 okHttp

数据库 greenDao,realm,litePal 等等性能方面的问题

FFmpeg 相关经验还有做过视频剪切

利用FFmpeg视频录制微信小视频与其压缩处理

Java String 类的底层源码,Hashmap 实现原理

Android 广播 Service 相关的,

ANR

gson 高级用法(比如序列化的时候如何排除某个字段)

android 手势机制用到了什么设计模式(是责任链模式)

内存泄漏和内存溢出

子线程不能更新 view 的机制,

给我印象比较深的是问了 mac 上 pwd 这个命令是干嘛的(我用了这么久mac 确实没有用过这个命令,是显示当前文件全路径的)还有用没用过 Home brew,

Git 相关的命令 pull 跟 fetch

OnMeasure 方法几个参数对应含义

首先我们要理解的是 widthMeasureSpec, heightMeasureSpec 这两个参数是从哪里来的?onMeasure() 函数由包含这个 View 的具体的 ViewGroup 调用,因此值也是从这个ViewGroup 中传入的。这里我直接给出答案:子类 View 的这两个参数,由 ViewGroup 中的 layout_width,layout_height 和 padding 以及 View 自身的 layout_margin 共同决定。权值 weight 也是尤其需要考虑的因素,有它的存在情况可能会稍微复杂点。
了解了这两个参数的来源,还要知道这两个值的作用。我们只取 heightMeasureSpec 作说明。这个值由高 32 位和低 16 位组成,高 32 位保存的值叫 specMode,可以通过如代码中所示的 MeasureSpec.getMode() 获取;低 16 位为 specSize,同样可以由MeasureSpec.getSize() 获取。那么 specMode 和 specSize 的作用有是什么呢?要想知道这一点,我们需要知道代码中的最后一行,所有的 View 的 onMeasure() 的最后一行都会调用 setMeasureDimension() 函数的作用——这个函数调用中传进去的值是 View 最终的视图大小。也就是说 onMeasure() 中之前所作的所有工作都是为了最后这一句话服务的。
我们知道在 ViewGroup 中,给 View 分配的空间大小并不是确定的,有可能随着具体的变化而变化,而这个变化的条件就是传到 specMode 中决定的,specMode 一共有三种可能:
MeasureSpec.EXACTLY:父视图希望子视图的大小应该是 specSize 中指定的。
MeasureSpec.AT_MOST:子视图的大小最多是 specSize 中指定的值,也就是说不建议子视图的大小超过 specSize 中给定的值。
MeasureSpec.UNSPECIFIED:我们可以随意指定视图的大小。)

广播怎么不跨进程

Retrofit源码分析以及用到的设计模式

Android:手把手带你深入剖析 Retrofit 2.0 源码

RxJava 操作符

RxJava官网
RxJava 操作符
RxJava操作符2
ReactiveX文档中文翻译
使用RxJava实现延迟订阅
RxJava变换操作符:.concatMap( )与.flatMap( )的比较
避免打断链式结构:使用.compose( )操作符
RxJavaWiki

RxJava 1和2的区别

轮播怎么让用户按下三秒之后继续翻页

五种进程级别

多线程下载,3个线程如何下载10M的文件

Android 常用的4种线程

两列 RecyclerView 如果是表格布局怎么添加 headerView

Thread 和 intentService

最牛B的一个问题是类似天猫这种大厂APP实现的全局应用代理是怎么实现的

(本意就是类似于推送的时候处理推送的逻辑不写一大堆switch case,而是在入口处动态去配置就可
尺子的效果

你可能感兴趣的:(Android 面试题(重点2))