阿飞__
码龄7年
  • 2,564,169
    被访问
  • 223
    原创
  • 928
    排名
  • 1,503
    粉丝
关注
提问 私信

个人简介:熟悉 Android、C++ 等

  • 加入CSDN时间: 2015-08-29
博客简介:

阿飞的博客

查看详细资料
  • 7
    领奖
    总分 4,334 当月 199
个人成就
  • 博客专家认证
  • 获得2,580次点赞
  • 内容获得551次评论
  • 获得8,587次收藏
  • GitHub 获得171Stars
创作历程
  • 3篇
    2022年
  • 9篇
    2021年
  • 1篇
    2020年
  • 27篇
    2019年
  • 149篇
    2018年
  • 3篇
    2017年
  • 36篇
    2016年
成就勋章
TA的专栏
  • Android
    82篇
  • Android UI
    25篇
  • Android NDK 学习
    19篇
  • 数据结构和算法
    30篇
  • Java
    27篇
  • C/C++
    28篇
  • OpenGL
    14篇
  • 设计模式
    30篇
  • Linux
    15篇
  • Git
    5篇
  • 神经网络引擎
    2篇
  • 其它
    7篇
  • LeetCode
    10篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

shell函数详解,基本使用&进阶使用

shell函数详解,包含基础使用和进阶使用
原创
发布博客 2022.05.06 ·
3918 阅读 ·
1 点赞 ·
0 评论

OpenVINO使用OpenCL内存执行,避免拷贝

一、简介出于性能考虑,通常 CPU 无法满足耗时的要求,网络需要执行在 GPU 上增强性能,而数据的处理通常使用 OpenCL 也会比 CPU 快很多。所以我们要是可以直接将 OpenCL 处理后的内存给 OpenVINO 执行,就可以避免将 OpenCL 内存拷贝到 CPU 上,再从 CPU 拷贝到 OpenVINO 中。其实 OpenVINO 已经支持直接使用 OpenCL 的内存,只要他们公用一个 Context 即可。二、使用1.官方资料本文是基于 OpenVINO 2021 的 SDK
原创
发布博客 2022.03.28 ·
333 阅读 ·
1 点赞 ·
0 评论

英特尔OpenVINO使用入门(C++集成方式)

一、简介OpenVINO™是英特尔推出的一个用于优化和部署AI推理的开源工具包。常用于 Inter 的集成显卡网络推理使用。官网地址:https://docs.openvino.ai二、下载下载地址:https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_linux.html针对不同平台,在如图红框处选择不同的文档参考,按照官网文档一步步执行就行。三、使用假设你已经有了模型的 xml 文
原创
发布博客 2022.03.25 ·
1630 阅读 ·
1 点赞 ·
0 评论

C++ 自定义项目日志库,支持log分级、标签、耗时统计、显示文件名方法名行号信息等,Windows&Linux通用

一、效果展示功能点:log输出时间,精确到毫秒log等级,支持 V,D,I,W,Elog标签,可以根据标签筛选不同的loglog信息,自动添加文件名、方法名、行号输出,帮忙快速定位到log在工程中的位置耗时统计功能附上测试代码:在linux下编译的话需要链接pthread,即编译命令加上 -lpthread。#include "LogUtils.h"#include <thread>void foo() { for (int i = 0; i < 5;
原创
发布博客 2021.12.01 ·
2785 阅读 ·
1 点赞 ·
0 评论

Android Camera2相机预览画面放大缩小(数码变焦DigitalZoom)功能实现

一、前言Android自定义相机开发中,常常会有通过手势放大或缩小相机预览画面的需求,即数码变焦DigitalZoom。二、接口说明1. 获取最大的放大倍数float maxZoom = mCameraCharacteristics.get(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);怎么理解这个值呢?假设正常预览画面(即没有缩放)矩形为 activity_rect,放大后的预览画面矩形为 crop_rect,那么它们宽高的
原创
发布博客 2021.08.13 ·
3010 阅读 ·
4 点赞 ·
3 评论

使用SSH无线连接Android手机设备调试

