Android 优化方案android安卓

知识体系引导

2019-05-13  本文已影响0人  Stan_Z

一、垂直方向:

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

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 数据结构&算法(一)-算法思想
数据结构&算法(二)-单链表
数据结构&算法(三)-二叉树
数据结构与算法(四)-排序
数据结构&算法(五)-字符串
数据结构&算法(六)-数组
上一篇 下一篇

猜你喜欢

热点阅读