anroid知识体系

想要成为一名优秀的 Android 开发,不仅需要断的敲代码,还需要一份完备的知识体系,能够让我们学到的知识体系化。让自己清楚哪块是自己的知识盲区,哪块已经构建起根基,然后根据实际情况,有针对性的进行模块学习。

我平时也逛一些网址,存储了一些Android视频资料,话不多说,直接上图:

anroid知识体系_第1张图片

一,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

有需要的可以滴滴我或者留言!!!

你可能感兴趣的:(设计模式,java,编程语言,面试,android)