自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宇宝守护神(rainyang)的博客

努力努力,再努力!!

  • 博客(67)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android EventBus源码分析,基于最新3.1.1版本,看这一篇就够了!!

EventBus源码分析,看这一篇就够了!!前言上一篇文章对EventBus进行了一个介绍,并且对它的使用方式作了一个较全面的分析,建议在阅读本文之前,先看看上篇文章的内容:EventBus使用(全面分析,细节提醒)本篇文章主要内容是对EventBus的源码进行分析,看看它到底内部是用了什么方式,来实现事件传递,达到如此强大的效果。同是通过对其源码的分析,有助于加深对EventBus的理解使...

2018-12-15 12:33:38 8074 1

原创 利用Google的Vision库实现人脸检测

利用的Google的vision library实现人脸检测功能前言之前写了一篇人脸检测的文章是基于OpenCV的CascadeClassifier来实现的,基于OpenCV实现人脸检测。这次我们来探讨如何通过Google 的vision来实现人脸检测。笔者之前在用Google vision做人脸检测的时候,用的是Google Mobile Vision 。准备写博客的时候,发现mob...

2018-09-16 14:47:19 5241 8

原创 基于opencv实现人脸检测

基于opencv实现人脸检测opencv简述opencv是一个开源的计算机视觉库,它有着C++,Python,Java等接口,支持Windows,Linux,Mac OS,IOS 和 Android平台.Opencv 是使用C/C++所写的,可以利用多核处理.通过OpenCL启用,它可以利用底层异构计算平台的硬件加速。关于Opencv的详细介绍可以去其官网查看.Opencv 官网 ...

2018-09-08 09:52:59 21238 2

原创 Android 基于Zxing扫码实现(三)、从相册选取二维码

前言本篇博文主要讲解如何从相册选取二维码,进行扫码解析。如果对zxing扫码不熟悉的建议阅读本文之前看看之前的博文: Android基于Zxing扫码实现(一) Android基于Zxing扫码实现(二) 本文的代码基于YZxing库,如需查阅代码可前往GitHub上面查看。项目地址如下: YZxing 内容从相册获取二维码,主要涉及到几大步骤。 第一,进入相册获取照片。 第二,对照片

2017-11-29 11:10:50 8347 5

原创 Android 基于Zxing的扫码功能实现(二)

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布引言本篇博文是基于 Android 二维码的扫码功能实现(一) 文章写的,建议阅读这篇文章之前,先看看上篇文章。还有建议阅读本文的同学,结合zxing的源码理解。 上篇博客说明zxing的使用方式,并大致说了IntentIntegrator这个辅助类的作用,及内部的部分源码讲解。通过上篇博文的讲解,虽然我们成功使用了zxing 的扫

2017-11-02 16:11:33 10720 7

原创 Android ConstraintLayout布局详解

前言之前在使用Android Studio新建项目的时候,发现MainActivity的默认布局从RelativeLayout变成了ConstraintLayout。当时就对这个ConstraintLayout很好奇,就研究了一下。发觉确实很强大,在此做个总结。ConstraintLayout定义什么是ConstraintLayout呢?Constraint Layout是Google在2016年的

2017-10-21 14:04:39 10095 8

原创 使用CMake来进行Android NDK开发

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言Android NDK开发可能在平时的项目开发中不常用到,但是这并不代表其不重要, 相反NDK开发是Android开发人员的进阶过程中必须要掌握的技能。 Android NDK是一组允许将C或C++(原生代码)嵌入到Android应用中的工具。 如果开发者在需要以下操作的时候,使用NDK开发特别有用: * 在

2017-09-26 17:16:44 4558 1

原创 Android 弹性动画的三种实现方式

前言现在的android开发提出的需求是越来越接近现实真实感,提高用户 体验感。就拿动画效果来说,之前设计给的需求大都比较直接,缩放、 旋转、移动等动画效果都执行完就结束了。现在的话,为了追求现实 生活中的那种真实感,往往都会有一个回弹的效果,称之为弹性动画。非弹性动画体验非弹性动画的效果图: 我们来看一下实现该效果的代码: private void onScaleAnimati

