想要成为一名优秀的 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

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

anroid知识体系相关推荐

  1. 大数据怎么学习:大数据学习的关键技术知识体系、学习路径和误区

    由于大数据技术涉及内容太庞杂,大数据应用领域广泛,而且各领域和方向采用的关键技术差异性也会较大,难以三言两语说清楚,本文从数据科学和大数据关键技术体系角度,来说说大数据的核心技术什么,到底要怎么学习它 ...

  2. 大型网站架构演变和知识体系

    存爱好,作为收藏,原地址:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html ,同时向原创致敬 之前也有一些介绍大型网站架构 ...

  3. 谷歌编程语言年度榜NO.1:知识体系总结(2021版)

    本文专注整理一些有关Python学习的知识体系. 整理的Python知识体系主要包括基础知识,Python热门的应用方向,推荐书籍,FAQ以及一些常见面试题目,包含了作为一个Python全栈工程师以及 ...

  4. 从0到1构建数据科学竞赛知识体系,有夕,鱼佬,茂霖等竞赛大咖将特邀分享...

    从0到1构建数据科学竞赛知识体系 这是怎样的数据竞赛知识体系 为了帮助更多竞赛选手入门进阶比赛,通过数据竞赛提升理论实践能力和团队协作能力.DataFountain 和 Datawhale 联合邀请了 ...

  5. 计算机视觉专业术语总结:构建计算机视觉的知识体系

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言: 在计算机视觉中存在很多的专业术语,如先验知识,语义信息,embedding,head,neck ...

  6. C++基本语法的知识体系

    参考网址:C++基础入门 几个理解的知识点: 1.变量,变量类型,变量名的作用 答: 变量:是用来存放各种数据类型的容器,是一段内存空间.程序中定义了一个变量,就等于程序向内存条申请了一段存储空间. ...

  7. 云笔记积累个人知识体系

    笔记的记录方式 笔记是个人能力提高和知识体系积累的关键性习惯! 常见的笔记记录方式有三种,其实也是我个人笔记记录方式成长的三个阶段. 1. 传统的纸记录方法. 2008年我大学本科毕业前的记录方式,也 ...

  8. 科研经验3:公众号建立实验室共享知识体系和宣传窗口

    背景 近年来微信公众号的出现,给大家带来了很大的便利,非常多优秀的公众号,每天推送的文章也质量极高,我们可以用自己生活中的零散时间学习很多感兴趣的知识. 微信公众号每天超20亿次的阅读量,已经明显绑架 ...

  9. 科研经验1:云笔记积累个人知识体系

    笔记的记录方式 笔记是个人能力提高和知识体系积累的关键性习惯! 常见的笔记记录方式有三种,其实也是我个人笔记记录方式成长的三个阶段. 1. 传统的纸记录方法. 2008年我大学本科毕业前的记录方式,也 ...

最新文章

  1. SecureCRT 6.7.1 注冊机 和谐 破解 补丁 方法
  2. BLE-NRF51822教程11-手机动态修改设备名
  3. 快速排序法(思想及代码实现)
  4. 【PHP】__autoload()魔术方法与spl_autoload_register
  5. linux邮件自动回复,debian上 postfix+dovecot+squirrelmail 实现 自动回复
  6. python科学计算笔记(九)pandas中DataFrame数据操作函数
  7. 一起学习C语言:初谈指针(一)
  8. 用freebsd搭建日志服务器
  9. 免费高清可商用图片素材站推荐
  10. Miracle密码算法开源库(二)源码分析 :mralloc.c、mrarth0.c
  11. Linux驱动开发系列之一:Ubuntu 8.10下编译Linux kernel 2.6.32.1
  12. [Keil 烧录器下载报错] “Flash Timeout. Reset the Target and try it again”
  13. 鸿蒙智慧屏和pro有什么区别,华为智慧屏V55i和荣耀智慧屏PRO区别对比
  14. 男式西服的三大色系介绍
  15. 西南交通大学暑期夏令营面试
  16. Window 任务栏里面Idea图标出现空白
  17. 初中数学老师计算机培训反思,初中数学老师考试反思
  18. js+css制作导航栏下划线跟随动画,自适应元素尺寸变化,Vue/Uniapp
  19. 别让灵魂跟不上我们的脚步
  20. cad老是弹出命令中发生异常_CAD出现致命错误的解决方法

热门文章

  1. 关于新版Win10下安装虚拟机提示“Intel VT-x处于禁用状态”如何解决
  2. 中软国际用一场自我进化,推动云市场跨入下一幕
  3. 2021年美容师(中级)考试资料及美容师(中级)考试试题
  4. Linux 和 SMP(对称多处理)
  5. Python中最常见括号()、[]、{}的区别
  6. EasyPermission:一句代码解决动态权限的申请和回执(带权限提示信息)
  7. 【SQL刷题】Day6----SQL综合专项练习
  8. MySQL建库建表:utf8和utf8mb4的区别
  9. 赢得企业中的战略地位——RPA在HR部门的应用
  10. [电路]8-无源一端口网络输入电阻