自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 manjaro 安装分区以及配置方案

制作启动盘 windows下制作启动盘 推荐在windows下使用Rufus工具来制作启动盘,做成启动盘后还能用来存储文件 linux下制作启动盘 使用dd命令,使用该命令做成启动盘后U盘就不能用来存储文件了,具体命令格式可以看wiki https://wiki.m...

2020-04-21 21:20:02 55609 5

原创 Android LruCache 原理

Android LruCache 原理 LruCache是基于Least Recently Used(最近最少使用)算法实现的一个线程安全的数据缓存类,当超出设定的缓存容量时,优先淘汰最近最少使用的数据 LruCache的LRU缓存策略是利用LinkedHashMap来实现的,并通过封装get/p...

2020-01-31 16:20:24 86 0

原创 Java LinkedHashMap 原理

Java LinkedHashMap 原理 LinkedHashMap是基于哈希算法,以键值对的形式存储和操作数据的非线程安全容器,继承于HashMap,在HashMap的基础上增加了双链表来支持插入顺序遍历,除此之外对操作顺序遍历也提供了支持,可用于实现LRU缓存 操作性能也保证了O(1),根据...

2020-01-21 17:44:32 123 0

原创 Java ConcurrentMap 原理

Java ConcurrentMap 原理 HashMap在设计上是非线程安全的容器,当出现并发情况时会导致类似CPU占用100%等问题 Hashtable以及Collections.synchronizedMap实现的线程安全Map容器都只是在各个方法中加了synchronized同步锁,仅适合...

2020-01-16 19:14:56 185 0

原创 Java HashMap 原理

Java HashMap 原理 HashMap是基于哈希算法,以键值对的形式存储和操作数据的非线程安全容器,支持null键和值,添加删除等操作在无哈希冲突情况下时间复杂度为O(1),不保证有序 内部结构 ... // 存储元素的数组,长度总是2的幂数 transient Node<k,v&g...

2020-01-10 15:45:42 96 0

原创 Java ReentrantLock 原理

Java ReentrantLock 原理 ReentrantLock是Java5引入的可重入锁,Lock的实现类,相比synchronized它提供更精细的同步操作,高竞争场景表现好 主要有如下几个特点: 可以设置公平性,设置后会倾向于将锁赋予等待时间最久的线程,减少线程饥渴 具备尝试非阻塞地...

2019-12-26 11:02:33 79 0

原创 Java AtomicInteger 原理

Java AtomicInteger 原理 AtomicInteger是一个支持原子操作的int封装类,提供了原子性的访问和更新操作 其底层是通过volatile和CAS实现的,其中volatile保证了内存可见性,CAS算法保证了原子性 volatile volatile是用于保证可见性的关键字...

2019-12-23 20:02:01 118 0

原创 Java synchronized 原理

Java synchronized 原理 synchronized是Java内建的同步机制(Intrinsic Lock),提供了互斥的语义和可见性 主要有如下几个特点: 可用于修饰方法、代码块等,修饰代码块时以对象(this)或类(xxx.class)作为同步单位 自动获取和释放锁,即使在同步...

2019-12-12 14:34:55 68 0

原创 Java 进阶知识点

java进阶知识点 线程安全概念 线程安全就是保证多线程环境下共享的、可修改的状态或数据的正确性 线程安全特性: 原子性:相关操作不会中途被其他线程干扰,一般通过同步机制实现 可见性:一个线程修改了某个共享变量,其状态能够立即被其他线程知晓,就是被修改的状态能够立刻反映在内存中,通过volati...

2019-12-12 14:34:11 43 0

原创 Java 基础知识点

java基础知识点 谈谈对Java的理解 特性: 面向对象:封装,继承,多态 跨平台:编写一次,到处运行(Write once, run anywhere) 垃圾收集:通过垃圾收集器(Garbage Collector)自动回收分配内存 开发: JRE:Java运行环境,包含JVM,类库等 ...

2019-11-28 13:04:38 39 0

原创 Android SAF存储访问框架

Android SAF存储访问框架 SAF存储访问框架 首先介绍下SAF存储访问框架:在Android 4.4中引入的一套存储访问框架(Storage Access Framework),借助 SAF,用户可轻松在其所有首选文档存储提供程序中浏览并打开文档、图像及其他文件。用户可通过易用的标准界面...

2019-11-16 18:03:39 893 0

原创 kotlin中使用AutoClosable特性进行复制文件

