自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Android OpenGL+Camera2渲染(5) —— 录制视频,实现快录慢录

Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现 Android Open...

2020-01-04 18:06:17

阅读数 62

评论数 0

原创 Android OpenGL+Camera2渲染(4) —— 美颜功能实现

Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现 Android Open...

2020-01-04 17:38:45

阅读数 42

评论数 0

原创 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现

Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现 Android Open...

2020-01-04 17:27:52

阅读数 54

评论数 0

原创 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览

Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现 Android Open...

2020-01-04 16:14:18

阅读数 47

评论数 0

原创 Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍

Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现 Android Open...

2020-01-04 15:03:24

阅读数 49

评论数 0

原创 Android下RTMP推流h264和aac数据

RTMP服务器搭建参考:https://blog.csdn.net/wangchao1412/article/details/103641770 h264格式,aac格式,rtmppacket格式参考:https://blog.csdn.net/wangchao1412/article/deta...

2019-12-21 12:43:45

阅读数 19

评论数 1

原创 h264、AAC组装RTMPPacket

h264组包结构表如下 H.264数据 往RTMP包中填充的是H.264数据,但不是直接将x264编码出来的数据填充进去。 一段包含了N个图像的H.264裸数据,每个NAL之间由: 00 00 00 01 或者 00 00 01 这四个字节或三个字节应该去掉后才可以放入RTMP数据...

2019-12-21 11:22:47

阅读数 9

评论数 0

原创 mac下Nginx搭建RTMP服务器

下载nginx wget wget http://nginx.org/download/nginx-1.15.3.tar.gz 解压 tar xvf nginx-1.15.3.tar.gz 下载nginx rtmp模块 wget https://codeload.g...

2019-12-21 10:49:55

阅读数 10

评论数 0

原创 bsdiff编译以及bspatch在android下集成与使用

bsdiff的编译网上有很多直接参考,贴一个链接,mac环境和linux环境下都写的很详细。 https://blog.csdn.net/weixin_30414635/article/details/95086119 在Android 平台下的使用。 首先在我们从1.0到2.0版本升级,我...

2019-12-18 10:37:05

阅读数 6

评论数 0

原创 MediaCodec编码 音频pts设置

每一帧音频pcm录音,要进行mediacodec编码时,都需要为此pcm设置pts,在放入编码的input队列中。对于视频的pts来说,编码h264,一帧原始视频yuv420格式编码出的就是一帧h264,所以视频的pts可以直接取当前的时间戳就可以。但是对于音频来讲,一帧pcm数据,会编码出多帧的...

2019-12-09 16:50:51

阅读数 40

评论数 0

原创 ffmpeg—视频播放器(点播和直播)

ffmpeg播放流程: 1、解封装,拿到音视频信息,创建编码器。 2、拿到音频Packet和视频Packet。 3、解码,拿到音频Frame和视频Frame。 4、对于音频原始帧,使用opensl ES进行播放。 5、对于视频帧,需要 swscale库进行格式转换,转换成 ANative...

2019-12-09 15:32:47

阅读数 58

评论数 0

原创 cmake配置ffmpeg项目

android ndk 交叉编译ffmpeg。 编译好后,我们需要把静态库 lib 和头文件 include引入到Androidstudio中。 引入后,我们需要编写CMakeList.txt文件 cmake_minimum_required(VERSION 3.4.1) ...

2019-12-09 11:06:58

阅读数 41

评论数 0

原创 Mac编译ffmpeg Android平台库

编译ffmpeg版本:ffmpeg-4.2.1 ndk版本:android-ndk-r17c 准备工作: 一:通过brew下载wget工具。 brew install wget 二:下载mac os平台下的 ndk17 wgethttps://dl.google.com/android...

2019-11-25 17:33:17

阅读数 24

评论数 0

原创 NDK开发之Java和C++互调,jni动态注册

cmake cmake_minimum_required(VERSION 3.4.1) add_library( native-lib SHARED handler.cpp native-lib.cpp) find_lib...

2019-11-19 16:50:22

阅读数 10

评论数 0

原创 手写sprintf函数

