Java 相关
容器(HashMap、HashSet、LinkedList、ArrayList、数组等)
需要了解其实现原理,还要灵活运用,如:自己实现 LinkedList、两个栈实现一个队列,数组实现栈,队列实现栈等。
内存模型
垃圾回收算法(JVM)
类加载过程(需要多看看,重在理解,对于热修复和插件化比较重要)
反射
多线程和线程池
JobService
HTTP、HTTPS、TCP/IP、Socket通信、三次握手四次挥手过程
设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
断点续传
Android 基础
自定义 View(参考链接:自定义View,有这一篇就够了 - 简书、Android 自定义 View)
事件拦截分发(Android事件分发机制,大表哥带你慢慢深入 - 简书 )
解决过的一些性能问题,在项目中的实际运用。
性能优化工具 (TraceView、Systrace、调试 GPU 过度绘制 & GPU 呈现模式分析、Hierarchy Viewer、MAT、Memory Monitor & Heap Viewer & Allocation Tracker 等)
性能优化
(1)网络:API 优化、流量优化、弱网优化
(2)内存:OOM 处理、内存泄漏、内存检测、分析、Bitmap 优化
(3)绘制
(4)电量:WeakLock 机制、JobScheduler 机制
(5)APK 瘦身
(6)内存抖动
(7)内存泄漏
(8)卡顿
(9)性能优化:布局优化、过度渲染处理、ANR 处理、监控、埋点、Crash 上传。
IntentService 原理及应用
缓存自己如何实现(LRUCache 原理)
图形图像相关:OpenGL ES 管线流程、EGL 的认识、Shader 相关
SurfaceView、TextureView、GLSurfaceView 区别及使用场景
动画、差值器、估值器(Android中的View动画和属性动画 - 简书、Android 动画 介绍与使用)
MVC、MVP、MVVM
Handler、ThreadLocal、AsyncTask
Gradle(Groovy 语法、Gradle 插件开发基础)
热修复、插件化
Android Framework
AMS 、PMS
Activity 启动流程
Binder 机制(IPC、AIDL 的使用)
为什么使用 Parcelable,好处是什么?
Android 图像显示相关流程,Vsync 信号等
三方源码
Glide :加载、缓存、LRU 算法
EventBus
LeakCanary
ARouter
插件化(不同插件化机制原理与流派,优缺点。局限性)
热修复
RXJava
Retrofit
算法与数据结构
单链表:反转、插入、删除
双链表:插入、删除
手写常见排序、归并排序、堆排序
二叉树前序、中序、后序遍历
最大 K 问题
广度、深度优先搜索算法
可以去刷一下 LeetCode ,对自己提升也会比较大。
2019学习计划
之前也会经常看学习资料,但是就是老会忘记,没有看的很深入,也没有做记录,现在搭建自己的博客已经一周了,也不知道博客该些什么,今天要定个月计划,周计划,日计划,学习更要有深入 这样技术才能有更好的进步.
年计划:
Ⓐ 针对Java:
内存模型
垃圾回收算法(JVM)
类加载过程(需要多看看,重在理解,对于热修复和插件化比较重要)
反射
多线程和线程池
JobService
HTTP、HTTPS、TCP/IP、Socket通信、三次握手四次挥手过程
设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
断点续传;
算法:
<java虚拟机>
Ⓑ 针对APP:
代码设计模式; 单例,MVC,MPV,
自定view: 了解自定义View的原理,能够一些复杂的View,其中贝塞尔曲线为重点
SurfaceView: 需要会使用
内存优化:
网络:
电量:
内存抖动:
卡顿: SysTrace
Apk 瘦身
热修复原理:
插件化:
动画:
音频与视频:
通过上面的学习需要写个内容比较深入的App, 本着学习的目的所有功能均要涉及.
APP 暂定为"聊天软件", 细节后面在逐步添加
Ⓒ 针对系统应用: 需要记录关于相册的详细流程
相册:
相册启动
数据加载
图集显示
大图显示
图片编辑
Ⓓ 针对Framework:
<Android虚拟机>
1.能看懂C++ 代码,针对Android 底层,
2.学会 NDK jni开发
3.掌握系统性能优化方法与工具,以及内存泄露
4.掌握frameworkService Input, AMS,WMS,PMS,Power 其中WMS,Input为重点
5.了解Binder机制原理,这个需要能看懂C++ 代码之后才能深入的学习.
6.Parcelable 原理
7.Android View显示流程
8.应用启动原理
9.开机流程
GPS,Wifi,NFC,BT
1.可以利用在自定义View中学的知识来做一个,手势导航栏,需要重新设计应用层的架构,但是原理不变.
- 可以做类似Oppo解锁后跑马灯效果
- 可以做类似Vivo息屏主题, 这个主题在SystemUI中KeyGuard 修改
- 可以做三指截屏,截屏后可以参考图库编辑
- 屏幕录屏
- 关机闹钟
六月计划
针对项目架构,内存优化, C++部分,其他部分.
六月第一周
优先内存,性能 卡顿
20190601
今天白天在外面跑没有时间看书或学习,晚上回来偷个懒看了一部电影,都9点了, 指定了2019年下半年学习计划,上面只是列了一些大概,后面再补充,要学的东西很多,感觉半年时间都不够,接下来有好好认真的学习.
六月第二周
java 内存,与线程
六月第三周
java 内存,与线程