kotlin中使用AutoClosable特性进行复制文件 java7以后提供了try with resources与AutoClosable两个特性,使得复制文件方式简洁了些: private void copyFile(String srcPath, String dstPath) { ...

2019-11-16 16:43:40 96 0

原创 Android 监听U盘OTG挂载状态

Android 监听U盘OTG挂载状态 本篇博客介绍下在Android系统中,如何监听和获取U盘OTG挂载状态 在Android中插入U盘时,系统会先准备U盘并检查是否有错误,检查完成后才会把U盘挂载到系统中。因此U盘插入和检查U盘错误这个两个阶段都不能算是U盘挂载状态,我们要获取的状态是检查完成...

2019-11-16 15:00:29 345 0

原创 Android 包含水波纹效果的圆角Button

drawable文件夹下新建文件button_ripple.xml,添加如下内容 <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schem...

2019-10-18 11:06:08 262 0

原创 Android 设置系统时间

Android 6.0 提供了新的date命令格式 Default SET format is "MMDDhhmm[[CC]YY][.ss]", that's (2 digits each) month, day, hour (0-23), and minute. O...

2019-10-17 17:13:00 337 0

原创 使用gradle实现不同productFlavors对应不同资源文件

使用gradle实现不同productFlavors对应不同资源文件 本文介绍下如何实现不同productFlavors对应不同资源文件,并且在不同资源文件的情况下,控制不同的逻辑 res作为基础资源文件,添加一个res-flavors文件夹,里面建立productFlavors对应的资源文件 ...

2019-09-19 16:52:10 726 0

原创 Android中Activity、Dialog、Toast的Window创建过程

Android Window的创建过程 Android中可以提供视图的地方有Activity、Dialog、Toast,除此之外还有一些依托Window而实现的视图,比如PopUpWindow、菜单,因此Activity、Dialog、Toast等视图都对应着一个Window,本篇将分析这些是土元...

2019-09-17 20:05:18 73 0

原创 Android 理解Window和WindowManager

Android 理解Window和WindowManager Window表示的是一个窗口的概念,它是一个抽象类,具体实现是PhoneWindow。 创建一个Window只需要通过WindowManager即可完成,WindowManager是外界访问Window的入口。Window的具体实现是在...

2019-09-05 13:34:47 150 0

原创 Android 属性动画工作原理

Android 属性动画工作原理 属性动画要求作用的对象必须有set方法,它会根据传递的初始值和最终值以动画效果多次调用set方法,随着时间的推移,所传递的值越来越接近最终值。如果动画的时候没有传递初始值,则需要提供get方法,可以让系统获取属性的初始值。 首先我们根据ObjectAnimator...

2019-08-20 22:38:18 75 0

原创 Android View 工作原理分析

View的工作原理分析 View的工作流程主要是指measure、layout、draw这三大流程,即测量、布局和绘制,其中measure确定View的测量宽/高,layout确定View的最终宽/高和四个顶点的位置,而draw则将View绘制到屏幕上。 measure过程 measure过程分两...

2019-08-20 16:18:21 68 0

原创 Android在Activity中获取View宽高

Android在Activity中获取View宽高 在onCreate、onStart、onResume中获取不到View的宽高,因为View的measure过程和Activity的生命周期方法不是同步执行的,无法保证Activiy执行了onCreate、onStart、onResume时某个Vi...

2019-08-18 22:39:12 107 0

原创 Android View 工作原理基础

View 工作原理基础 本章主要介绍View的工作原理,了解了工作原理后才能作出比较完善的自定义View,View需要掌握三大流程:measure、layout和draw,除了三大流程以外,还需要掌握常见的回调方法,比如构造方法、onAttach、onVisibilityChanged、onDet...

2019-08-15 13:37:56 53 0

原创 使用java nio进行 float 数组与 byte 数组之间的转换

使用 java nio 进行 float 数组与 byte 数组之间的转换 float数组转换为byte数组 public static byte[] floatArrayToByteArray(float[] floats) { ByteBuffer buffer = ByteBuffe...

2019-08-06 12:46:15 505 0

原创 Android View 事件分发机制

Android View 事件分发机制 点击事件传递规则 在分析点击事件传递规则之前,首先要分析的对象是MotionEvent,点击事件的事件分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,而这个传递的过程...

2019-08-05 13:59:53 121 0

原创 Android View 滑动

Android View 滑动 View 滑动 有三种方式可以实现View的滑动: 通过View本身提供的scrollTo/scrollBy方法来实现滑动 通过动画给View施加平移效果来实现滑动 通过改变Viev的LayoutParams使得View重新布局从而实现滑动 使用scrollTo...

2019-07-21 18:41:21 137 0

原创 Android View 事件基础

Android View 基础 View 基础知识 本节主要介绍:View的位置参数、MotionEvent和TouchSlop、VelocityTracker,GestureDetector和Scroller对象 什么是View View是Android中所有控件的基类,是界面层的一种抽象,代表...

2019-07-18 22:48:59 238 0

原创 Ubuntu16.04 编译 Dlib for Android(更新版)

Ubuntu16.04 编译 Dlib for Android(更新版) 本文为https://blog.csdn.net/lj402159806/article/details/76767882的更新版 编译版本 OpenCV 19.17 ndk-r20 编译环境 首先需要安装sdk...

2019-06-11 15:03:10 121 0

原创 Ubuntu16.04 编译 OpenBLAS for Android(更新版)

Ubuntu16.04 编译 OpenBLAS for Android(更新版) 本文是https://blog.csdn.net/lj402159806/article/details/85691400这篇OpenBLAS编译部分的更新版 编译版本 openblas-0.3.6 ndk-...

2019-06-11 14:46:52 457 12

原创 Android JNI 使用assets加载dlib特征点文件shape_predictor

Android JNI 使用assets加载dlib特征点文件shape_predictor 本文介绍如何在jni中加载apk的assets文件夹中的shape_predictor_68_face_landmarks.dat 在NDK中,google提供了AAssetManager_fromJav...

2019-05-31 11:47:27 469 2

原创 android studio引用其他model的jar包

android studio项目如果存在多个model,并且想在app中调用其他model内的jar包相关类时,会提示找不到该类,让你add library到classpath中,但是操作之后没有作用 出现这个问题的原因是build.gradle内使用了implement配置来导入jar包,比如i...

2019-05-07 18:31:16 555 0

原创 TextureView不回调onSurfaceTextureDestroyed的问题

TextureView不回调onSurfaceTextureDestroyed的问题 在使用TextureView做为自定义view时,想要手动控制TextureView的销毁和创建 但是发现将Visibility设为View.GONE不会调用onSurfaceTextureDestroyed回调...

2019-04-19 14:33:32 1536 1

原创 ndk实例总结:使用ffmpeg播放rtsp流

ndk实例总结系列 ndk实例总结:jni实例 ndk实例总结:opencv图像处理 ndk实例总结:安卓Camera与usbCamera原始图像处理 ndk实例总结补充:使用V4L2采集usb图像分析 前言 本篇博客总结下在jni中使用opencv进行图像处理的使用实例 在Android中ope...

2019-03-14 19:30:21 414 0

原创 ndk实例总结补充:使用V4L2采集usb图像分析

ndk实例总结补充-使用V4L2采集usb图像分析 前言 本文是对ndk实例总结:安卓Camera与usbCamera原始图像处理中usbCamera部分的补充,主要分析下使用V4L2采集usb图像的流程 V4L2介绍 v4l2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适...

2019-02-28 14:40:02 280 0

原创 ndk实例总结:安卓Camera与usbCamera原始图像处理

ndk实例总结-安卓Camera与usbCamera原始图像处理 ndk实例总结系列 ndk实例总结:jni实例 ndk实例总结:opencv图像处理 ndk实例总结:安卓Camera与usbCamera原始图像处理 前言 本篇博客总结下在jni中对安卓Camera与UsbCamera的原始图像进...

2019-02-26 14:05:22 718 0

原创 ndk实例总结:opencv图像处理

ndk实例总结-opencv图像处理 ndk实例总结系列 ndk实例总结-jni实例 前言 本篇博客总结下在jni中使用opencv进行图像处理的使用实例 在Android中opencv的使用有两种方式,一种是使用opencv的Android版api,另一种是通过jni来使用opencv,本篇总结...

2019-01-23 14:07:29 323 0

原创 ndk实例总结:jni实例

ndk实例总结 本篇博客总结下个人进行ndk开发时的使用实例 ndk开发基础学习请先看下面四篇: JNI和NDK编程(一)JNI的开发流程 JNI和NDK编程(二)NDK的开发流程 JNI和NDK编程(三)JNI的数据类型和类型签名 JNI和NDK编程(四)JNI调用Java方法的流程 log打印...

2019-01-17 07:59:51 196 0

原创 JNI 在 spring boot中的应用

jni 在 spring boot 中的应用 编译jni动态库 首先创建文件夹 #创建java层文件夹 mkdir -p java/com/gavinandre/jnispringboot/jni #创建native层文件夹 mkdir native 创建java文件 echo &amp...

2019-01-09 18:36:56 3557 3

原创 Ubuntu16.04 编译 OpenCV for Android(更新版)

ubuntu16.04编译opencv for Android(更新版) 本文为https://blog.csdn.net/lj402159806/article/details/76762228的更新版 编译版本 opencv 3.4.5 ndk-r18 编译环境 首先需要安装sdk...

2019-01-04 15:54:47 940 1

原创 ubuntu16.04 编译 openblas mxnet for Android

ubuntu16.04 编译 openblas mxnet for Android 编译版本 openblas-0.3.5 mxnet-master ndk-r18 生成工具链 #将ndk目录加入环境变量 export NDK_BUNDLE_DIR=${HOME}/Android/ndk/andr...

2019-01-03 13:38:00 662 1

原创 AIDL使用实例(kotlin)

AIDL使用实例(kotlin) 对AIDL以及Binder机制还不太了解的建议先看这篇博客 https://blog.csdn.net/lj402159806/article/details/85038382 创建AIDL接口 首先创建一个数据类文件和四个aidl文件 public clas...

2018-12-19 14:08:15 565 0

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