重大福利提醒:【双11活动】整个11月份阿里云服务器降价了,1核2G1年58元 3年180元。这个价格买到就是赚到。180元就可以让你建站3年,全网找不到这么低的价格了。
活动地址:阿里云双11降价活动(1核2G1M3年180元)只有阿里云新用户才能参与活动。
必读事项:购买阿里云服务器必读事项(省钱有绝招)
如果你不是阿里云新用户,可以找家人,亲戚的账号重新注册为阿里云新用户。一次性买满3年,我和我朋友们都是这么干的,主要是省钱。大家看了我的教程的应该都知道,多台云服务器之间的网站备份,数据迁移很容易,不用担心数据备份和迁移问题。
问题咨询:大家遇到各种问题可以微信咨询,微信号:xzjmyk 先加微信,然后拉你入交流群。
基础篇
Java基础
- 静态内部类和非静态内部类有什么区别
- 谈谈你对java多态的理解+java方法的多态性理解
- java中接口和继承的区别
- 线程池的好处+线程池的优点及其原理+线程池的优点 (重点)
- 为什么不推荐通过Executors直接创建线程池
- 不怕难之BlockingQueue及其实现
- 深入理解ReentrantLock与Condition
- Java多线程:线程间通信之Lock
- Synchronized 关键字原理
- ReentrantLock原理
类加载机制,双亲委托
Android基础
Activity知识点(必问)
- Activity启动过程全解析
- 启动模式以及使用场景
- onSaveInstanceState以及onRestoreInstanceState使用
- onConfigurationChanged使用以及问题解决
Fragment知识点
Service知识点
Handler知识点(必问)
Handler Looper Message 关系是什么?
Messagequeue 的数据结构是什么?为什么要用这个数据结构?
如何在子线程中创建 Handler?
Handler post 方法原理?
Handler消息机制,postDelayed会造成线程阻塞吗?对内存有什么影响?
当访问大量数据出现线程租塞用什么技术解决?
- 你真的懂Handler.postDelayed()的原理吗?
- Android主线程阻塞处理及优化
- Handler延迟消息执行机制,会阻塞吗?
- 深入聊聊Android消息机制中的消息队列的设计
- 深入理解MessageQueue
数据存储
文件和数据库哪个效率高?
UI控件篇
事件分发与嵌套滚动
RecyclerView和ListView的区别(必问)
动态化页面构建方案
电商类的APP使用居多
网络通信篇
架构设计篇
MVP架构设计
组件化架构
业务大了代码多了会用到。
为什么要用组件化?
组件之间如何通信?
组件之间如何跳转?
性能优化篇
【面试重点】性能优化:包括启动优化(主要是冷启动)、内存优化、绘制优化、稳定性优化、安装包体积优化等,优化是面试的重中之重。
你在开发中是如何做性能优化的?
启动优化
内存优化
绘制优化
什么情况下使用 ViewStub、include、merge?
他们的原理是什么?
安装包优化
稳定性优化
源码流程篇
开源库源码分析
RxJava的实现原理,它是如何实现线程的控制?
Retrofit的框架结构是什么?底层是怎么实现的?
网络框架是如何搭建?okhttp的底层实现是什么,和Retrofit有什么不同?
图片加载框架gilde、Picasso、fresco有什么不同,各自的实现原理是什么?如何搭建一个网络框架?
Glide源码分析
【面试题】
Glide的优点有哪些?
Glide的缓存原理是什么?
Glide的优点主要包括:
- 多种图片格式的缓存,适用于更多的内容表现形式(如Gif、WebP、缩略图、Video)
- 生命周期集成(根据Activity或者Fragment的生命周期管理图片加载请求)Glide可以感知调用页面的生命周期,这就是优势
- 高效处理Bitmap(bitmap的复用和主动回收,减少系统回收压力)
- 高效的缓存策略,灵活(Picasso只会缓存原始尺寸的图片,Glide缓存的是多种规格),加载速度快且内存开销小(默认Bitmap格式的不同,使得内存开销是Picasso的一半)
LeakCanary源码分析
OkHttp源码分析
【面试问题】
如何使用OkHttp进行异步网络请求,并根据请求结果刷新UI?
可否介绍一下OkHttp的整个异步请求流程?
OkHttp对于网络请求都有哪些优化,如何实现的?
OkHttp框架中都用到了哪些设计模式?
- OkHttp源码解析
- Okhttp面试简答
- okhttp面试题—-拦截器interceptor
- Okhttp3 总结研究 (面试)
- okhttp连接池复用机制
- okhttp 流程和优化的实现
- 一篇让你受用的okhttp分析
- OkHttp面试之–OkHttp的整个异步请求流程
- OkHttp面试之–HttpEngine中的sendRequest方法详解
- OkHttp解析大总结
- Okhttp任务队列工作原理
- Android高频面试专题 – 架构篇(二)okhttp面试必知必会
- Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
Retrofit源码分析
RxJava源码分析
理解源码之前需要先了解一些RXJava基本知识
RxJava原理与源码分析
RxJava如何进行线程切换的?
Rxjava内存泄漏防止方案——RxLifecycle,AutoDispose,RxLife框架
- Android 使用RxLifecycle解决RxJava内存泄漏
- 解决RxJava内存泄漏(前篇):RxLifecycle详解及原理分析 理解过滤操作符之takeUntil操作符的使用
- RxLifecycle详细解析
- 使用Rxjava2导致的内存泄露问题
- Rxjava解除订阅②:AutoDispose
Tinker源码分析
ARouter源码分析
路由框架原理:ARouter 【官方文档】
【ARouter:现在模块化(组件化)算是比较常见的开发模式了,尤其是在大厂,所以有必要知道ARouter的实现原理,2个模块之间是怎样实现的页面跳转,以及ARouter为了优化性能做了哪些工作】
核心要点:将Route注解中的path地址和Activity.class文件的映射关系保存到它自己生成的java文件的map中
隐式跳转方案,但是一个项目中不可能所有的跳转都是隐式的,这样Manifest文件会有很多过滤配置,而且非常不利于后期维护。
反射跳转方案:需要拿到Activity的类文件,在组件开发的时候,想拿到其他module的类文件是很麻烦的,因为组件开发的时候组件module之间是没有相互引用的,你只能通过找到类的路径去反射拿到这个class。大量的使用反射跳转对性能会有影响。
APT是Annotation Processing Tool的简称,即注解处理工具。apt是在编译期对代码中指定的注解进行解析,然后做一些其他处理(如通过javapoet生成新的Java文件
- ARouter原理剖析及手动实现
- ARouter组件化框架原理分析 其实ARouter没有用到隐式调转,也没有用到反射技术。而是按需加载路由表类把路由映射关系保存在内存中。
- Android之ARouter使用和原理解析
- 手动实现一个路由框架EasyRouter 仿照ARouter来实现一个简易版的路由框架,实现了组件之间的路由跳转。省略了拦截器等功能
- Arouter核心思路和源码详解
- ARouter源码分析(四)—— 缓存与优化
- 我所理解的Android组件化之通信机制
- ARouter系列三:依赖注入暴露服务
- ARouter系列一:Activity跳转原理详解
Android框架层源码解析
Java层源码解析
HashMap底层实现,它和LinkHashMap有什么区别?
算法设计
新技术篇
实战问题篇
面试笔记篇
面试文档
- AndroidGuide 这是一份 Android 开发从基础入门到进阶的完整(并不是)指南,所有文章都是本人这几年时间里一字一字码出来的,文章的更新方向和更新频率以我的学习计划为导向,会一直持续密集更新下去…..
- LearningNotes
面试文献收藏
- Android 高级开发面试题以及答案整理
- Android 中高级面试必知必会
- Android 高级面试高频知识点
- Android面试重难点高频问题
- Android面试题集
- 通过三轮面试斩获腾讯offer的Android菜鸟亲述:末流渣本原来也有“春天”
个人面试经验
- 我跳槽了!2020年Android找工作面试,你必须提前知道的一些事
- 2018已经很冷,2019年Android工作或更难找——面试基础技能罗列
- 2017年Android面试体验之我一个周面了20多次
社区网站篇
原创文章,作者:admin,如若转载,请注明出处:http://tencent.yundashi168.com/659.html