自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Handler的使用和原理解析

Handler彻底理解本篇文章主要为了解决以下问题:Handler是什么,有什么作用,怎么使用Handler的原理能不能手写一个Handler其他常见的Handler问题Handler大家应该很熟悉。它是一种异步机制,可以从一个线程切换到另一个线程。用法很简单,大家应该都会。这个是最简单的用法。子线程中发出一个消息,主线程中更新。下图其实有警告:说匿名内部类Handle可能会产...

2019-11-01 15:26:32 209

原创 协程和Flow

过度操作符:又或者叫做流程操作符,用来区分流程执行到某一个阶段。它运行的速度很快,返回新的转换流的定义。是最基础的末端操作符,但是还有另外一些更方便使用的末端操作符。//协程执行完成后,会回调该方法,result代表了协程的结果,如果没有返回值就是Unit,如果协程体里面发生异常。CoroutineContext:协程上下文中包含的Element以及下上文的作用,传递。4. 限制操作符:流触及相应限制的时候会将它的执行取消。CoroutineScope:协程作用域的分类,以及不同作用域下的异常处理。

2023-09-06 14:22:03 115

原创 相机说明文档2.0

相机SDK使用说明流程简介预览流程拍照流程录像流程项目结构CameraY_cameraCameraY关键类CameraViewCameraYunCameraParameter总结流程简介一个相机类SDK ,主要提供预览,拍照,录像功能,再加上围绕这3个核心功能扩展出一些新的功能。比如滤镜和美颜功能,延迟摄影,画幅控制,麦克风选择等等。预览流程预览流程最先启动。初始化显示控件打开摄像头 获取支持的预览尺寸根据需求选择一个最佳的预览尺寸,矫正方向将预览尺寸设置给显示控件,并修改控件大小创建相

2021-10-22 17:40:52 421

原创 内存泄漏检测和处理

