自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

空中的晨曦博客

不负光阴

  • 博客(46)
  • 资源 (9)
  • 收藏
  • 关注

原创 直方图以及直方图均衡化

是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。是图像的统计学特征。简单来说:直方图是图像中像素强度分布的图形表达方式,它统计了每一个强度值所具有的像素个数。图像直方图不关心像素所处的空间位置,因此不受图 像旋转和平移变化的影响,可以作为图像的特征。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所 占的多少。

2023-10-31 23:34:38 110

原创 STM32外部Flash移植FATFS笔记

STM32 外部Flash 移植FATFS文件系统

2022-11-12 13:03:14 2411 1

原创 STM32 CAN过滤器标识符学习笔记

STM32 CAN通信中的标识符过滤学习笔记

2022-11-06 00:05:41 1274 1

原创 CAN 协议学习笔记

CAN学习笔记

2022-11-05 14:47:49 886

原创 STM32F103Timer学习笔记--寄存器版本

STM32F103 TIMER3--CHANNEL2--PWM

2022-10-24 00:51:43 1890

原创 STM32 外部中断学习笔记-------寄存器分析

STM32寄存器版本原理分析外部中断配置

2022-10-23 00:06:04 956

原创 flutter 网络请求封装

总体的思路,借助Dio,将其封装为一个工具类(dio_utils.dart) 封装请求服务(service_api.dart) 根据请求参数封装 请求model (RequireModel) 根据返回数据类型封装返回Entitiy(list_entity.dart。因为返回的data中是一个list,如果是一个string,直接在entiy中解析好,上层进行调用即可) data中的单个对象进行封装(PersionEntity),方便解析 使用总的来说封装了这么多就是为了后期使用方便。.

2021-01-13 17:48:20 1786 3

原创 自己写一个flutter插件

某些场景下或者现有pub插件无法满足我们的需求的时候需要自己写一个插件现在有这样一个场景,需要给定一个图片的url,然后下载图片到指定目录中(/storage/emulated/0/Android/data/com.zx.plugintest/files/Caches)。现在有一个插件,image_gallery_saver ,但它将网络文件保存在了我们的相册目录中。1、在flutter根目录下新建一个flutter 插件打开androidstudio terminalflutter..

2021-01-13 16:51:39 2150 4

原创 Flutter与android原生通信

Flutter与 Android/iOS 之间信息交互通过 Platform Channel 进行桥接; Flutter定义了三种不同的 Channel;但无论是传递方法还是传递事件,其本质上都是数据的传递;1. **MethodChannel:用于传递方法调用;**2. **EventChannel:用于数据流信息通信;**3. **BasicMessageChannel:用于传递字符串和半结构化的信息;** 每种 **Channel** 均包含三个成员变量;1. **n...

2021-01-13 14:53:45 1046

原创 Java存储数据List Map Set 简单对比

ArrayListArrayList底层是一个list接口的可变数组的非同步实现,包括null,扩容1.5倍,性能消耗严重,所以在初始化的时候,最好指定容量。https://www.cnblogs.com/leesf456/p/5308358.htmlLinkedListLinkedList底层使用的双向链表结构第一个节点数据prev = null ,最后一个数据节点next = nullhttps://www.cnblogs.com/leesf456/p/5308843.html

2020-10-14 15:31:05 302

原创 Java 中的Synchronized 和 ReentrantLock

Java 中的Synchronized 和 ReentrantLock在java中,解决同步问题,很多时候都会使用到synchronized和Lock,这两者都是在多线程并发时候常使用的锁机制Synchronized 是属于JVM层面的锁,相当于如果我们给某个方法或者变量增加Synchronized关键字,这个方法或者变量的锁的管理就会由系统来自动管理synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问。使用方式synchronized

2020-09-29 16:32:38 224

原创 Android 对于外部TF(SD)卡和U盘的读写操作