void my_sprintf(char* b,const char *content,...){ va_list list; va_start(list, content); char* buff = b; int count = 0; ...

2019-11-07 11:40:19

阅读数 11

评论数 0

原创 c 函数指针

首先用typedef定函数指针格式,解释一下含义 void:指针函数的返回值 (*Success):指针函数的别名。 (PCK*):指针函数需要传递的参数,一个char*。 typedef void(*Success)(PCK*); typedef void(*Failure)(PCK*...

2019-11-06 19:40:01

阅读数 9

评论数 0

原创 UsbManager在28版本下的改动

用UsbManager来识别外置的camera设备,授权打开的功能。 授权功能 //申请USB连接权限 private synchronized void requestPermission(UsbDevice device) { //申请USB连接权限 ...

2019-10-31 14:36:13

阅读数 67

评论数 0

原创 反射获取范型的类型

public abstract class HttpCallback<Result> implements ICallback { @Override public void onSuccess(String result) {//result就是网络回来的数据 ...

2019-09-20 10:52:33

阅读数 11

评论数 0

原创 插件化之路(2)广播插件实现

实现加载插件中的BroadCastRecevicer,首先广播的注册方式分为两种,动态注册和静态注册。 动态广播注册步骤 首先插件中的广播需要实现PayInterfaceBroadcast接口。 1、插件执行registerReceiver时候,会执行到ProxyActivity里的regi...

2019-08-19 18:28:01

阅读数 19

评论数 0

原创 插件化之路(1)插桩实现插件apk注入

插件化:可以在动态的加载插件apk到本应用中,比如支付宝中可以点击进入滴滴出行,移动充值等插件。 首先在宿主apk中要加载插件apk,需要自己去实现加载dex文件,resource资源,找到launchActivity等。 首先我们这里直接把插件apk放到了手机的根目录下,项目中应该是去服务器...

2019-08-19 14:36:04

阅读数 55

评论数 1

原创 ARouter源代码解析

上一篇文章介绍了ARouter在编译期间做的事情,会生成一些文件,Root表,Group表,AutoWired和Intercept的代表类,理解为工厂吧,链接:https://blog.csdn.net/wangchao1412/article/details/99412922 所以我们在使用之...

2019-08-13 17:36:34

阅读数 77

评论数 0

原创 ARouter源码解析之APT运行时注解

ARouter,可以使用@Route注解来标示路由地址,使用@Autowired给变量实现自动注入值,@Interceptor可以实现拦截功能。 在ARouter中,首先是通过APT在编译时生成了ROOT表,Group表,Interceptor和AutoWired AutoWired自动注入...

2019-08-13 13:40:32

阅读数 85

评论数 0

原创 AndroidStudio下Gradle实现对配置统一管理

对SDK版本和在组建开发中对应用名进行统一管理。 首先在project目录下新建一个gradle文件,如config.gradle文件如下: ext { // false: 组件模式 // true :集成模式 isModule = true android ...

2019-08-13 10:27:31

阅读数 23

评论数 0

原创 Rxjava2原理解析,手写操作符实现

RxAndroid是RxJava的一个针对Android平台的扩展,主要用于 Android 开发 1 Rxjava项目地址: https://github.com/ReactiveX/Rxjava 2 Rxjava文档: https://mcxiaoke.gitbooks.io/rx...

2019-07-18 14:59:09

阅读数 45

评论数 0

原创 android 事件分发机制

自己对Android时间分发机制的理解。布局文件中从外到内为FramLayout——LinearLayout——Button。 当点击Button的时候,MotionEvent是这样传递的。 window.dispatchTouchEvent ——phoneWindow.dispatchTou...

2019-06-23 16:05:39

阅读数 32

评论数 0

原创 数据结构与算法入门

衡量数据结构的好坏有:空间复杂度和时间复杂度(使用场景)。 空间复杂度:运行算法程序需要占用的内存空间。因为现在的程序内存是足够用的,一般考虑算法好坏通常主要考虑时间复杂度。 时间复杂度:运行一段程序所耗费的时间。 除此之外,还需要根据使用场景来衡量。 交换整型变量的几种方法: 1、...

2019-06-15 20:29:17

阅读数 18

评论数 0

原创 C从源文件到可执行文件有哪些步骤

1、预处理 gcc -E main.c -o main.i 头文件解析,删除注释 2、编译 gcc -S main.i -o main.s main.s为汇编语言 3、汇编 gcc -c main.s -o main.o main.o为二进制文件 4、链接 gcc -omain.o -o h...

2019-06-04 22:40:29

阅读数 240

评论数 0

转载 Java下RAW转Bitmap

/** * Raw转Bitmap * * @author ChenRui */ public class RawToBitMap { /** * 从流中读取数组 * * @param stream 输入流 * @return */ ...

2019-05-20 14:05:05

阅读数 169

评论数 1

原创 获取手机设备WIFI状态和GPRS状态下的IP地址工具类

手机下的IP地址随着网络的变化随之改变,所以要处理是WIFI状态下还是GPRS移动流量状态下,如果两者都处于关闭状态,手机IP是将处于不可用状态,这里直接返回默认0.0.0.0。下面试工具类,做个记录方便以后使用。 public class NetworkUtil { privat...

2019-05-06 17:31:42

阅读数 72

评论数 0

原创 在github上首次提交项目

git config --global user.name "这里就上图中圈着的name "git config --global user.email "这里是上图中圈着的邮箱" git init git remote add origin 这里就是...

2019-01-30 16:01:47

阅读数 230

评论数 0

原创 查看/data/data下的数据库文件

1、进入adb shell 模式    adb shell 2、获得所有root权限 su   3、先把文件夹权限全部打开 chmod 777 /data/   4、给里边的db文件权限设置成可读可写可操作 chmod 777 /data/data/(项目全包名)/da...

2018-12-11 14:02:19

阅读数 758

评论数 0

原创 EventBus查找订阅者之注解处理器

想全面了解EventBus的童鞋可以参考这里:https://blog.csdn.net/wangchao1412/article/details/84629815 Subscriber Index(订阅者索引)是一个可选择的优化技术,用来加速初始化subscriber注册。 通过使用Even...

2018-11-29 20:36:32

阅读数 123

评论数 0

原创 带你一步步参透EventBus源码

从以下几个方面来解析: 1、EventBus创建方式有两种:单利和建造者模式。 2、EventBus查找满足条件的订阅方法,有两种方式:反射查找和注解处理器(Annotation Processor)查找。 3、EventBus如何实现订阅的(用观察者模式)。 4、如何取消注册的。 5、...

2018-11-29 16:36:56

阅读数 46

评论数 0

原创 手写组件化ARouter实现

第一篇:实现组件化分离并可单独运行module调试。 在我们的项目开发中,尤其是对于大型项目,组件化是架构师的必备选择。可以按照功能来划分模块,降低耦合方便管理。如果大型项目运行调试一次应用可能需要大量时间,组件化可以只编译和运行单独的模块,使每一个module具有独立性。下面我们来看一下是怎么...

2018-11-24 17:51:03

阅读数 197

评论数 0

原创 git从获取SSH公钥到关联仓库提交代码

当然,git环境变量肯定是要配置的,就不多说了。一获取SSH公钥1 打开终端 输入命令 cd ~/.ssh 进入.ssh文件下,如果有.ssh文件说明以前整过,没有执行下面2cd ~/.ssh2输入命令 ssh-keygen -t rsa -C "your.email" 生成公...

2018-05-18 14:07:23

阅读数 605

评论数 0

原创 XListView实现仿今日头条预加载

本篇博客是要在上拉刷新下拉加载的基础上实现预加载功能,传统的XListView都是当数据加载到最后一天数据的时候在上拉加载数据,实现预加载也就是加入一页数据是二十条,当滑动到15条数据的时候自动加载下页数据(这个当滑动到倒数几条数据在进行自动加载可以根据自己的需求来设置),下面我们就来通过OnSc...

2017-12-15 14:53:37

阅读数 850

评论数 0

原创 解决三星手机写入和读取文件失败问题

原因:三星手机的存储路径和其他oppo,vivo,华为等不一样。 解决方法如下: public File saveBitmapFile(Bitmap bitmap) throws FileNotFoundException { long currentTime = Calendar...

2017-11-09 17:02:46

阅读数 2018

评论数 0

原创 git基本整套流程使用

一、git查看分支  查看本地:git branch -l(l:local) 查看远程:git branch -r(r:remote) 查看本地远程分支:git branch -a(a:all)   二、切换分支(dev分支名) 如果远程和本地已经关联的话,执行git checkout...

2017-11-06 13:22:43

阅读数 216

评论数 0

原创 阿里云点播录制,上传,播放使用说明及遇到的坑

项目开发中使用阿里云的点播功能,从中遇到了一堆坑,特写此笔记。希望对使用阿里云点播的伙伴们有所帮助。 一、讲解录制功能 首先赋上阿里云的官方录制文档 https://help.aliyun.com/document_detail/53421.html?spm=5176.doc53407.6...

2017-10-31 10:39:11

阅读数 5551

评论数 7

原创 跳转相册和剪切页面点击取消崩溃

加一个判断就好,做个笔记。 if(resultCode == RESULT_OK){ } 捎带记录下跳转相册选择剪切图片。 1、隐式意图跳转相册 // 指定照相机拍照后图片的存储路径,这里存储在自己定义的文件夹下 if (Environment.MEDIA_MOUNTED.e...

2017-10-31 09:57:15

阅读数 153

评论数 0

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