想要成为一名优秀的 Android 开发,不仅需要断的敲代码,还需要一份完备的知识体系,能够让我们学到的知识体系化。让自己清楚哪块是自己的知识盲区,哪块已经构建起根基,然后根据实际情况,有针对性的进行模块学习。
我平时也逛一些网址,存储了一些Android视频资料,话不多说,直接上图:
一,Java高级
反射,注解,泛型
多线程:线程、线程池、Synchronized、volatile、ReentrantLock
JVM:类加载、内存模型、垃圾回收机制、强弱虚引用
集合容器:Collection、Map
二,安卓多线程
多线程是开发人员必不可少的技术点,也是初学者不太容易掌握好的一个难点。要想设计出优秀的程序,那必然需要合理的线程调度。
Handler:Handler、Looper、Message
ThreadLocal,AsyncTask
三,网络
在 Android 的日常开发和源码阅读中会经常碰到相关知识,掌握这些网络基础知识,也是 Android 程序员真正迈向高阶的过程中必备的一些基本技术素质之一。
HTTP、HTTPS TCP UDP TCP/IP SOCKET
网络请求过程:三次握手、四次挥手、证书、断点续传
四,视图
Surface
View: 自定义 View(measure、layout、draw)
Window:PhoneWindow、DecorView、ViewRoot
事件分发机制:滑动冲突、dispatch
动画:帧动画、View动画、属性动画
ListView工作原理
RecycleView工作原理、与ListView比较
Webview:js通信,加载优化
五,图片
BitMap:加载效率、缓存策略、内存计算
Drawable
加载大图
六,安卓系统
系统启动流程
应用启动流程
进程间通信:IPC机制、Binder原理、AIDL
构建:Grale、APT编译注解处理器
apk打包:打包流程、v1和v2签名、分包multidex、加固
Dalvik与ART
SystemServer:ActivityMagangerService、PackageManagerService,WindowManagerService
Dalvik与ART
JNI:JNI基础、NDK
七,四大组件
Android 四大基本组件分别是 Activity,Service 服务,Content Provider内容提供者,BroadcastReceiver 广播接收器。
Acitivity难点:四大launch模式、启动流程、加载布局流程
Service难点:启动方式、启动流程、应用场景
ContentProvider难点:生命周期、启动流程、原理
Broadcast难点:生命周期、注册方式、启动流程
八,性能优化
作为一个 Android 程序员,性能优化是无法避开的事情,并且性能优化也是 Android 中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。
启动优化 UI优化 内存优化 卡顿优化 网络优化 数据库优化 包体积优化 ANR
九,三方库
Android 平台上的数据库框架非常多,但是有一个共同特点就是基于对象关系映射(ORM) 模型的。实现的目标也都是不需要写 SQL 语句,通过对对象的操作保存和操作数据。
图片加载:Gride、Fresco、Picasso、Android-UIL
网络通信:Retrofit、Okhttp、Volley
异步处理:RxJava、RxAndroid、RxBinding、EventBus
数据库:
十,与时俱进
跨平台:Flutter、ReactNative、Weex
模块化
Hook技术
插件化:DroidPlugin、VirtualAPK 、Small、RePlugin
组件化:ARouter、CC
热更新:Tinker、AndFix、Robust
动态化
十一,Kotlin
扩展函数 构造函数 协程
十二,框架
Jetpack:ViewModel、LiveData、Lifecycles、Navigation、Room、Paging、WorkManager、DataBinding
MVC
MVP
MVVM
设计模式:六大原则、常见设计模式
十三,音视频
音视频基础
ffmpeg WebRTC OpenGL Vulkan
有需要的可以滴滴我或者留言!!!