知识体系引导

作者: Stan_Z | 来源:发表于2019-05-13 17:45 被阅读0次

    一、垂直方向:

    说明:针对垂直领域技术栈进行深耕。

    1.1 性能优化

    系列 文章
    优化盘点 Android性能优化盘点 - 系统基础
    Android性能优化盘点 - 启动优化
    Android性能优化盘点 - 卡顿优化
    Android性能优化盘点 - 布局优化
    Android性能优化盘点 - 内存优化
    优化工具 性能优化工具(一)-StrictMode
    性能优化工具(二)-Systrace
    性能优化工具(三)-TraceView
    性能优化工具(四)-Allocation Tracker
    性能优化工具(五)-Heap Viewer
    性能优化工具(六)-Layout Inspector
    性能优化工具(七)-调试GPU过度绘制 & GPU呈现模式分析
    性能优化工具(八)-MAT
    性能优化工具(九)-LeakCanary
    性能优化工具(十)- Android内存分析命令
    性能优化工具(十一)-Android Profiler
    性能优化工具(十二)-使用 CPU Profiler 检查 CPU Activity 和函数跟踪
    性能优化工具(十三)-使用 Memory Profiler 查看 Java 堆和内存分配
    性能优化工具(十四)-利用 Network Profiler 检查网络流量
    附:
    Simpleperf
    Battery Historain
    Matrix
    systrace使用实战:
    从systrace看app冷启动过程(一)-应用程序启动
    从systrace看app冷启动过程(二)-首帧的绘制与渲染
    从systrace看app冷启动过程(三)-首帧的合成与送显
    原生方案 Android Q app内存压缩优化方案介绍
    lowmemorykiller总结
    优化实战 - 启动耗时分析 启动耗时分析(一)-测量应用启动时间
    启动耗时分析(二)-CPU问题分析
    启动耗时分析(三)-ART编译分析
    启动耗时分析(四)-具体方法耗时分析
    优化实战-ANR问题分析 Android ANR(一)-基本分析方法
    Android ANR(二)-触发原理

    1.2 应用基础框架支持
    说明:这部分主要分两大块内容:应用基础框架开发:技术总结、源码分析、典型问题处理。架构设计:框架设计与重构。

    基础框架 文章
    网络框架 网络框架- Okhttp3与Volley整体架构分析
    网络框架- HTTP加密策略分析
    播放器框架
    日志收集框架
    图片框架
    插件化框架
    热修复框架
    框架设计与重构 文章
    重构:改善既有代码的设计学习
    实战 网络框架 - 改造方案设计

    二、盒子开发

    说明:盒子app开发,包括tv app和 iptv。盒子开发特点:首先,Android版本滞后于手机,目前用户量最大的版本在Android4.4 - 5.0,其次盒子的硬件配置比手机会差很多,有些问题在手机上没有但是在盒子上就可能存在。

    系列 文章
    源码解析 深入剖析应用启动流程(Android 4.4)
    NDK开发

    三、手机开发

    说明:手机app和rom开发,rom更偏向于framework层。该系列区别于盒子,会在更高级别的Android版本来学习和总结。
    3.1 Application: 手机app开发技术栈

    系列 文章
    Java基础 Java基础(一)-泛型
    Java基础(二)-注解
    Java基础(三)-反射
    Java基础(四)-IO / NIO
    Java基础(五)-集合之HashMap
    Java基础(六)-CurrentHashMap线程安全实现
    Java基础(七)-LinkedHashMap原理分析
    Java基础(八)-设计模式
    网络 Android网络编程(一)-协议分层
    Android网络编程(二)-session、cookie、token
    Android网络编程(三)-HTTP协议
    Android网络编程(四)-TCP / UDP协议
    Android网络编程(五)-由Okhttp看网络库
    线程 多线程(一)-线程基础
    多线程(二)-线程安全
    多线程(三)-为主线程减负的多线程方案
    虚拟机 虚拟机(一)-JVM执行java代码流程浅析
    虚拟机(二)-Dalvik执行java代码流程浅析
    虚拟机(三)-JVM 、DVM 、ART简单对比
    虚拟机(四)-JVM垃圾回收
    class & dex
    JVM虚拟机
    Gradle Android Gradle(一)- 开篇
    Android Gradle(二)- groovy
    Android Gradle(三)- gradle
    Android Gradle(四)- 自定义plugin
    性能优化思考 性能优化实践(一)-安装包瘦身
    性能优化实践(二)-布局优化
    性能优化实践(三)-卡顿优化思考
    性能优化实践(四)-内存优化思考
    其他 Android序列化浅析
    Android项目构建过程分析
    android imageview scaletype属性
    Android中shape中的属性大全
    Android数据存储路径分析
    viewpage+fragment浅谈几点问题
    录屏软件:OBS Studio 安装操作指南for mac
    maven私服搭建

    3.2 Framework: 站在性能角度积累的系统层技术栈

    系列 文章
    系统启动 Android系统启动(一)-开篇
    Android系统启动(二)-Init篇
    Android系统启动(三)-Zygote篇
    Android系统启动(四)-SystemServer篇
    Android系统启动(五)-ActivityManagerService篇
    Android系统启动(六)-Launcher篇
    进程管理 Android进程管理篇(一)-应用进程启动过程
    Android进程管理篇(二)-进程查杀方式总结
    Android进程管理篇(三)-进程adj算法
    Android 进程管理篇(四)-cpu限制
    Android 进程管理篇(五)-调度策略与优先级
    打通Framework与Kernel-谈谈我对进程管理的理解
    通信 进程内通信:
    Android通信方式篇(一)-消息机制(Java层)
    Android通信方式篇(二)-消息机制(ThreadLocal详解)
    Android通信方式篇(三)-消息机制(Native层)
    进程间通信:
    Android通信方式篇(四)-Binder机制(开篇)
    Android通信方式篇(五)-Binder机制(Kernel层)
    Android通信方式篇(六)-Binder机制(Native层(上))
    Android通信方式篇(七)-Binder机制(Native层(下))
    Android通信方式篇(八)-Binder机制(Framework层)
    Binder梳理
    Graphics 整体梳理:
    Android图形系统(一)-Window加载视图过程
    Android图形系统(二)-DecorView布局加载流程
    Android图形系统(三)-View绘制流程
    Android图形系统(四)-Activity、Window、View关系总结
    Android图形系统(五)-Surface图形系统概览
    Android图形系统(六)-app与SurfaceFlinger服务连接过程
    Android图形系统(七)-app请求SurfaceFlinger创建Surface过程
    Android图形系统(八)-app与SurfaceFlinger共享UI元数据过程
    Android图形系统(九)-View、Canvas与Surface的关系
    Android图形系统(十)-SurfaceFlinger启动及图层合成送显过程
    Android图形系统(十一)-Choreographer
    Android图形系统(十二)-流畅度概念
    Android图形系统(十三)-Vsync信号处理
    HWUI:
    Android9.0 硬件加速(一)-开篇
    Android9.0 硬件加速(二)-RenderThread线程的启动
    Android9.0 硬件加速(三)-绑定Surface到RenderThread
    Android9.0 硬件加速(四)-UI Thread绘制过程
    Android9.0 硬件加速(五) -RenderThread渲染过程
    Input Android Input(一)-相关模块初始化
    Android Input(二)-输入子系统
    Android Input(三)-InputReader获取事件
    Android Input(四) -InputDispatcher分发事件
    Android Input(五)-InputChannel通信
    Android Input(六)-ViewRootImpl接收事件
    Android Input(七)-ViewRootImpl处理事件
    Android Input(八)- ANR原理分析
    Android Input(九)-Input问题分析指北
    Android Input(十)-整体流程图
    Runtime Android 9.0 ART编译分析(一)-编译通路梳理
    Android 9.0 ART编译分析(二)-Installd触发dex2oat编译流程
    Android 9.0 ART编译分析(三)-虚拟机触发dex2oat编译流程
    ActivityManagerService Activity:
    四大组件之Activity(一)-启动过程概览
    四大组件之Activity(二)-StartingWindow流程分析
    四大组件之Activity(三)- 任务栈
    Service:
    四大组件之Service(一)-Service启动过程
    PackageManagerService Android PMS(一)-启动流程
    Android PMS(二)-Apk安装流程
    Android PMS(三)-Installd执行dexopt流程
    Android PMS(四)-安装微信
    WindowManagerService Android WMS(一)-窗口管理
    Android WMS(二)-Surface管理
    Android WMS(三)- Input管理
    应用启动流程(贯穿:Package、
    Input、Graphics三大模块以及
    相关系统服务全局阐述从点击
    launcher app图标到应用首帧
    显示的整体流程)
    应用启动流程梳理(一)-应用安装流程
    应用启动流程梳理(二)-Input事件传递流程
    应用启动流程梳理(三)-Activity启动流程
    应用启动流程梳理(四)-视图处理流程
    脚本学习 python:
    Python入门(一)-语法基础
    Python入门(二)-函数
    Python入门(三)-面向对象
    Python入门(四)-字符串常规操作
    Python入门(五)-文件读写
    makeFile:
    Makefile入门(一)-概述
    Makefile入门(二)-MakeFile介绍
    Makefile入门(三)-书写规则
    Makefile入门(四)-书写命令
    Makefile入门(五)-使用变量
    Makefile入门(六)-使用条件判断
    Makefile入门(七)-使用函数
    Makefile入门(八)-make运行
    Makefile入门(九)-隐含规则
    Makefile入门(十)-使用make更新函数库文件
    Makefile学习总结
    其他 新手引导:
    了解Android系统架构
    如何玩Android系统源码
    其他模块零散总结:
    手机状态栏信号显示流程浅析
    Service的自动重启问题
    任务列表流程浅析
    Android phone 拨号、来电流程
    内存耗用:VSS/RSS/PSS/USS 的介绍

    3.3 Kernel: 系统性能优化的内核基础。

    Linux学习 文章
    内存管理 Linux学习-内存管理篇(一) - 概览
    Linux学习-内存管理篇(二)-MMU介绍
    Linux学习-内存管理篇(三)-节点、分区、页、页框、页表关系分析
    Linux学习-内存管理篇(四)-内存分配算法
    Linux学习-内存管理篇(五)-内存分配函数
    Linux学习-内存管理篇(六)-内存回收(lru链表)
    内存管理基础(上)
    内存管理基础(下)
    进程管理与进程调度 Linux学习-进程管理与调度(一)-进程描述及其生命周期
    Linux学习-进程管理与调度(二)-进程的创建与销毁
    Linux学习-进程管理与调度(三)-调度基础
    Linux学习-进程管理与调度(四)-负载均衡与实时性
    文件&权限 Linux学习 - 文件基本属性
    Linux学习 - SELinux/SEAndroid

    四、数据结构&算法

    说明:面试刷题

    分组 文章
    LeetCode 数据结构&算法(一)-算法思想
    数据结构&算法(二)-单链表
    数据结构&算法(三)-二叉树
    数据结构与算法(四)-排序
    数据结构&算法(五)-字符串
    数据结构&算法(六)-数组

    相关文章

      网友评论

        本文标题:知识体系引导

        本文链接:https://www.haomeiwen.com/subject/evuraqtx.html