内存泄漏工具和分析:1.Eclipse中使用:比较麻烦 需要集成3个jiar然后 进行配置。具体可以看:参考示例简单的说1.加载 DisplayLeakActivity(展示UI). LeakAnalyzer(分析),LeakWatcher.(监听)2.项目添加依赖项目:DisplayLeakActivity3.新建一个Applicationpublic class LeakcanaryApp extends Application{ private RefWatcher refWatc

2021-03-17 11:33:52 250

原创 Android知识体系思维导图

Android体系Android知识体系基础实战Android思维导图Android知识体系知识体系这个东西都大家都听过,也知道它非常的重要的,平时也会再其他的地方看到别人放出来的思维导图。但是大家有没有想过自己的思维导图是什么样的。这个一点其实非常的重要的。因为android的知点非常的多设计Java C/C++ Android技术 虚拟机等等,如果没有一个体系就很容易遗漏,学的东西也很不全面。自己心里也没底,感觉自己这也不会那也不会,对自己就没有一个很清晰的认识。有了知识体系我们学习的时候就会有个

2020-05-17 22:44:05 1361

原创 Android学习方法和计划制定

Android学习方法和知识体系学习方法计划制定学习方法学习方法的重要 这个是毋庸置疑的,好的学习方式可以做到事半功倍,同样不好的学习方法那就是 事倍功半了那到底什么样的学习方法才是好的学习方法?这个其实没有统一的答案,只能说适合自己的方法才是最好的。那什么才算适合,这个问题只能问自己了。曾我也各种搜索学习方,在知乎上看了各种答案,已买了书如《 学习之道》,《刻意练习》《金字塔原理》等什么番茄时间法,思维导图法都搞起来。不过效果并不明显,我陷入怀疑,这个学习方法到底靠不靠谱。所幸最终我找到了自己的答案

2020-05-17 22:08:19 223

原创 Android内存映射

内存映射想理解这个知识点,我们首先要知道内存的概念和映射的概念。内存的基本概念我们先看一张计算的组成图:内存一般分为只读存储器(ROM)和随机存储器(RAM),以及最强悍的高速缓冲存储器(CACHE),只读存储器应用广泛,它通常是一块在硬件上集成的可读芯片,作用是识别与控制硬件,它的特点是只可读取,不能写入。随机存储器的特点是可读可写,断电后一切数据都消失,这两者一起就构成了我们硬件上的...

2020-04-28 11:42:46 1862 1

原创 Android JNI使用和原理分析

JNI原理分析用法很比较简单。1.编写java文件,使用关键字native 2.编写头文件。3实现C++代码。4编译出SO 5.集成调用。1.编写JAVA创建Java文件:package com.zx.testjni;public class JNITest {static{ System.loadLibrary("testjni");}public static nati...

2020-04-26 09:41:02 397

原创 Binder机制完全理解

Binder机制看过了很多关于Binder的文章,但是总感觉模模糊糊的,没抓住重点。所以写下此文,梳理自己理解的Binder。

2020-04-10 17:25:44 84

原创 Android强化01-Activity

Activity

2020-04-02 10:51:20 101

原创 Java虚拟机10-特点

虚拟机内存布局与GCClass文件 和 类加载类运行

2020-01-11 16:31:18 926

原创 Java面向对象09-特性

语言特点

2020-01-10 11:41:04 120

原创 Java进阶07-线程安全

线程安全定义1.什么是线程安全当多个线程 同时去操作 共享资源时 能够得到正确的结果就是线程安全。2.为什么会有线程安全问题。由于计算机的CPU运算能力比起和内存的交互能力高几个数量级,为了不浪费CPU的运算能力,所以在主内存和CPU之间增加了一层高速缓存。每次计算前,先从主存中读取数据到高速缓存中,之后的计算就是通过高速缓存。等到最终计算完成后,再通过协议把高速缓存中的结果同步回...

2020-01-08 15:12:53 169

原创 Java进阶07-线程池

线程池定义1. 线程池是什么?线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。多线程的异步执行方式,虽然能够最大限度发挥多核计算机的计算能力,但是如果不加控制,反而会对系统造...

2020-01-08 12:39:49 118

原创 Java进阶07-多线程定义

线程线程多线程线程池线程同步定义解释如何使用优点缺点源码原理使用场景总结

2020-01-08 12:04:06 183

原创 Java进阶08-集合框架

集合接口Map接口定义解释为什么要有集合框架?早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同。集合框架被设计成要...

2019-12-30 15:16:22 161

原创 Java进阶06-网络编程,编码格式

网络编程定义解释如何使用有何利弊原理源码使用场景总结

2019-12-13 16:44:46 434

原创 Java进阶05-枚举、注解

枚举和注解枚举定义解释怎么使用优点缺点原理源码使用情景注解定义解释怎么使用优点缺点原理源码使用情景

2019-12-03 17:04:29 163

原创 Java进阶04-动态代理、类加载

动态代理和类加载本节主要复习动态代理和类加载机制。这2个知识点是非常重要的,也是很常见的,可能我们自己用的并不多,但是很多框架中的基础都是它们2个。如果不知道这些知识 那么看那些开源框架的源码就会很吃力。是谓 基础不牢地动山摇类加载还是按标准的灵魂5问来学习:什么是类加载怎么使用类加载类加载的优缺点类加载的原理类加载的使用场景什么是类加载类加载是一种机制是一套流程和动作。...

2019-11-25 16:54:55 926

原创 Java进阶03-反射,泛型

Java进阶知识点-反射和泛型老规矩先放一张思维导图镇楼Java中的进阶知识点有很多,这一篇主要学习反射和泛型。可以说这2个知识点我们自己平时的开始用的可能不多,但是系统源码和网上的第三方开源库中用到的是非常多。如果rxjava ,热修复,dagger2 ,等等都需要用到,还包括Hook点啊 动态代理 AOP APT 啊等等。所以掌握好反射 是学习这些框架的基础。老规矩接下来还是从下面几个方...

2019-11-22 17:43:48 178

原创 Java基础02-数组,IO,异常处理

5.数组数组也没好说的,即是注意 数组其实也是引用类型数据。Arrays 类java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:给数组赋值:通过 fill 方法。对数组排序:通过 sort 方法,按升序。比较数组:通过 equals 方法比较数组中元素值是否相等。查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查...

2019-11-11 16:35:13 128

原创 Java基础01-环境,数据类型,String

Java复习01-基础知识点本次的基础知识点复习会有深度的复习,尤其是原理等是重点,做到知其所以然。1.环境变量配置理解、大家都知道开发一个java程序 打印出hello world 的流程基本有以下步骤:下载JDK,安装JDK配置环境变量编写代码以.java保存运行JavaC编译生成xx.class 文件运行Java xx.class文件,控制台输出大家想过其中的原因没,为什...

2019-11-06 17:52:02 150

原创 SeekBar禁止点击

SeekBar禁止点击项目有个需求是Seekbar禁止点击 只能拖动。本来想直接 网上找找 看有什么直接设置的方法,但是找了一圈下来又看了源码,发现原生的Seekbar没有提供相应的API。没办法只能通过自定义了。要准备的知识点:1.事件分发机制2.滑动的原理简单说 事件分发是 自上而下,然后再自下而上。滑动就是 获取触摸点的坐标 然后不断设置控件的位置。有了这2个知识点就可以开始了...

2019-11-06 16:50:34 1099 1

原创 新建项目报错Execution failed for task ':app:mergeDebugResources'.

Execution failed for task ‘:app:mergeDebugResources’.造成这个错误的原因有很多。比如网上说的png图片问题。图片不合法等。但是如果你新建的项目就报这个错误,而且从log信息里面也找不出什么有用信息。然后还有如下AAPT2 aapt2-3.5.1-5435860-windows Daemon #7: Daemon startup failed...

2019-10-12 16:33:31 2613

原创 Android Unable to detect adb version, exit value: 0xc0000139

studio 识别不到手机Unable to detect adb version, exit value: 0xc0000139很有可能是升级了platform-tools导致的 里面的adb.exe 文件错误了。所以需要把adb.exe文件还原就好了。...

2019-10-10 10:35:27 2309

原创 java线程学习记录

线程什么是线程线程的作用线程的使用什么是多线程多线程会有哪些问题什么是多线程并发什么是线程同步怎么实现同步线程锁是什么怎么实现锁...

2019-08-15 17:52:03 125

原创 二叉树理解与遍历

数据结构-树树的定义树是n个有限节点的集合。n=0时称为空树。在任意一颗非空树中:1.有且仅有一个特定的称为根的节点2.当n>1时其余节点可分为m(m>0)个互不相交的有限集T1,T2,T3…Tm,其中每一个集合本身又是一棵树,并且称为根的子数。树的特性度 :节点拥有的子树数称为节点的度。度为0的节点称为叶节点,根节点,内部节点。树的度是树内各节点的度的最大值。节点的...

2019-07-31 09:42:49 93

原创 设计模式之禅-思考上

6大基本原则程序是面向现实的抽象。单一职责:类的功能尽量单一,职责单一,只干一类事情。应该有且仅有一个原因引起类的变更。这个要根据实际项目来设计 类的职责。尽量做到单一。里式替换 :所有引用基类的地方必须能透明的使用其子类的对象。就是说 有可能变化的地方,和耦合的地方 尽量使用 接口或者抽象父类 声明参数。这样后期容易修改。依赖倒置 :高层模块不应该依赖低层模块,两者都应该依赖其抽象。抽象...

2019-07-29 11:18:28 251

原创 重构改善既有代码的笔记

注:仅为学习重构的 随笔记录。和自己的体会记录。1.代码一定要有分层的思想,和做蛋糕一样一层一层2.唯一不会变化的就是变化本事3.符合6大基本原则4.面向接口,面向对象编程5.不断的思考哪里还可以修改,还可以更加简洁,分层 层次更加清晰当你发现需要添加一个新的特性很麻烦的时候,就需要重构了。因为好的代码,是具有易扩展,易维护,健壮性,可读性。搞聚合低耦合的。重构第一步:建立可靠的测试...

2019-07-22 11:58:20 191

原创 6大排序

数据结构定义:一系列的数据按某种结构组合起来数据:描述客观事物的符号,是计算机可以操作的对象,能被计算机识别,并输入给计算机处理的符号集合。数据元素:是组成数据的,有一定意义的基本单位,在计算中通常作为整体处理,被称为记录。数据项:一个数据项可以由如若干个数据元素组成。是数据不可分割的最小单位。数据对象:是性质相同的数据元素的集合,是数据的子集。数据结构:是相互之间存在一种或多种特定...

2019-07-17 10:54:02 142

原创 Handler传递多个对象刷新UI

场景:B类刷新A类中的UI,如果一个后台加载图片的线程刷新activity中的图片。发送:public String loadVideoInfoImage(VideoInfo video, ImageView imageView, TextView textView) { Message msg = handlerImage.obtainMessage(); ...

2018-07-02 15:27:32 1315

原创 Android TextView文本过长时渐隐显示

最简单的方式实现TextView文字过长渐隐,效果如下图:   具体实现如下:package com.example.picturetest.textview;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics...

2018-06-26 15:28:02 2785

LeakCanary.rar

用于内存泄漏检测 在Eclipse上使用 最后的一个版本 23 6.0.使用方法参考里面的文档。23之后就只能在studio上使用了。目前最新的版本是2.2。 上传的是1.5

2020-05-06

Aplatform-tools.rar

有时升级了platform-tools 后会出现 adb无法连接的情况。提示: Unable to detect adb version, exit value: 0xc0000135. 把里面的adb.exe替换一下就行了。

2020-04-29

SlideSeekBar.java

通过自定义Seekbar实现禁止点击 或者禁止滑动 或者点击和滑动都禁止 或者不处理

2019-11-06

空空如也

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

TA关注的人

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