2017-08-28 18:17:33 12455 8

原创 Android平台播放透明视频

标题虽然说是Android平台播放透明视频,但是因为是用OpenGL来做的,其他平台也可以用这个思路和shader来实现。

2023-05-07 15:38:44 1383 1

原创 C++笔记之lambda表达式

lambda表达式使用

2023-03-06 09:00:00 446

原创 C++笔记之单例模式

当一个类在程序的整个生命周期中,只需要一个实例的时候,就可以考虑把这个类设计成单例的方式,提供出去,让全局访问。一般来说比较“重”的一些类会设计成单例,比如像“引擎”, “xx池”,“xx系统”之类的。

2023-02-11 17:40:58 658

原创 Android-Native开发系列之利用AAudio播放音频

谈到在Android C/C++层实现音频播放/录制功能的时候,大家可能首先会想到的是利用opensles去做,这确实是一直不错的实现方式,久经考验,并且适配比较广。但如果你的项目最低版本支持Android 26及以上的话,且想追求最小的延迟,最高的性能。那可以考虑一下AAudio。博主之前在项目中使用opensles处理音频,后来又分别尝试过利用oboe,aaudio实现音频处理,小有体会,便记录一下,方便自己与他人。

2023-02-05 21:27:11 1152

原创 利用AirTest实现自动安装APK-跳过vivo手机安装验证

最近在帮测试组看个问题,他们在自动化测试的时候,通过命令在vivo手机上安装apk的时候出现”外部来源应用,未经vivo安全性和兼容性检测,请谨慎安装“的提示页面,需要手动点击”继续安装“才可以成功安装apk。提示界面如下:我们希望可以在安装apk的时候,自动跳过该验证页面。经过调研,发现利用Airtest可以实现该需求。通过自定义Airtest启动器可以实现添加自定义参数。

2023-01-12 21:32:35 1709

原创 Android Native开发系列之C/C++代码调试

不过,经过我的经验发现,这样做不是很保险,有时候会出现debug失败的情况,会出现找不到so的信息,保险起见的做法是在Run/Debug Configurations页面中,加入Symbol Directories信息,指明so路径。例如客户使用我们sdk的过程中遇到了问题,因为没法完整模拟客户的使用场景,不好排查问题,那我们这边需要源码断点调式时,可以给客户一个包含debug信息的so,客户集成后,编译一个apk给我们。在需要调试的代码处,打断点,然后直接点debug调试按钮即可。

2023-01-08 10:58:52 2251

原创 白话OpenGL系列(四)—向量,矩阵了解

白话OpenGL系列(四)—向量,矩阵了解白话OpenGL系列一白话OpenGL系列二白话OpenGL系列三前言不限于opengl,在用其他的框架做渲染的时候,也会用到向量,矩阵的知识。下面记录一下,向量和矩阵在OpenGL的开发用途,常常可以用来做什么。向量概念向量(vector), 也称矢量,是一个具有方向和大小的几何对象,可以形象的用一个一端带有箭头的线段来理解它。箭头的指向代表它的方向,线段的长度代表它的大小。在OpenGL的开发中,常常用用它来表示纹理的坐标,顶点的属性信息,比如

2021-03-27 10:42:31 979 1

原创 白话OpenGL系列(三)渲染管线

白话OpenGL系列三之渲染管线前言作为白话OpenGL系列第三篇,本文说说opengl的渲染管线,让大家多opengl的渲染过程有一个全局的认识,这样在理解,glsl,shader着色器等概念时,可以知道说的是渲染流程的哪部分。建议大家在阅读本文的时候看看该系列的其他文章,以便于加深对opengl的理解。白话OpenGL系列一白话OpenGL系列二What is 渲染管线渲染管线是一系列数据处理过程,并且将应用程序的数据转换到最终渲染的图像。换个好理解的说法就是,OpenGL不是要把物体

2020-12-25 22:23:36 515

原创 白话OpenGL系列(二)GLSL介绍