首先读取外置TF卡,需要获取到外置TF卡的权限,因为Android 在4.4版本之后 引入了外部存储访问的框架(SAF)。SAF其中的部分功能就是通过其获取对外置TF卡的读写权限,从而操作外置TF卡。在Android7.0时对外部存储进行了简化1、TF卡读写操作1.1获取TF卡权限private void showOpenDocumentTree(String rootPath) { Intent intent = null; if (Build.VERSION.SDK_I

2020-09-17 00:12:06 5223 4

原创 通过Socket通信理解TCP机制

通过Socket通信理解TCP1、什么是TCP协议TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。即客户端和服务器之间在交换数据之前会先建立一个TCP连接,才能相互传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。2、什么是Socket协议网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket里面已经封装好了UDP和TCP/IP协议,直接使用就可以了。网上好多说TCP 三次握手 四次

2020-09-10 22:06:47 283

原创 51单片机驱动16*64点阵

单片机驱动74HC595做行控制,74HC154做列控制。74HC595说明:一个串行输入,并行输出的芯片引脚12:寄存器时钟 RCK (REGISTER CLOCK)引脚14:数据串行输入引脚DS (DATA SERIAL)引脚11:数据输入时钟,在上升沿给数据到14引脚(SERIAL CLOCK)。例如送一个八位的数据,00110011 ,先送高位,后送低位。 ...

2019-11-30 00:01:56 3676 24

原创 OpenCV 在AndroidStudio 的环境搭建

OpenCV AndroidStudio 环境搭建1、SDK下载:https://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-android/3.2.0/opencv-3.2.0-android-sdk.zip2、新建AndroidStudio工程 新建android 工程将opencv-3.2.0-a...

2019-08-08 22:17:04 345

原创 okhttp3.0忽略https证书

okhttp的基本使用网上很多,可以自己找到很多例子。最近有个项目需要https 进行验证发送请求回来error 提示 host not vertify,琢磨了半天,最后是需要将证书认证忽略,那就开始构建一个SSL来信任所有的证书,忽略证书其实就是如此。最原始的使用如下String url = "https://wwww.baidu.com";OkHttpClient okHttp...

2019-06-13 22:01:22 3463 2

转载 一张图看明白Git的四个区五种状态

五种状态间的顺序操作四个区工作区(Working Area) 暂存区(Stage) 本地仓库(Local Repository) 远程仓库(Remote Repository)五种状态未修改(Origin) 已修改(Modified)&未追踪(Untracked) 已暂存(Staged) 已提交(Committed) 已推送(Pushed)顺序操作第零步:...

2019-04-05 03:17:39 711

原创 Git cherry-pick 使用 --- Git(3)

git cherry-pick <commit id>实际问题我在master 分支修改了一个bug(一次commit),希望可以在testbranch 也能够进行修改(也就是要把这个bug修改放到testbranch 上)使用 cherry-pick. 根据 git 文档:Apply the changes introduced by some existing ...

2019-04-05 02:54:35 398

原创 Git 撤销操作 ---Git(2)

先上一张总图:然后进行分析:1、修改后的撤销 git checkout -- xxx,比如如果abc目录下有多个文件修改,且需要撤销,可以git checkout --abc2、git add后的撤销 git reset HEAD xxx 然后执行 git checkout -- xxx 就恢复到初始模样了。3、如果已经commit 了 ...

2019-04-05 02:48:18 124

原创 Git 分支机制简介 ---Git(1)

在git 上新建一个远程空的分支用来测试,本地创建readme.txt来进行修改。提交。$ git init$ git status$ git add .$ git commit “first create readme”$ git remote add origin https://github.com/UserNamezhangxi/testgit.git$ gi...

2019-04-04 00:27:35 221

原创 Android架构分析之硬件抽象层(HAL)

一、分析HAL module 架构Android硬件抽象层有三个核心数据结构,分别是hw_module_t , hw_module_methods_t, hw_device_t。定义在hardware/libhardware/include/hardware/hardware.h文件中:1、hw_module_t:typedef struct hw_module_t { /*...

2019-02-17 21:07:08 1209 1

原创 Android系统启动流程,从init.rc 到 launcher 加载过程分析

Android系统启动流程,从init.rc 到 launcher 启动过程分析目录1、zygote 启动分析1.1、init进程的入口函数1.2、解析init.rc1.3、app_main.cpp 解析zygote启动参数1.4、ZygoteInit.java 进入Java的地盘1.5、Zygote进程启动总结:2、启动systemServer2.1、syst...

2019-02-08 20:57:41 1736 1

原创 用SecureCRT连接虚拟机中的Linux系统(Ubuntu)

1、检查下你的机器window(宿主机)的桥接有没有禁用。2、互相ping 通        进入到Ubuntu下,先查看Ubuntu虚拟机的IP配置,打开终端(Ctrl+Alt+T),通过ifconfig命令查看,可以看到Ubuntu下的IP地址信息。回到window win+R--&gt;cmd--ipcong 查看你的电脑的ip,先分别在Windows上ipconfig和Ubun...

2019-02-01 00:20:30 558

原创 Binder 连接池的学习

利用AIDL方式能很方便地进行客户端和服务端的跨进程通信。但是,我们想一下,如果按照我们之前的使用方法,必须满足一个AIDL接口对应一个service,那么问题来了,假如我们的应用,有很多业务场景,而每一个业务场景都需要和服务端通讯,那么我们也要为每一个模块创建特定的aidl文件,那么服务端service也会产生很多个,显然,如果aidl接口变多,那么service也会跟着变多,我们不可能无限制或...

2019-01-02 21:36:47 232

原创 Android Service 两种启动流程探索

android 四大组件service 有两种启动方式第一种方式:通过StartService启动Service通过startService启动后,service会一直无限期运行下去,只有外部调用了stopService()或stopSelf()方法时,该Service才会停止运行并销毁。要创建一个这样的Service,你需要让该类继承Service类,然后重写以下方法: onC...

2018-12-24 13:55:44 1100

原创 Activity 的启动分析 ( 9.0 )

Activity 的启动系统已经做了很多的封装,使得我们在开发的时候不用去关注底层的东西,需要一句代码就可以搞定拉起一个ActivityIntent intent = new Intent(this,TestActivity.class);startActivity(intent);用过上面的代码就可以启动一个Acitivty,Activity的启动有很多的重载,但是最终跟踪源码都可以...

2018-12-07 01:40:48 808

原创 ThreadLocal 的工作原理

ThreadLocal  是线程的内部数据的存储类,通过它可以在指定线程中存储数据,数据存储以后只有在指定的线程中才能获取到对应的存储的数据,其他线程无法获取到数据。下面通过一个小块代码来分析一下它的使用:private ThreadLocal&lt;Boolean&gt; mBooleanThread = new ThreadLocal&lt;Boolean&gt;();......

2018-12-04 22:55:41 359

原创 Android中Drawable的分类

Drawable 的分类1 BitmapDrawable:BitmapDrawable算是最常见的Drawable之一,我们构造一个Bitmap对象的时候,有时候会用到BitmapDrawable,那么BitmapDrawable的构造,除了在代码中new一个BitmaDrawable之外,我们还可以使用XML来构造一个BitmapDrawable对象,在项目的drawable文件中新创建...

2018-10-27 22:03:56 1115

原创 View 的事件分发

事件分发机制1.1. 事件分发的顺序:Activity -&gt; ViewGroup -&gt; View1.2. 事件分发涉及到的方法public boolean dispatchTouchEvent(MotionEvent ev) 事件过来的时候首先拜访这个方法,由这个方法决定,是不是需要向子类下发,如果有父类可以向父类分发(需配合requestDisallowIntercep...

2018-10-18 18:03:56 136

原创 Android Messenger 进程间通信

前面我们介绍了 进程通信 AIDL 的学习和使用,这篇文章来介绍下 Android 中另一种 IPC 方式:Messenger。Messenger“信使”,顾名思义,通过它可以在不同的进程中传递Message对象,在Message中放入我们要传递的内容,就可以实现进程间通信了。Messenger是一种轻量级的IPC 方案。Messenger 有两个构造函数:以 Handler 为参数以 ...

2018-09-26 22:36:00 392

原创 进程通信 AIDL 的学习和使用

AIDL的使用本文从以下来进行介绍AIDL1. 什么是AIDL2. AIDL 支持的数据类型3. AIDL 如何编写,并且实际操作完成一个简单的AIDL应用4. 实现自定义数据类型的传递1. 什么是AIDL?Android Interface Definition Language,即Android接口定义语言。 为什么会有AIDL呢,因为每一个应用都...

2018-09-11 23:08:14 235

原创 Android 动画---布局动画(三)

布局动画就是在给ViewGroup增加子View的动画过度效果。最简单的布局动画就是在ViewGroup的XML中打开一个系统默认的效果android:animateLayoutChanges="true"还可以通过LayoutAnimationController实现自定义子view的过渡效果LayoutAnimationController 第一个参数是需要的动画,第二个参数...

2018-09-06 11:15:39 167

原创 Andoird 动画---属性动画(二)

1、ObjectAnimator        在3.0系统之后,Android为我们提供了一种新的动画——Animator属性动画。在属性动画中,我们不仅可以像补间动画那样设置控件的透明度、缩放、平移或旋转的动画,还可以做到将这些动画联合起来播放、将一组动画按顺序播放、控制动画的播放速度,甚至可以对非View设置动画等等。        简单的说就是改变动画的某一个属性,从而控制动画的某...

2018-09-06 10:49:40 191

原创 React native 实现音乐播放图片暂停播放效果

首先动画 旋转动画搞起来在构造里面添加旋转的定义constructor(props) { super(props); this.state = { rotateValue: new Animated.Value(0), //旋转 }; this.isPause = false; this.mAnimate = Animated.timing(this.stat...

2018-08-18 20:10:00 959

原创 Android动画---视图动画 (一)

Android 视图动画分为:透明度动画 AlphaAnimation 旋转动画 RotateAnimation 位移动画 TranslateAnimation 缩放动画 ScaleAnimation 每一个动画的参数比较容易理解,这里我们直接使用一个例子来验证一下。首先我们直接使用Java 代码来实现:首先创建一个AnimSetDemo 的工程。activity_main...

2018-08-12 21:56:22 234

转载 Android状态栏微技巧,带你真正理解沉浸式模式

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/51763825 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这...

2018-08-11 17:49:51 232 1

原创 Android DrawBitmapMesh 实现红旗飘扬效果

import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Matrix;import android.support.annotatio...

2018-08-06 21:51:11 719

原创 Android 的变形矩阵 -Matrix

图片色彩的变换 android 提供了 ColorMatrix. 现在图像变换android 同样提出了Matrix,这个矩阵是一个3×3的矩阵,其初始值为 的一个矩阵。图像的变形处理通常包含以下四类基本变换: ● Translate——平移变换 ● Rotate ——旋转变换 ● Scale——缩放变换 ● Skew——错切变换Translate : 平移改变如下矩阵中的值只需要改变 △x  和...

2018-07-03 23:08:17 395

原创 React-redux 学习

React-Redux 学习react-native 的数据传递是父类传递给子类,子类通过this.props.**读取数据,这样会造成组件多重嵌套,于是用redux可以更好的解决了数据和界面View之间的关系, 当然用到的是react-redux,是对redux的一种封装。当然我个人局的使用react-redux 在频繁刷新state的场景下会提升性能。react基础的概念包括:1.    ac...

2018-06-13 23:11:56 166

原创 Android 改变色光属性

在android 中 封装了一个 ColorMatrix 类,专门用来进行图像的颜色处理。主要用到的还是其中的:色调,饱和度,和亮度。·色调:ColorMatrix hueMatrix = new ColorMatrix();hueMatrix.setRotate(0,hue0);hueMatrix.setRotate(1,hue1);hueMatrix.setRotate(2,hue2);...

2018-06-11 22:18:26 202

train_log.part5.rar

train_log.part5

2024-03-19

train_log.part4.rar

train_log.part4

2024-03-19

train_log.part6.rar

train_log.part6

2024-03-19

train_log.part2.rar

train_log.part2

2024-03-19

train_log.part1.rar

train_log.part1

2024-03-19

train_log.part3.rar

train_log.part3

2024-03-19

ZBar_STM32F4.zip

Zbar stm32 二维码解析

2021-01-22

SVG-VECTOR.rar

将*.svg 资源转换为 android 所需的xml 文件,可以在任何android 设备上适配不失真。

2021-01-18

ffmpeg.exe

ffmpeg.exe -re -i d:\video\video.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://127.0.0.1:1935/live/home

2021-01-18

gparted-live-0.25.0-3-i686.iso

ubuntu vmware 用于进行 磁盘分区的扩展,需要提前进行分区设置,可参考相关文章:https://blog.csdn.net/qq_33475105/article/details/80297259?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242

2020-12-14

jdk-6u45-linux-x64.zip

jdk-6u45-linux-x64.zip 解压后即可获得同名的bin文件........jdk-6u45-linux-x64.zip 解压后即可获得同名的bin文件.

2020-11-24

1664点阵仿真图.zip

protues 仿真51单片机控制 74HC595级联 和74HC154 来驱动16*64点阵 protues 仿真51单片机控制 74HC595级联 和74HC154 来驱动16*64点阵 protues 仿真51单片机控制 74HC595级联 和74HC154 来驱动16*64点阵 protues 仿真51单片机控制 74HC595级联 和74HC154 来驱动16*64点阵

2019-11-30

点阵1664.docx

描述单片使用74HC595和74HC154机驱动16*64点阵的过程,并且含有程序和注释。 描述单片使用74HC595和74HC154机驱动16*64点阵的过程,并且含有程序和注释。 描述单片使用74HC595和74HC154机驱动16*64点阵的过程,并且含有程序和注释。

2019-11-30

Window 内部机制(Activity+Toast)

描述了window的基本工作原理以及 Activity 和 Toast 使用的基本实现源码大概分析

2018-11-05

Window 内部机制思维导图总结

通过图形总结 阐述《Android 艺术开发探索》中讲到的Window的内部机制

2018-10-30

空空如也

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

TA关注的人

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