一、应用场景组内项目开发,Android 测试机有限,可在Android 测试机上开启一个 SSH 服务,然后通过 adb connect 直接连接,支持多个电脑同时连接。二、准备下载一个 sshdroid.apk,安装并启动,手机需要连接WiFi,点击启动如下所示:下载链接:https://download.csdn.net/download/afei__/20239709三、设置并连接1. 修改端口号由于默认的端口号是2222,试过通过连接不上,可以通过 adb 命令将端口号改为 555
原创
发布博客 2021.07.26 ·
931 阅读 ·
1 点赞 ·
1 评论

sshdroid.apk

发布资源 2021.07.13 ·
apk

Windows10+Visual Studio 2015的OpenCV编译图文指南

一、下载OpenCV源码1.opencv下载地址:https://github.com/opencv/opencv/releases选择需要下载的版本,以3.4.14为例,选择下载源代码即可。下载后解压到: D:\Develop\OpenCV\opencv-3.4.14(自己选择一个自己的路径,这里以此路径为例)。2.opencv_contrib这个工程也可以选择不下载,主要包含一些AR增强、背景分割、生物视觉等模块,大部分用不着。介绍参考:https://blog.csdn.net/zmds
原创
发布博客 2021.06.04 ·
213 阅读 ·
2 点赞 ·
1 评论

C++ Lambda表达式详解

一、简介C++11开始引入了Lambda表达式,可将lambda表达式视为包含公有operator()的匿名接口(或类),这样可以更方便的使用函数对象或创建匿名函数(类似Java的匿名内部类)。二、Lambda表达式定义lambda表达式的定义必须以方括号([])打头。这些方括号告诉编译器,接下来是一个lambda表达式。方括号后面是一个参数列表,该参数列表与不使用lambda表达式时提供给operator()的参数列表相同。[capture list] (params list) mutable
原创
发布博客 2021.04.26 ·
1317 阅读 ·
6 点赞 ·
4 评论

Android文件游览选择器(支持选择多个文件、支持选择文件和文件夹,返回文件路径)

一、效果预览用的图标都是网上到处拷贝的,仅仅做个示例使用。截图 gif二、思路首先我们需要一个 FilePickerActivity 去显示页面。里面包含一个标题栏(ToolBar)、路径文本(TextView)和文件列表(RecyclerView)。RecyclerView 需要使用一个 Adapter 展示内容,内容来自于 File 类的 listFiles() 函数。最后我们完善那些返回、单击进入文件夹、长按选择、空页
原创
发布博客 2021.03.23 ·
458 阅读 ·
1 点赞 ·
0 评论

Android MediaMuxer+MediaCodec 编码yuv数据成mp4

