随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了。对于学习有困难不知道如何提升自己可以加扣:1225462853进行交流得到帮助,获取学习资料.
下载地址:http://pan.baidu.com/s/1jI05TPW
1.掌握Java基本语法,了解面向对象编程特点,有基本Java语言编程经验
2.了解计算机系统、数据结构基础知识,掌握SQL基本语法
3.熟悉“科学上网”方法,可以查阅Android官方文档、下载IDE
1.高级UI绘制(学习周期2个月)
UI流程绘制分享
源码级分析、View的测量、View的布局、View的绘制过程
绘图及特效制作
Paint画笔高级技能(Paint的方法使用技巧、高级渲染(BitmapShader位图渲染、LinearGradient线性渲染、RadialGradient环形渲染、SweepGradient扫描渐变渲染、ComposeShader组合渲染))、Xfermode、滤镜效果(BlurMaskFilter滤镜、EmbossMaskFilter滤镜)、颜色通道过滤(ColorMatrixColorFilter 颜色矩阵过滤、LightingColorFilter曝光颜色过滤、PorterDuffColorFilter图层混合颜色过滤)、Canvas画板高级技能(Canvas基础使用技巧、Canvas区域切割技巧(实例:android实现IOS Reveal特效))、Canvas变换使用技巧(translate、scale、rotate、skew斜拉画布)、Canvas图层与状态方法使用技巧(通过save和restore解决图层绘制技术、离屏缓冲技术、PorterDuffColorFilter图层混合颜色过滤)、超强辅助英雄-Path工具类的使用、超强ADC英雄-PathMeasure牛叉辅助类的使用
自定义控件
自绘控件、继承控件、组合控件、Scroller详解及源码浅析、ViewDragHelper详解及源码浅析、自定义View触摸工具类解析(ViewConfiguration基础参数工具类、VelocityTracker手势速率工具类、GestureDetector手势工具类)、大量自定义控件实践(滑动选择价格区间标签控件、热门标签--流式布局、腾讯内部技术-QQ空间之打造个性化可拉伸头部控件、个性化滑动指示器、Material Design---RecyclerView实现时光轴效果、android实现IOS Reveal特效)
事件传递机制(深入源码分析)
事件冲突解决
高级动画及特效
属性动画完全解析、MaterialDesign动画(Touch feedback(触摸反馈)、Reveal effect(揭露效果)、Activity transitions(Activity转换效果)、Curved motion(曲线运动)、View state changes (视图状态改变)、Animate Vector Drawables(矢量动画))、SVG(SVG概述、SVG图片使用实例、SVG动画使用实例)、GIF动画引擎框架、自定义动画框架
Material Design原材料设计开发
NavigationView+DrawerLayout主流侧滑实现、TextInputLayout、Snackbar、Toolbar、Material Design样式属性开发、百分比布局、沉浸式设计、TabLayout、Palette调色板、FloatingActionButton悬浮按钮及联动动画效果、CardView、CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout、Behavior、CollapsingToolbarLayout、自定义Behavior及源码分析
内存泄露分析
发生OOM的条件分析、避免内存泄漏(如何使用更高效的ArrayMap容器、如何避免不经意的“自动装箱”、Lint,StictMode等工具的使用技巧)、内存管理机制(共享内存、分配与回收内存、限制应用的内存、应用切换操作)、OOM(查看内存使用情况)、onLowMemory与onTrimMemory的回调
性能优化工具的使用
MAT、LeakCanary、Memory Monitor、Allocation Tracking、Heap Tool、TraceView、hierarchyviewer布局检测工具
第三方分析工具
MemoryAnalyzer、GT Home、iTest
Android的渲染机制分析
渲染性能问题的根源、渲染优化(UI卡顿分析、过度渲染问题、布局优化)、内存优化(内存抖动问题)、计算优化
电量优化
分析电量的流失、分析电量消耗数据、分析充电状态和电池管理、battery-historian工具的使用、窝信号对电量消耗、Job Schedule
网络优化
Batching批处理技术、Prefetching预取技术、GCMNetworkManager高级实践、Network Traffic Tool工具的使用
View的性能
自定义View的性能优化、提升View的渲染性能、处理重复layout操作的性能问题
Bitmap内存优化
缩放性能优化、缓存性能优化、重用性能优化、PNG压缩性能优化、微信图片终极压缩方案问题
安装包性能优化
打包流程分析、aapt资源文件打包原理、resources_arsc二进制机构分析、资源文件压缩、资源动态加载、Lint工具优化、极限压缩、Proguard混淆
数据传输的效率优化
FlatBuffers、WEBP格式图片使用、7Zip极限压缩
隐形内存杀手Service的调优
如何优化后台服务的内存消耗;如何保障服务的常驻内存、双进程守护
设计线程池优化性能
多线程并发的性能问题
线程间通讯、AsyncTask源码级分析及注意、HandlerThread的处理、IntentService使用场景分析和实践、ThreadPool使用场景和注意
程序调优提高应用启动速度
线分析程序启动流程、优化启动流程和提速
Splash页面优化设计的窍门
缓存加载设计、如何提升主界面响应速度
C 编程
函数、指针(N级指针概念、指针数组、数组指针)、内存布局、结构体和共用体、文件操作、宏、动态库的封装和设计
C++编程
C++对C的扩展(C++关键字、命名空间、引用、C/C++混合编程、引用、函数扩展)、C++基础编程(对象管理、类的构造和析构、友元函数与友元类、操作符重载、c++编译器对象管理模型分析、类的继承、多态、抽象类、函数模板、类模板,模板的继承、C++类型转换、C++ IO、异常处理)、C++ STL(序列式容器、堆栈容器、双向链表容器、关联式容器、对组、算法详解)
爱奇艺音视频解决方案
音视频编解码原理、FFmpeg、音频解码、视频解码、音视频同步处理
Linux系统编程
Linux系统管理、VIM使用、GCC GDB使用、Shell脚本核心编程、Mikefile编写、Linux系统编程之多线程编
JNI开发
JNI类型、JNI函数操作(数组操作、字符串操作、、优化
企业级热门核心技术
阿里云anfix热修复原理分析
揭秘底层在线修改app功能(淘宝在线关闭顺丰接口,微信在线关闭赞赏功能)
java方法在Dalvik和Art虚拟机运行原理
根据Android系统核心源码手写热修复
揭秘360手机助手卸载监听双进程手写实现
AM命令跳转网页的源码分析
微信斗图中带文字的gif动态图合成原理及其手写实现
利用系统源码打造gif图的播放
OpenCV
opencv原理详解,结构体 颜色通道使用
AndroidStudio cmake配置OpenCV开发环境
OpenCV打造人脸识别
利用opencv和TensorFlow打造身份证识别
机器深度学习
NDK
运行机制与流程、Android.mk(GNU Make系统变量、模块描述变量、GNU Make 功能宏)、Application.mk、日志与调试、支持c++、Native原生绘制
视频直播与视频通话
花椒直播解决方案(音视频采集与编码、FAAC、X264、RTMP协议、nginx流媒体服务器部署)
腾讯QQ视频通话核心技术-WebRTC,房间服务器、信令服务器、防火墙穿越服务器部署配置,Android客户端so库编译,单独模块定制编译开发
创建型模式
Simple Factory、Factory Method、Abstract Factory、Builder、Prototype、Singleton
UML建模
图(类图、时序图)、关系(依赖 Dependency、泛化 Generalization、关联 Association、实现 Realization)
设计原则
单一职责SRP、里氏替换LSP、依赖倒置DIP、接口隔离ISP、迪米特LOD、开闭OCP
AOP架构设计
Aspect、Joint point、Pointcut、Advice、用户行为统计场景、性能监控场景
行为型模式
Template Method、Observer、State、Strategy、Chain of Responsibility、Command、Visitor、Mediator、Memento、Iterator、Interpreter
源码分析
Builder模式及其Dialog系统源码分析,责任链模式模式及其Android系统事件分发机制详解,Android Handler源码分析,PackageManagerService源码解析及其apk安装原理,解释器模式及其在PackageParser源码中的运用,Activity启动流程源码全解析,ListView的复用机制源码层分析,属性动画源码详解,Message链表原理,Binder核心原理与架构设计
数据库框架设计
面向对象式手写数据库架构设计(增删改查),SQLCipher进行数据库加解密。xml脚本实现数据库全量升级
网络访问框架设计
Volley网络框架源码层解析,使用泛型完成手写高扩展的Volley网络访问框架设计 ,支持高并发,请求队列和批量断点下载,以及下载文件时数据记录自动插入
图片加载框架设计
配置、外观、请求队列、请求、请求转发、加载器、加载策略、缓存策略。LruCache和DiskLruCache解析,自定义Glide图片加载框架设计
RXJava响应式编程框架设计
RXJava的内核机制及原理详解。手写RxJava框架设计,实现链式调度,事件变换,线程切换。
结构型模式
Fa?ade、Adapter、Proxy、Decorator、Bridge、Composite、Flyweight
IOC架构设计
运行时注入、编译时注入、注入布局、注入视图、注入事件, ButterKnife设计Dagger架构设计核心解密
项目框架设计
MVC、MVP三层架构,MVVM在AndroidStudio编译时的原理剖析
算法
算法基本概念{算法特征、算法运算要素、算法优劣评定(时间复杂度、空间复杂度、正确性、可读性、健壮性)、算法分析方法(递归法、穷举法、贪心法、分治法、动态规划法、迭代法、回溯法)}
经典排序算法{插入排序(直接插入排序、二分法插入排序、希尔排序)、选择排序(简单选择排序、堆排序)、交换排序(冒泡排序、快速排序)、归并排序、基数排序}
递归法经典算法{二分法查找、欧几里得算法、汉若塔算法、阶乘求解算法}
穷举法经典算法{泊松算法、哥德巴赫猜想}
贪心法经典算法{背包算法、普利姆算法}
分治法经典算法{循环赛日常表、棋盘覆盖算法}
动态规划法经典算法{最长公共子序列、KMP算法}
回溯法经典算法{八皇后、数独构造算法}
其他经典算法{约瑟夫杀人法、斐波拉契数列、蒙特卡洛、水仙花、其他}
数据结构
数据结构基本概念{逻辑结构(集合结构、线性结构、树形结构、图形结构)、存储结构(顺序存储、链式存储)}
线性表{顺序线性表、链表(循环链表、双向循环链表)、栈(逆波兰表达式(中缀表达式))、队列(循环队列)}
HashMap{实现原理(扩容机制、hash算法、索引机制)、散列链表}
树{树的基本概念(结点(结点的度)、层次、深度(高)、有序树与无序树、森林)、树的存储结构(双亲表示法、孩子表示法、孩子兄弟表示法)、二叉树(二叉树的类型(特殊二叉树、满二叉树、完全二叉树)、二叉树的存储结构、二叉树的遍历(前序遍历、中序遍历、后序遍历、层序遍历)、二叉树的建立(树、森林、二叉树的转换、赫夫曼树、赫夫曼编码(压缩算法))、查找二叉树、(平衡树、红黑树))}
图{图的特征与基本概念(无向图、有向图、图的权值、连通图、图的度)、图的存储结构(邻接矩阵、带权邻接矩阵、邻接表、带权值邻接表、十字链表)、图的遍历(深度优先遍历、广度优先遍历、最小生成树(普利姆算法、克鲁斯卡尔算法)、最短路径(迪杰斯特拉算法)、拓扑排序)}