Android面试知识点复习,那些不为人知的秘密
一,常见考点:
1. Android四大组件:
Activity / Service / BroadCast Recevicer / Content provider
● Service : https://www.jianshu.com/p/4c798c91a613
● IntentService https://www.jianshu.com/p/be97093783d6 或 https://www.cnblogs.com/it-tsz/p/11601265.html
2.Binder,AIDL
https://www.jianshu.com/p/429a1ff3560c
3.动画
帧动画,view动画(视图动画),属性动画,其他自定义动画
https://www.jianshu.com/p/16e0d4e92bb2
4.Handler
● Handler 如何防止内存泄漏?
答:除了写弱引用这个方法后,还有一个就是 handler.removeCallbacksAndMessages(null);,就是移除所有的消息和回调,简单一句话就是清空了消息队列。注意,不要以为你 post 的是 个 Runnable 或者只是 sendEmptyMessage。你可以看一下源码,在 handler 里面都是会把 这些转成正统的 Message,放入消息队列里面,所以清空队列就意味着这个 Handler 直接被 打成原型了,当然也就可以回收了。
● Android面试:主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
https://www.jianshu.com/p/cfe50b8b0a41
● Handler机制
https://blog.csdn.net/ttxs99989/article/details/81814037
https://www.jianshu.com/p/592fb6bb69fa
https://www.jianshu.com/p/ba46bad5af67
5.网络编程 HTTP、TCP和Socket,HTTPS
● HTTP、TCP和Socket的概念和原理及其区别
https://www.jianshu.com/p/947a2673102a
● HTTPS 原理浅析及其在 Android 中的使用
https://zhuanlan.zhihu.com/p/27040041
● 对称加密 非对称加密总结
https://www.jianshu.com/p/b078282653b3
● TCP可靠性的保证机制总结
https://blog.csdn.net/xuzhangze/article/details/80490362
● Http 1.0 和 Http 2.0 区别?
6.Android事件分发机制完全解析,带你从源码的角度彻底理解
Android事件分发机制完全解析,带你从源码的角度彻底理解(上):https://blog.csdn.net/guolin_blog/article/details/9097463
Android事件分发机制完全解析,带你从源码的角度彻底理解(下):https://blog.csdn.net/guolin_blog/article/details/9153747
7. Android版本适配
● 关于Android 10.0适配,看这篇就够了
https://blog.csdn.net/weixin_40611659/article/details/95174124
● Android Q(10.0)版本新特性和兼容性适配
https://blog.csdn.net/weitao_666/article/details/89373615?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
总结:
6.0 :运行时权限
7.0 :文件存储
8.0 :通知
9.0 :网络安全,均采用HTTPS
10.0 :禁止Activity后台启动
8.Android各种ANR的时间
在ActivityManagerService中进行了定义 1. Service Timeout(服务):// How long we wait for a service to finish executing.static final int SERVICE_TIMEOUT = 20*1000; // 前台 20s// How long we wait for a service to finish executing.static final int SERVICE_BACKGROUND_TIMEOUT = SERVICE_TIMEOUT * 10; // 后台200s2. broadcast Timeout(广播):// How long we allow a receiver to run before giving up on it.static final int BROADCAST_FG_TIMEOUT = 10*1000; // 前台static final int BROADCAST_BG_TIMEOUT = 60*1000; // 后台3. InputDispatching Timeout(按键无响应的超时时间):// How long we wait until we timeout on key dispatching. static final int KEY_DISPATCHING_TIMEOUT = 5*1000; // How long we wait until we timeout on key dispatching during instrumentation. static final int INSTRUMENTATION_KEY_DISPATCHING_TIMEOUT = 60*1000;
4.ContentProvider Timeout:// How long we wait for an attached process to publish its content providers// before we decide it must be hung.static final int CONTENT_PROVIDER_PUBLISH_TIMEOUT = 10*1000;
9.Activity启动过程
Activity启动过程分析:https://www.jianshu.com/p/13b07beacb1f
Android的Activity启动流程分析:https://blog.csdn.net/u012267215/article/details/91406211
App启动——Activity的启动流程:https://www.jianshu.com/p/3b6589101931
10.Android混淆,反编译
官方:https://www.guardsquare.com/en/products/proguard/manual/introduction
Android安全攻防战,反编译与混淆技术完全解析(上):https://blog.csdn.net/guolin_blog/article/details/49738023
Android安全攻防战,反编译与混淆技术完全解析(下):https://blog.csdn.net/guolin_blog/article/details/50451259
Android混淆: https://www.jianshu.com/p/b5b2a5dfaaf4
AndResGuard(资源混淆):https://github.com/shwenzhang/AndResGuard
Android 代码混淆 混淆方案:https://www.jianshu.com/p/e9d3c57ab92f?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=qq
11.APK 安装包瘦身
Android性能优化系列之apk瘦身:https://blog.csdn.net/u012124438/article/details/54958757
Android性能优化之APK瘦身详解(瘦身73%):https://blog.csdn.net/qq_32175491/article/details/80071987
12.Android组件化,模块化,动态路由,动态化
组件化,模块化:
组件化框架简介:https://www.jianshu.com/p/40e745038471
从零开始搭建Android组件化框架:https://www.jianshu.com/p/ba32488f9555
DDComponentForAndroid: https://github.com/luojilab/DDComponentForAndroid
Android组件化框架搭建(鸿洋授权):https://www.jianshu.com/p/00746e6fb48a
Android 组件化 / 模块化 开发(一):https://www.jianshu.com/p/748bf621a9a0
Android 组件化 / 模块化 开发(二):https://www.jianshu.com/p/bfd5afed498f
动态路由:
Router(路由):https://github.com/alibaba/ARouter 或 https://github.com/chenenyu/Router
动态路由的架构设计:https://www.jianshu.com/p/cc55ce2b3ff4
动态化:
Android动态化框架App Bundles:https://www.jianshu.com/p/57cccc680bb6
Android动态化方案:https://blog.csdn.net/prance90/article/details/80785145
13.Android插件化
360插件化官方:https://dc.360.cn/doc/replugin
RePlugin:https://github.com/Qihoo360/RePlugin
RePlugin 插件化框架介绍与使用说明:https://www.jianshu.com/p/185e36ac44a3
Replugin 全面解析(1): https://www.jianshu.com/p/5994c2db1557
Replugin 全面解析(2): https://www.jianshu.com/p/74a70dd6adc9
Replugin 全面解析(3): https://www.jianshu.com/p/8465585b3507
Replugin 全面解析(4): https://www.jianshu.com/p/f456f608aa92
Replugin 全面解析(5): https://www.jianshu.com/p/fb9d40f4173c
Android9.0和10.0插件化原理实现:https://www.jianshu.com/p/ab97cb4392b4
14.Android热修复技术原理详解(最新最全版本)
热修复:https://www.cnblogs.com/popfisher/p/8543973.html
Android学习——手把手教你实现Android热修复:https://blog.csdn.net/u013132758/article/details/80954639
● Tinker
官方:http://www.tinkerpatch.com/
Tinker学习之旅 :https://www.jianshu.com/p/9a107ee09006
Tinker-使用教程与原理分析:
https://www.jianshu.com/p/d649fc014919 (上)https://www.jianshu.com/p/9ec68cf21873(下)
15.Android架构,MVC,MVP,MVVM,MVI
Android最佳架构:MVI+LiveData+ViewModel | ProAndroidDev:https://zhuanlan.zhihu.com/p/12908547
18.Android保活
Android最强保活黑科技的最强技术实现:https://www.jianshu.com/p/f75d4fa71686
19.性能优化,内存优化,OOM,UI 卡顿
BlockCanary(ui卡顿检测):https://github.com/markzhai/AndroidPerformanceMonitor
中文文档:https://github.com/markzhai/AndroidPerformanceMonitor/blob/master/README_CN.md
BlockCanary 核心原理分析:https://blog.csdn.net/houdada_/article/details/106973216
BlockCanary — 轻松找出Android App界面卡顿元凶:http://blog.zhaiyifan.cn/2016/01/16/BlockCanaryTransparentPerformanceMonitor/
你真的了解BlockCanary了吗?让我带你走进源码,深入了解BlockCanary的实现原理与使用:https://blog.csdn.net/wk_beicai/article/details/104609745
LeakCanary(内存泄漏检测):https://github.com/square/leakcanary
Android 性能监测工具,优化内存、卡顿、耗电、APK的方法:https://blog.csdn.net/haoxuhong/article/details/80599176
20.Glide源码分析:
Glide 3.0+:https://blog.csdn.net/guolin_blog/article/details/53939176
Glide 源码学习,了解 Glide 4.0+图片加载原理:https://www.jianshu.com/p/9d8aeaa5a329
21.EventBus分析:
EventBus 原理解析:https://www.jianshu.com/p/d9516884dbd4
二,单个对象的独到理解
1.Context的理解
8年老Android开发谈;Context都没弄明白凭什么拿高薪?:https://www.jianshu.com/p/f0fb461a2b2c
2.Intent
隐式Intent与显示Intent的区别:https://blog.csdn.net/xia236326/article/details/81837521
三,可能被我忽略的那些事
1.Android屏幕中容易被忽略的刷新机制:
https://zhuanlan.zhihu.com/p/77390590
四,总结性的文章
1.2020 - 阿里 Android + 前端面试题及部分答案(拿到 offer):
https://www.jianshu.com/p/2c2abadae450
2.做了5年Android,靠着这份面试题跟答案,我从12K变成了30K:
https://www.jianshu.com/p/a8f7048a1575
此文将持续更新,喜欢的可以收藏哦!
Android面试知识点复习,那些不为人知的秘密相关推荐
- Android开发技巧!Android面试知识点总结宝典助你通关!终局之战
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: 组件化如何实现,组件化与插件化的差别在哪里,该怎么选型 心理分析:面试官从架构层次 了解求职者是否用过 模块化 组 ...
- 大数据开发面试知识点复习2
文章目录 大数据开发复习课程 1.Hadoop 1.1.介绍Hadoop 1.2.Hadoop特性优点 1.3.hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么? 1.4.Had ...
- Android面试知识点指南(持续更新)
Java: 一. 集合框架,list,map,set都有哪些具体的实现类,区别都是什么? 1.List,Set都是继承自Collection接口,Map则不是; 2.List特点:元素有放入顺序,元素 ...
- 2021年 Android面试知识点总结 (备战金三银四面试季),程序员翻身之路
FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TOP一起使用,并且要启动的activity的taskAffinity和当前activity的taskAffini ...
- android 面试知识点
自我介绍: 您好,我是xxx,从事android开发也有好几年了,总共呆过两家公司,第一家是xx,干了1年,在这家公司做过3个项目,刚开始的时候主要写一些需求文档,用xmind整理项目功能,做一些简单 ...
- Android面试知识点_
自我介绍: 您好,我是xxx,从事android开发也有好几年了,总共呆过两家公司,第一家是xx,干了1年,在这家公司做过3个项目,刚开始的时候主要写一些需求文档,用xmind整理项目功能,做一些简单 ...
- android 快速开发工具类,android面试知识点
项目地址:570622566/FastAndrUtils 简介:android 快速开发工具类 更多:作者 提 Bug 官网 标签: Fastandrutils 是一套整理修改整合的 and ...
- 大数据开发面试知识点复习3
文章目录 大数据开发复习课程 10.scala 10.1.scala介绍 10.2.scala解释器 10.3.scala的基本语法 10.3.1.声明变量 10.3.2.字符串 10.3.3.数据类 ...
- Android面试知识点总结宝典助你通关!成功入职阿里
**新技术层出不穷,去年kotlin到如今Flutter,技术迭代,你是否会变得固步自封?**那么看本篇文章帮你解决问题,让你知道怎么样学习,学习那些技术点才能不被时代的迭代快速淘汰! 首先,先说一下 ...
- Android面试知识点(转)
该文所有问题转自:http://www.cnblogs.com/hpboy/p/3307371.html 一.算法,数据结构 1.排序算法 2.查找算法 3.二叉树 4.广度,深度算法: 二.java ...
最新文章
- 在MySQL数据库中,这4种方式可以避免重复的插入数据!
- 无线数据采集器与计算机系统的连接,WS5、WS6 WiFi无线数据采集器,如何与计算机实现无线远距离采集...
- 洛谷P1424小鱼的航程改进版
- 使用Jmeter开发app端接口自动化案例实战
- qemu PPP连接
- USACO2.3【dfs,dp,背包】
- 日志审计携手DDoS防护助力云上安全
- MyDAL - is null is not null 条件 使用
- Linux开发板烧录实验
- 2020 最新版《神经网络和深度学习》中文版.pdf
- 【Mac】微信视频对方听不见你的声音
- Catch the moments of your life. Catch them while you're young and quick.
- 【实战练习】汽油辛烷值优化建模(二)(问题一的详细讲解)
- 最新传智播客nodejs入门到精通(基础就业)全套nodejs视频教程
- 艺展中心七夕游园雅集,梦回长安品古韵
- java ews appointment_EWS Java API 1.1创建约会 - 缺少TimeZoneDefinition
- [旋转卡壳]最大土地面积 AcWing2617
- (hadoop02)配置hadoop--完全分布式配置
- 工具及方法 - 字幕下载网站
- ISA 2004 介绍