一、简介使用 MediaCodec 对 yuv 数据进行编码,编码的格式为 H.264(AVC) 。使用 MediaMuxer 将视频track和音频track混合到 mp4 容器中,通常视频编码使用H.264(AVC)编码,音频编码使用AAC编码。二、流程分析(简要介绍一下流程,具体api的参数说明起来篇幅太大,不清楚的可以自己搜索一下)创建编码器并配置MediaFormat mediaFormat = MediaFormat.createVideoFormat(MediaFormat.M
原创
发布博客 2021.03.18 ·
1384 阅读 ·
4 点赞 ·
5 评论

Android MediaExtractor+MediaCodec解码视频,返回yuv回调数据

一、解码流程分析(简要介绍一下流程,具体api的参数说明起来篇幅太大,不清楚的可以自己搜索一下)MediaExtractor 负责提取视频信息,创建一个该对象,并设置视频路径MediaExtractor extractor = new MediaExtractor();extractor.setDataSource(videoFilePath);视频文件一般都包含视频、音频等,我们需要获取视频轨道private static int selectVideoTrack(MediaExtr
原创
发布博客 2021.03.16 ·
908 阅读 ·
2 点赞 ·
4 评论

Android10有sdcard读写权限,仍无法读写sdcard中文件问题解决

一、问题场景在Android 10及以上系统的手机上测试发现,明明已经申请了 android.permission.READ_EXTERNAL_STORAGE 和 android.permission.WRITE_EXTERNAL_STORAGE 权限,且应用也拥有了这些权限,但应用只能读写 Context.getExternalxxxDir() 获取到的目录,而无法读写 /sdcard 下的其余文件。这是由于 Android 在 10 之后又加强了数据隐私管理,可以把 Context.getExter
原创
发布博客 2021.03.05 ·
3330 阅读 ·
6 点赞 ·
4 评论

Android使用OpenGL 3.0绘制yuv图片示例

一、思路首先OpenGL是没法直接绘制yuv数据的,所以我们需要在shader中将yuv数据转为rgb数据绘制。我们可以将yuv数据作为3个不同的纹理传入到片段着色器,然后通过yuv转rgb的公式,得到需要渲染的颜色值。公式为:( Y~ [0,1] U,V~[-0.5,0.5])R = Y + 1.4022 * VG = Y - 0.3456 * U - 0.7145 * VB = Y + 1.771 * U二、shader编写OpenGL 3.0 和 2.0 的 shader 语法
原创
发布博客 2020.10.12 ·
1020 阅读 ·
2 点赞 ·
1 评论

OpenGL ES 3.0 片段着色器介绍和使用

一、简介备注:内容来自于《OpenGL ES 3.0编程指南》一书。片段着色器和顶点着色器一样都是运行在 GPU 上的程序,片段着色器将顶点着色器输出的片段作为输入,并负责输出每个片段的颜色。片段着色器的输入输出图示:二、内建变量内建变量是指着色器语言中已经定义好的,并有特殊意义的一些变量。1. 内建特殊变量变量描述gl_FragCoord片段着色器中的一个只读...
原创
发布博客 2019.08.26 ·
1502 阅读 ·
2 点赞 ·
1 评论

浅谈 SurfaceView、TextureView、GLSurfaceView、SurfaceTexture

一、SurfaceViewSurfaceView 是一个可以在子线程中更新 UI 的 View,且不会影响到主线程。它为自己创建了一个窗口(window),就好像在视图层次(View Hierarchy)上穿了个“洞”,让绘图层(Surface)直接显示出来。但是,和常规视图(view)不同,它没有动画或者变形特效,一些 View 的特性也无法使用。概括:SurfaceView 独立于视图...
原创
发布博客 2019.08.22 ·
6254 阅读 ·
5 点赞 ·
0 评论

NDK/C++ 耗时统计类TimeUtils

一、需求分析在开发阶段中,经常会需要打印出某些方式或步骤的耗时情况,大致需求如下:能打印出某个步骤的耗时;有开关可以控制打开和关闭耗时统计;使用方便。二、准备工作之前介绍过一个 log 输出的工具类,可以沿用,链接为:https://blog.csdn.net/afei__/article/details/81030373。LogUtils.h 示例:#ifndef _LOG_...
原创
发布博客 2019.08.21 ·
2512 阅读 ·
2 点赞 ·
1 评论

Android 实时滤镜 Demo(GPUImage + Camera2 实现)

一、应用截图二、前言GPUImage 是一个开源的图像渲染的库,使用它可以轻松实现很多滤镜效果,也可以很轻松的定义和实现自己特有的滤镜效果。地址:https://github.com/cats-oss/android-gpuimage三、依赖工程要想使用 GPUImage,使用 Android Studio 只需要在 build.gradle 里面添加相关的依赖即可。implemen...
原创
发布博客 2019.08.12 ·
4852 阅读 ·
8 点赞 ·
10 评论

OpenGL ES 之 2D 纹理介绍和使用

一、纹理概念纹理可以简单理解为物体表面的图案,OpenGL ES 3.0 中纹理有:2D纹理、2D纹理数组、3D纹理和立方图纹理。一个纹理的单独数据元素称为“纹素”(texture pixel 纹理像素的缩写)。1. 纹理的坐标系2. 2D纹理2D纹理是最基本和常用的纹理,可以把2D纹理想象为一个图像数据的二维数组。2D纹理的纹理坐标用一对2D坐标 (s, t) 指定,有时也称作 (u...
原创
发布博客 2019.07.29 ·
2027 阅读 ·
3 点赞 ·
0 评论

OpenGL 纹理过滤和 mip 贴图

一、概念1. 纹理过滤当纹理贴到具体像素上时,像素需要到纹理图像中进行采样,这个过程称为纹理过滤。纹理过滤通常有两种情况:放大(GL_TEXTURE_MAG_FILTER)和缩小(GL_TEXTURE_MIN_FILTER)。2. mip 贴图mip 贴图只适用于纹理过滤缩小的场景,其原理是将纹理按照2的倍数进行缩放,直至图像1*1的大小。在贴图时,OpenGL 会自动选择合适大小的纹理...
原创
发布博客 2019.07.19 ·
882 阅读 ·
4 点赞 ·
0 评论
加载更多