白话OpenGL系列(二)白话OpenGL系列(一)前言其实不打算更新这个系列第二篇的,比较懒。。。奈何第一篇文章,留下的坑有点多,怕读者骂我。。。我自己看了第一篇文章,如果是没有opengl的基础的,看起来还是挺难受的,所以我赶紧出了第二篇补补窟窿。。正文那么本篇文章说啥呢? 就按照第一篇的思路来,第一篇文章总结的地方不是提到GLSL吗? 那么本章的主题就是GLSL(OpenGL shading Language) .GLSL 是一种高级的图片编程语言,源自c语言,与传统通用编程语言比较

2020-12-19 16:42:36 1001 2

原创 白话OpenGL系列(一)一个小demo

前言随着通信技术的快速发展,以及视频业务的激烈扩张。作为研发人员,对音视频这块的知识还是需要知道一些的。渲染作为其中的一个重要组成部分,本系列就用通俗易懂的语言,来介绍opengl。OpenGL 是啥?opengl 全名是open graphics library , 用于渲染2d,3d图像的跨平台,跨语言的应用程序编程接口。OpenGL 能做什么?opengl能做的事情有很多,比如可以对图像进行各种美颜,滤镜,裁剪,贴纸等处理,源图像数据可以是来自相机,文件,图片等。像业内有名的GPUImage

2020-12-19 15:38:52 1517 2

原创 关于Android进程知识,你需要知道这些(一)

关于Android进程知识,你需要知道这些(一)本文首发于我的个人公众号Android开发圈(ID:RainYang_WX)作者:宇宝守护神(rainyang)了解进程概念进程是程序的一次执行,是系统进行资源分配和调度的基本单位,有自己专属的内存资源。进程是操作系统上的概念,所以无论在PC端还是移动端都是存在的,进程在PC端上,表现为程序,比如音乐播放器,聊天软件等;在手机上,就是...

2019-06-20 21:39:21 509

原创 小程序系列之网络请求

小程序系列之网络请求本文首发于我的个人公众号Android开发圈(ID:RainYang_WX)作者:宇宝守护神(rainyang)相较于android开发, 小程序的网络请求出乎意料的简单。。配置域名首先,进入项目配置界面,设置网络请求域名。界面如下:点击"开发设置"把 要请求的接口添加进去。本文使用鸿神的wanandroid 接口演示。请求数据主要用的是wx.req...

2019-06-07 08:54:51 337

原创 程序员的浪漫

程序员的浪漫马上就到520了,各位小伙伴想好了准备什么礼物送个自己的另一半呢?还没想好的注意啦!!现在还有机会,今天给大家分享一些程序员的浪漫创意礼物,希望你可以从中找到一些灵感。OneLink:https://github.com/wangshub/romantic_page效果:520指数:⭐️一句话点评:记录在一起的时间,背景图,文字可替换。但是页面单一。体验链接: http...

2019-05-22 10:43:24 1589

原创 Android开发人员学习小程序系列之组件位置

Android开发人员学习小程序系列之组件位置本文首发至我的个人公众号:Android开发圈(id:RainYang_WX)引言在Android开发中,我们设置控件的位置,首先确定目标控件是在哪种布局下的,常见的布局有RelativeLayout(相对布局)、LinearLayout(绝对布局)、ConstraintLayout(约束性布局) 等等。是先确定了目标控件的父容器,然后再根据...

2019-05-22 10:40:35 695

原创 Android启动模式(GIF动态演示)

Activity的启动模式本文首发于我的个人微信公众号:Android开发圈引言关于Activity的启动模式是面试高频问题,在平时开发中,作用也不小,所以还是很有必要搞懂这一块的知识。其实之前也有写过这个主题的文章,但是当时是随便写了一点来记录的。这次准备写的完善点。同时通过gif动态演示各种模式下的入栈出栈情况,加深对四种模式的理解。Activity的启动模式是告诉Activity...

2019-05-12 22:09:47 669

原创 你知道代理模式吗?

