Study 2022 Must Be Done

157 阅读7分钟

记录今年所有准备学习的知识点及相关资料,学完的部分记录到新的文章中
目标:在今年成为一个Android高手,学完常规的所有知识,web全站 h5 server
提升自身
给自己:给自己一个不一样的三十岁,正视自己,努力一次好吗?不要再让自己后悔了

先看励志视频

视频一 学习
视频二 励志

后续学习过程中的知识点也是需要记录在这里的。学习过程中药学会复习。

学习方案:

早起先去楼下锻炼半个小时,跳绳HIIT
早上先复习,再学习新知识
每天看一个小时算法 数据结构 leecode 和背面试题
每天十二点之前睡觉
午睡半个小时
晚上先复习,再学习新知识
睡觉前,复习一遍学过的再睡

学习计划

只记录耗时在5个小时以上的项目

文章:Activity ?查deeplink是什么? 准备买回家的火车票

新反编译工具的使用 wenku.baidu.com/view/fa41a5…

月份学习内容达到效果估时
九月份Android官方文档

宽:25cm 20台子

【学习资料】

【学习资料】书

【长期学习】

算法:

  • 资料:
    • 看购买的课程系统学习
    • 看算法书 面试题:

工具

  • postman

计算机基础

adb命令

加密、解密与编码

  • 资料:hencoder

设计模式

数据结构

  • hashmap
  • list
  • set
  • 并发编程下的各种数据结构是如何保证的

linux

git

sql

大学计算机课程

  • 计算机组成原理
  • 计算机网络
  • 操作系统
  • 数据结构
  • android系统分析
  • java系统分析
  • 网页设计

java基础

  • json

序列化

  • Serializable和Parceble区别
  • 什么是序列化
  • 为什么要序列化

JVM

  • 双亲委派
  • 类加载机制
  • 内存模型
  • 字节码使用
  • Android 虚拟机的不同之处
    • Art
    • Dalvik
  • 学习资料

泛型

反射

注解

多线程

多进程

  • AIDL

网络

mvc/mvp/mvvm

输入输出流

弱引用等各种引用

File相关操作

懒加载


Android基础

APP Bundle Android官网

developer.android.com/guide/app-b…

deeplink

recyclerview原理

  • 与listview区别
  • 几级缓存的逻辑
  • 复用逻辑 复用池

webview

  • 如何相互通信
  • 预加载
  • web页面如何在chrome调试

Application

  • 地位
  • 调用时机

theme

URL URI uri

lrucache使用及原理

Android各版本特性

  • androidx怎么接

handler

  • handler内存泄漏的原因

Asyctask源码分析

deep link


Android进阶

单元测试

ASM插桩

  • Aspect

动态代理

相机

打点上报的整体流程

  • 看代码,看文档学习整理流程

AMS

WMS

PMS

代码自动生成

签名

数据库

content provider

sp

  • sp的局限性
  • sp的原理
  • sp文件格式及存储路径
  • 性能
  • 为什么会引起anr

udex

jetpack

  • LiveData
  • lifecyle
  • viewmodle

context深入学习

小知识点

  • 手机emi号

JNI/NDK

音视频

hook与插装

脚本

  • 打包脚本
  • shell脚本
  • gradle脚本
  • python脚本

gradle

apk安装流程

热修复 热更新

  • tinker原理
    • hotfix包

组件化

  • 组件之间的通信
  • arouter原理

插件化

binder

app 启动流程

  • 启动速度优化
  • 冷启动、热启动流程
  • 如何统计启动时间

app包体积优化

加固及原理

  • 加固用的什么,预见什么问题,怎么解决,(比如拖慢启动时间)为什么选用这个加固

打包流程 及jecense打包原理

  • 多渠道打包
  • 打包脚本

混淆

dex&class

应用安全

  • 看书

反编译

  • 反编译后如何打包
  • 反编译后修改代码

lint 代码检查

Android新特性 不同版本差别

性能优化、稳定性优化相关

  • Android性能优化盘点 - 内存优化
  • 电量优化
  • 如何优化native崩溃
  • 解决过哪些异常、棘手crash 及解决
  • 手机崩溃怎么收集
  • native crash
    • Android 平台 Native 代码的崩溃捕获机制及实现
  • oom原因及解决 oom排查
  • anr怎么解决,举例(比较有难度的)
  • 应用是如何做到崩溃不退出应用的
  • 卡顿优化
    • 定位卡顿
  • so优化
    • 动态加载

内存泄漏

  • 原因

View

  • 自定义view
    • view的各种回调
    • 绘制
    • 测量
    • 参考资料:书+乌龟的系列+hencoder
  • 事件分发
    • 嵌套滚动原理 滑动冲突解决
    • 事件是怎么消费的
    • nestedscroll parent
  • 图片优化
    • 大图
  • bitmap的使用
  • Coordinatlayout 原理
  • 为什么现在默认是约束布局,约束布局优势
  • Activity 如何找到rootview
  • decorview是什么view viewroot imply是什么
  • surfaceview
  • 看各种布局及控件的源码

开源框架和三方库

  • 友盟
  • glide
    • glide监听生命周期
    • GIF
    • 为什么glide能减少oom anr
    • glide 针对大图在小尺寸view上的实际显示宽高
    • 缓存库
    • glide图片低内存回收
  • okhttp
    • okhttp拦截器的原理是怎么实现的
  • retrofit
  • rxjava
  • event bus
  • butter knife
  • bugly的使用
  • 【面试】leakcanery使用及原理

编程语言

groovy

dagger2

flutter

python

shell

kotlin

  • 协程
  • 高阶函数

C

C#

C++

h5

js


其他

cocos2d opengl

面试

面试资料学习

  • java中是值传递还是引用传递
  • 16ms刷新调用什么刷新方法
  • 遇到过哪些异常
  • android各个版本的版本号和sdk
  • 手写生产者消费者
  • 了解工程的崩溃率 用户量
  • 异常捕获上报逻辑
  • 线程安全的字符串
  • 为什么作业帮不会crash退出,只会回到首页
  • hashmap hashtable 面试极高
  • 有向无环图
  • java不同版本新特性
  • android不同版本新特性
  • kotlin 协程
  • String字典排序
  • finally
  • bugly实现 崩溃捕获堆栈
  • JMM内存模型
  • final finally finalize
  • apk安装流程
  • 脚本和插件分别是什么
  • 反编译各个大厂商的apk,看他们都用了什么开源框架
  • 关于D8/R8那些事:Desugaring脱糖、APK包体积优化
  • blog.csdn.net/vitaviva/ar… Android手机中UID、PID作用及区别
  • blog.csdn.net/jiaoli_82/a… android中延时执行任务,哪一种方法准去
  • Runtime中执行 linux 命令 644读文件
  • adb命令 linux命令
  • StringBuffer StringBulider
  • StringBuilder的扩容
  • 想要发送http请求需要配个文件(主端里的配置还影响抓包)
  • Intent传输数据大小限制
  • URI Uri url
  • 为什么只能在主线程更新ui
  • 应用中布局的预加载是如何实现的
  • 换肤都有什么思路