自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

转载 虚拟机读书笔记

Dalvik虚拟机的特点即时编译JITDalvik启动流程Dalvik虚拟机在Zygote进程中启动和初始话.AndroidRuntime.cpp的startVM()函数开始启动Dalvik介绍操作系统内存管理的微信公众号文章https://www.zhihu.com/question/27871198...

2021-06-20 00:57:01 239

原创 Camera流程分析

参考官方文档Camera架构https://source.android.google.cn/devices/cameraCamera APIhttps://developer.android.google.cn/training/camera博客Android源码笔记——Camera系统架构Android Camera 四 Camera HAL 分析概述Camera框架(旧)系统架构CameraServicq启动/system/core/rootdir/init.rcser

2021-06-20 00:55:50 598

原创 Android图形显示系统

SurfaceSf = SurfaceSfF = SurfaceFlinger每个Surface对象对应SurfaceFlinger中都有对应的图层(Layer)1 什么是Layer?2 什么是SurfaceFlinger?每个Activiry都建好了各自的Sf对象1 Activity在哪里创建的Sf?Surface.javapublic class Surface implements Parcelable { public Surface() { }

2021-06-20 00:49:57 149

原创 EventBus学习笔记

注解为我们在代码中添加信息提供一种形式上的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。

2021-06-20 00:40:12 102

原创 数据结构基础

树定义树的特点二叉树红黑树代码实现树是一种数据结构,由根结点和若干棵子树构成,是n(n>=0)个节点的有限集合,一个结点的子树。树的遍历操作结点的度,树的度。某结点所拥有的子树的个数称为结点的度(degree)。树中各结点的最大值称为该树的度。叶子结点,分支结点度为0的结点称为叶子结点(leaf node),也称为终端结点。度不为0的结点称为分支结点(branch node),也称为非终端结点。路径和长度结点的层数,树的深度(高度)规定根结点的层数是1,对其余任何结点,.

2020-12-14 12:33:50 137

原创 glide自定义分析

工厂接口,用于将任意复杂的数据模型转换为具体的数据类型,DataFetcher可以使用该接口来获取由资源代表的资源的数据模型。public interface ModelLoader<Model, Data> {}Lazily retrieves data that can be used to load a resource.public interface DataFetcher<T> {}...

2020-12-14 12:33:30 158

原创 2020学习计划

1.java基础1.1 java面试宝典2.Android基础2.1 四大组件2.3 五大布局3.Android进阶3.1 Android应用层3.2 Android frameworks层

2020-12-14 12:32:38 99

原创 算法基础学习笔记

排序算法public class Sort { public static void main(String[] args) { int numbers[] = {0, 2, 3, 7, 1, 5, 6}; insertionSort(numbers); for (int i = 0; i < numbers.length; i++) System.out.print(numbers[i]); } p

2020-12-14 12:32:23 54

原创 Android 媒体播放 MediaPlayer

媒体分两个部分整理1 媒体的播放过程,视频/音乐是如何播放的google官网2 媒体的架构,如何在api基础上对播放状态控制1 播放流程 MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1); mediaPlayer.start(); // no need to call prepare(); create() does that for you public static Med

2020-12-14 12:30:53 348

原创 Binder的学习

AIDL基于Binder的封装android IPC方式<深入理解Android系统5.0>

2020-12-14 12:29:03 404

原创 抽象(Abstract)工厂(Factory)——待完善

1.意图 提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。适用性一个系统独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时。...

2020-12-14 12:24:33 62

原创 桥接(Bridge)模式——待完善

1.意图将抽象部分与他的视线部分分离,使它们都可以独立地变化2.动机当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该对象抽象接口,而具体的子类则用不同的方式实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立的进行修改、扩充和重用。3.适用性你不希望在抽象和它的实现部分之间有一个固定的绑架关系。例如这种情况是因为在程序...

2020-12-14 12:24:19 68

原创 适配器(Adapter)模式——待完善

适用性你想使用一个已知类,而它的接口不符合你的需求你想创建一个可以复用的类,该类和其它不相关的类或不可预见的类协同工作(仅适用于对象Adapter)你想使用一些已经存在的子类,但不可能对每一个都进行子类化以匹配它们的接口,对象适配器可以适配它的父类接口...

2020-12-14 12:24:06 65

原创 代理模式——待完善

1.意图 对其它对象提供一种代理以控制对这个对象的访问例如一个简单的代理模式可以这样实现public abstract class Subject { public abstract void visi();}public class RealSubject extends Subject{ @Override public void visi() { ...

2020-12-14 12:23:47 58

原创 工厂方法——待完善

1.意图定义一个用于创建对象的接口,让子类决定实例化哪一个类,Method使一个类的实例化延迟到其子类4.适用性在下列情况下可以使用FactoryMethod模式:当一个类不知道它所必须创建的对象的时候。当一个类希望由它的子类来指定它所创建的对象的时候。当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一星系局部化的时候。...

2020-12-12 12:13:02 60

原创 外观模式——未写

参与者Facade:知道那些子系统负责处理请求,将客户的请求代理给合适的子系统对象Subsystem Classes:实现子系统功能,处理没有由Facade对象指派的任务,没有Facde的任何相关消息。...

2020-12-12 12:07:54 72

原创 职责链模式——未写

行为模式

2020-12-12 12:03:51 54

原创 命名规范

参考https://source.android.google.cn/setup/contribute/code-stylehttps://google.github.io/styleguide/javaguide.html遵循字段命名规范非公共且非静态字段的名称以 m 开头。静态字段的名称以 s 开头。其他字段以小写字母开头。公共静态 final 字段(常量)要全部大写并用下...

2020-12-12 12:01:02 146

原创 ContentProvider内容提供者——待完善

https://developer.android.google.cn/guide/topics/providers/content-providers?hl=zh_cn

2020-12-12 11:58:59 77

原创 BroadcastReceiver的基本使用——待完善

官方文档https://developer.android.google.cn/topic/performance/background-optimization?hl=zh_chBroadcastReceiver 注册 接收 发送广播的三种发送方式该sendOrderedBroadcast(Intent, String) 方法一次将广播发送到一个接收器。当每个接收器轮流执行时,它可以将结果...

2020-12-12 11:57:46 100

原创 Java基础知识

对象与类类之间的关系继承和内部类接口异常泛型集合多线程

2020-12-12 11:46:02 291

原创 WindowManager在系统中的作用

AddView过程https://blog.csdn.net/u011228598/article/details/86499975https://www.jianshu.com/p/11e373a91b95

2020-09-21 18:29:16 200

原创 Android 4.4 WifiManager流程梳理

梳理WiFi的流程直接参考设置中WiFi的流程启动设置am start com.android.settings/.Settings先梳理设置中代码结构

2020-09-16 18:03:17 275

原创 Android Settings

SystemSetting源码解析项目在做设置相关,但在设置状态的同步和储存,不同列表之前的跳转上一直没法达到最优的想过,所以想看看Android源码中的设置是如何写的,虽然有难度,但慢慢看总能看懂的。android 9.0 http://androidxref.com/9.0.0_r3/xref/packages/apps/Settings/src/com/android/settings/...

2020-09-16 15:25:59 316

原创 Android多媒体扫描

packages/providers/MediaProvider/src/com/android/providers/media/MediaScannerReceiver.java负责接收外界发来的请求扫描private void scan(Context context, String volume) { Bundle args = new Bundle(); args.putString("volume", volume); context.start

2020-09-12 16:00:13 348

原创 Service——待完善

AIDLpublic abstract class Service extends ContextWrapper implements ComponentCallbacks2 ContextWrapper是Context的包装类/** * Proxying implementation of Context that simply delegates all of its calls t...

2019-12-11 21:17:35 122

原创 View基础知识和视图绘制基本原理——待完善

View的位置width=right-leftheight=bottom-topLeft=getLeft()translationX translationY X YgetX getYTouchSlop系统能识别出的最小滑动距离VelocityTracker 速度追踪 //在View的onTouchEvent方法中追踪当前点击事件速度 VelocityTracker ve...

2019-12-02 21:05:00 121

原创 Activity——待完善

生命周期启动模式显式和隐式调用工作过程Fragment生命周期启动模式AndroidMenifest.xmlAndroid:launchMode=“singleTask” Intent intent =new Intent(); intent.setClass(MainActivity.this, SecondActivity.class); intent...

2019-11-14 21:20:44 140

转载 设计模式汇总——待完善

设计模式概述

2019-11-07 19:21:26 81

转载 组合模式——待完善

概述适用性:你想表达部分与整体层次结构。你希望用户忽略对象与单个对象的不同,用户统一的使用组合文件中的所有对象。Component可以是单个节点,也可是是一个节点集合。UML类图示例代码public abstract class Component { protected String name; public Component(String name) { ...

2019-11-06 18:21:21 112

转载 享元模式——待完善

UML图享元分为两种单纯享元:所有享元对象都是可共享的复合享元:选择性共享对象单纯享元的实现方式不复杂,使用Map储存新的对象,避免重复创建,下面讲一下复合享元:并非所有的子类Flyweight子类都需要被共享,Flyweight接口使共享成为可能,但并不强制共享。Flyweight对象的某些层次结构。UnshareFylweight对象通常将ConcreateFlyweight对象...

2019-11-06 17:58:12 73

转载 Git常用命令——需补充

若要看已经暂存起来的文件和上次提交时的快照之间的差异git diff --cached(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的,但更好记些)git log我们常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新–word-diff 新增加的单词被 {+ +} 括起来,被删除的单词被 [- -] 括起来( cont...

2019-11-06 17:48:40 100

转载 装饰模式——待完善

概述动态给一个对象添加一些额外的职责,相比生成子类更为灵活。UML类图示例代码public abstract class VisualComponent { public abstract void Draw();}public class TextView extends VisualComponent{ @Override public v...

2019-11-06 17:46:27 84

原创 Android基本Thread的使用——待完善

HandlerThreadIntentService线程池ThreadPoolExecutorRxJavaAsyncTask

2019-10-12 09:32:37 114

转载 模板方法

模板方法(Template Method)意图定义一个操作中的算法骨架,而将一些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。适用环境一次性实现一个算法的不变部分,并将可变的行为留给子类来实现。各子类中公共的行为应该被提取出来集中到一个公共父类中以避免代码重复。控制子类的扩展代码实现Game.javapubl...

2019-09-26 22:43:44 91

转载 状态模式

描述当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。思考在代码实现部分,一个对象内在状态对应一个State接口,当State接口发生改变时,其doAction方法也发生改变,如此一来状态模式和类多态的特性不就类似了吗?多态:接口的多种不同的实现方式即为多态,即同一个行为具有多个不同表现形式或形态的能力。状态的模式分为两种状态未知监听函数回调的状态通常是未...

2019-09-26 22:18:12 126

转载 策略模式

策略模式意图Strategy.javapublic interface Strategy { public int doOperation(int num1, int num2);}

2019-09-26 09:30:18 79

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除