设计模式之代理模式引言设计模式在程序员在开发过程中经常会用到的一些写代码的套路,有的人可能会说我在写代码的时候怎么没用过呢,其实很可能你已经用过了,只是你不知道它的学名原来叫xxx模式,可能你的这种套路习惯是学习原来公司老的代码写的,或是同事对你的指点分享,或是学网上写的…这个图片是代理模式的UML图,引自wiki。从这个UML图中,我们可以看到,代理模式中主要有三个角色,分别是Subj...

2019-05-05 10:35:33 339

原创 浅谈Java位操作

浅谈Java位操作今日热点利拉德压哨三分绝杀雷霆!一句话:老子利指导,杀人先看表!利指导牛批!​ 今天补习补习计算机基础知识,Java位操作 。在说Java的位操作之前,要先说说原码,反码,补码 这三个概念,在学校期间,书本上有关于这个三种码的介绍,是基础知识。但是,在学校期间,基本都没认真听过课…(ps当然学霸除外)原码首先要知道计算机最终处理的是0,1这种二进制指令。in...

2019-04-24 22:02:01 212

原创 容器类源码解析系列(四)---SparseArray分析(最新版)

容器类源码解析系列(四)—SparseArray分析引言容器类源码解析系列已经更新到了第四篇,前三篇已经分别对ArrayList、LinkedList、HashMap进行源码分析。容器类源码解析系列(一)—— ArrayList 源码分析(最新版)容器类源码解析系列(二)—— LinkedList 集合源码分析(最新版)容器类源码解析系列(三)—— HashMap 源码分析(...

2019-04-20 13:44:40 376

原创 容器类源码解析系列(三)—— HashMap 源码分析(最新版)

容器类源码解析系列(三)—— HashMap 源码分析(最新版)前言本篇文章是《Java容器类源码解析》系列的第三篇文章,主要是对HashMap的源码实现进行分析。强烈建议阅读本文之前,先看看该系列的前两篇文章:容器类源码解析系列(一)ArrayList 源码分析——基于最新Android9.0源码容器类源码解析系列(二)—— LinkedList 集合源码分析(最新版)要点Ha...

2019-04-13 11:01:47 620

原创 容器类源码解析系列(二)—— LinkedList 集合源码分析(最新版)

容器类源码解析系列(二)—— LinkedList 集合源码分析(最新版)前言上篇文章 容器类源码解析系列(一) ArrayList 源码分析——基于最新Android9.0源码 对ArrayList集合的源码进行了详细的分析,通过源码分析,使得我们对ArrayList的理解更加深刻,使用起来会更得心应手。本文将要讲解的是LinkedList的底层原理。建议在阅读本文之前,先回顾一下上篇介绍...

2019-04-07 14:47:20 554

原创 容器类源码解析系列(一) ArrayList 源码分析——基于最新Android9.0源码

ArrayList 源码分析——基于最新Android9.0源码前言ArrayList 既是开发人员在日常开发过程中经常会用到的数据处理容器,也是面试场景中经常会被问到的点。包括LinkedList,HashMap,SparseArray等。因此对这些个数据结构的源码,还是很有必要了解一下的。其他的几种容器,在后面的文章再做讲解。RT,本文主要讲解ArrayList。要点ArrayLis...

2019-04-05 14:45:40 433

原创 update for support arm64 所遇到的一些问题

update for support arm64 所遇到的一些问题前言Invalid configuration ‘aarch64-linux’: machine ‘aarch64’ not recognized1.checking host system type… Invalid configuration ‘aarch64-linux’: machine ‘aarch64’ not r...

2019-03-10 13:51:07 1313

原创 编译针对于Android平台的ffmpeg 4.1版本(最新版)

编译针对于Android平台的ffmpeg 4.1版本(最新版)前言如题,本文主要内容是总结在编译FFmpeg过程中遇到一些坑.这里要注意一点是使用不同版本的NDK会遇到对应的不同的坑,这点要注意.本文重点讲编译过程,遇到的坑.关于如何编译,也会略带说点,但是不会说的多仔细,网上关于如何编译的文章,说的也挺多的,流程都差不多,区别也就是configure的配置会因需求而变动等.编译流程先...

2019-02-22 17:49:04 6410 13

原创 C/C++ 生成指定格式的32位数据

概述可能看到找个标题,大家还是比较疑惑,不是很明白想表达什么意思,不着急,接着往下看就知道了.假定有这样一个需求:0-7 位这个8个bit 存储 整形变量count的值,那么整形变量count的取值范围可以是(0,255).8-13位 这6个bit 存储 整形变量second的值,那么整形变量second的取值范围是(0,63).14-19位 6个bit 存储 整形变量minute得...

2019-01-09 14:40:15 1434

原创 EventBus 使用(全面分析,细节提醒)

EventBus使用概述关于 EventBus 在开发中经常会选择使用它来进行模块间通信、解耦。平常使用这个库只是很浅显的操作三部曲,register,post,unregister。来达到开发目的。始终有种不明确,模糊的操作感。因此准备对EventBus进行一个深入,全面的理解,消除模糊,片面感,让以后在使用这个库的时候,有更好的掌握和使用。并记录下来,方便以后查阅。关于EventBus会分...

2018-12-08 10:58:48 63406 8

原创 Android 二维码开发功能实现(五)-----对zxing进行优化,提高扫码速度与精确度

对zxing进行优化的思考前言对于Google 的开源框架Zxing库的使用介绍,前面也通过几篇文章进行解读.Android 二维码的扫码功能实现(一)Android 基于Zxing的扫码功能实现(二)Android 基于Zxing扫码实现(三)、从相册选取二维码Android 二维码开发功能实现(四)------基于Zxing实现编码功能(生成二维码,一维码等)日常关于条码的...

2018-11-08 14:38:39 5708

原创 Android 开发---对非SDK接口限制的适配

前言项目升级到Android Pie(9),需要考虑适配问题.在此做个总结.Android 9 增加了对非SDK接口访问的限制,无论你是直接访问还是通过反射,JNI等间接访问,都是会被限制的.SDK接口和非SDK接口有啥区别?SDK接口是那些官方支持的,Android framework 文档中可以找的.Android framework Package index .那非SDK接口就自...

2018-11-07 11:19:58 2661

原创 Android 9(Pie) 新特性介绍

Android 9(Pie) 新特性介绍简述Android 9.0(api 28)在今年的八月份发布了正式的版本。本文重点介绍面向开发者的新功能。新功能利用 Wi-Fi RTT 进行室内定位Android 9添加了对IEEE 802.11mc wi-fi 协议的平台支持,让您的应用可以利用室内定位功能。在运行 Android 9 且具有硬件支持的设备上,应用可以使用 RTT API 来...

2018-11-02 13:03:30 1728

原创 Android 二维码开发功能实现(四)------基于Zxing实现编码功能(生成二维码,一维码等)

Android 二维码开发功能实现(四)------基于Zxing实现编码功能(生成二维码,一维码等)前言关于Google的开源库Zxing,前面也写了几遍文章进行介绍.我们先简单的回顾一下!Android 二维码的扫码功能实现(一)这篇文章主要介绍了,Zxing是什么?怎么上手?适合没有接触过条码相关开发,0经验的朋友.Android 基于Zxing的扫码功能实现(二)这篇文章则介...

2018-10-31 16:50:27 2154 2

原创 Android 音频编码(AAC编码)

Android 音频编码(AAC编码)

2018-10-26 11:39:01 2505

转载 Android开发-Fatal Signal Crash定位

      转载请注明出处:http://blog.csdn.net/xyang81/article/details/42319789       在Android开发中,程序Crash分三种情况:未捕获的异常、ANR(Application Not Responding)和闪退(NDK引发错误...

2018-10-23 16:37:03 2431

原创 Compile opencv+opencv_contrib lib for Android

Compile opencv+opencv_contrib lib for Android序言使用opencv来进行功能开发的话,可以通过在opencv的官方网上下载对应平台的SDK,地址如下: https://opencv.org/releases.html . 但是,官网提供的sdk里面的功能有限,一些高级的功能模块如:Tracking,Xfeatures2d等,不包含...

2018-08-09 11:10:45 2175 1

空空如也

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

TA关注的人

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