自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一航jason

和谐中求发展

原创 android架构设计之插件化、组件化

原文地址:http://blog.csdn.net/mhhyoucom/article/details/79000072 如今移动app市场已经是百花齐放,其中有不乏有很多大型公司、巨型公司都是通过app创业发展起来的;app类型更加丰富,有电子商务、有视频、有社交、有工具等等,基本上涵盖了各行...

2018-01-08 10:21:50 34605 6

原创 《android framework常用api源码分析》之Activity启动流程

Activity的启动流程是一个源码分析非常重要的一个知识点,其实通过这篇学习你可以对android内部源码有个大致的了解,应为他耐括基本上最重要的几处只是,有binder机制、handler机制、antivity strack、context等重要内容。Activity的启动流程相对复杂一下,涉...

2017-12-14 12:03:20 1580 0

原创 android speex AEC 回音消除

android speex AEC 回音消除。 有时候喇叭声音会被mic录制进去,就会产生回音数据,这是非常让人头疼的,所以去回音在音视频应用中非常重要。 现在主流的回音消除手段有android自带api效果很好,如果其他平台就要使用c库了。有哪些c库具备这个功能webrtc 、 speex等。他...

2020-03-24 16:32:38 224 0

原创 ffmpeg pcm混音

视频会议中经常需要处理的场景有多路音频混音,那么混音有很多种算法有比较主流的有aec、平均权重等方法;如果公司要开发生产级别的音频混合要的算法可能会更加多,可以找算法公司购买。 ffmpeg也有混音的操作,用的就是平均权重算法。 #define ENABLE_FILTERS 1 static c...

2020-03-20 09:19:13 192 0

原创 如何使用ndk中addr2line工具查询so库中错误信息行数

如何使用ndk中addr2line工具查询so库中错误信息行数。 jni现在在android项目中已经非常常见了,但是错误信息并不想android那样友好。 常见的c错误如下: 2020-03-12 12:13:49.055 10000-10372/com.tianchen.cloud_disk ...

2020-03-12 13:46:17 89 0

原创 ffmpeg bitstream filter使用

ffmpeg bitstream filter使用 使用ffmpeg bitstream filter为nalu加头用于网络传播。 初始化: AVBitStreamFilter *filter = const_cast<AVBitStreamFilter *>(av_bsf_get_b...

2020-02-27 11:09:12 237 0

原创 ffmpeg bitstream filter 种类

ffmpeg bitstream filter 种类 例如对h264 aac 进行网络传输时候时候要用到bitstream filter添加描述; 种类有: 2.1 aac_adtstoasc 2.2 av1_metadata 2.3 chomp 2.4 dca_core 2.5 dump_ext...

2020-02-26 13:32:29 242 0

原创 android支持的视频音频硬解码器

android支持的视频音频硬解码器 MediaCodec支持的有vp8 、VP9 、H.264、H.265、MPEG4、H.263等; MediaCodec支持的音频格式有3gpp、amr-wb、amr-wb、amr-wb、g711-A、g711-U 、AAC(not packaged in L...

2020-02-26 12:40:38 312 0

原创 ffmpeg保存avframe中pcm数据到文件

ffmpeg保存avframe中pcm数据到文件。 代码如下: data_size = av_get_bytes_per_sample(dec_ctx->sample_fmt); if (data_size < 0) { L...

2020-02-26 12:13:40 200 0

原创 ffmpeg手动添加adts头部信息

ffmpeg手动添加adts头部信息 ffmpeg adts 头部信息都要从 extradata 字段里面提取 。 aac数据包为什么adts 要加头 ,因为没有头部信息在网络传播过程中难以解码使用。 工具方法: typedef struct { int write_adts; ...

2020-02-26 12:03:02 499 0

原创 android jni 动态加载so动态库中函数

android jni 动态加载so动态库中函数。 思路: 1、懒加载so库。 void *handle=dlopen("libpboxcipher.so",RTLD_LAZY);//使用懒加载模式 2、定义函数指针。 typedef int (*Testfilelen)(u...

2020-02-04 10:55:25 200 0

原创 opencv描边和浮雕基于Sobel

opencv描边和浮雕基于Sobel 代码: /** * @file Sobel_Demo.cpp * @brief Sample code uses Sobel or Scharr OpenCV functions for edge detection * @author OpenCV t...

2020-01-02 15:11:26 116 0

原创 opencv 傅里叶变换

opencv 实现傅里叶变换,必须承认工程师、码农还真的不是一回事,做个笔记保存下吧先,傅里叶还真的看不明白!!! 代码: int main() { //C:/Users/liyihang/Desktop/sc/out.png Mat I = imread("C:/User...

2019-12-30 14:56:08 76 1

原创 opencv用伽马矫正实现光补偿笔记

opencv用伽马矫正实现光补偿笔记 代码: void MyGammaCorrection(Mat& src, Mat& dst, float fGamma) { CV_Assert(src.data); // accept only char type matrices ...

2019-12-27 16:02:07 74 0

原创 c语言多线程和信号量使用

线程使用: int com_index=1; pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; int thread_run(void * ins){ if (pthread_mutex_lock(&mutex)!=0){ ...

2019-12-06 11:11:03 218 0

原创 ffmpeg使用Filter处理aac音频

前言 文章使用Filter处理封装内容音频将其转码。输出文件使用命令播放: ffplay -f s16le -ar 48000 -ac 1 bs.pcm 代码 #include <unistd.h> #include <libavcodec/avcodec.h> #in...

2019-12-05 10:01:27 140 0

原创 android 生产者 消费者 模式

package com.chenxing.searchjob.sdk.view; import android.util.Log; public class TestClass { static void msg(String msg){ Log.i("IM...

2019-03-23 16:35:28 388 0

原创 android 解释器模式

package com.chenxing.searchjob.sdk.view; import android.util.Log; import java.util.HashMap; import java.util.Map; public class TestClass { pr...

2019-03-23 11:09:24 111 0

原创 android 访问者模式

private void t() { juzi juzi = new juzi(); langtou langtou = new langtou(); gongju gongju = new gongju(); gongju.add(...

2019-03-23 10:21:04 75 0

原创 android 存档模式

private void t() { game game = new game(); game.level=20; gameBean gameBean = game.create(); player player = new play...

2019-03-23 09:52:10 149 0

原创 android 迭代器模式Iterator

private void t() { myList myList = new myList(); myList.add("one"); myList.add("two"); myList.add...

2019-03-23 09:30:01 619 0

原创 android 链式模式 责任链

private void t() { bj bj = new bj(); cs cs = new cs(); cz cz = new cz(); bj.next=cs; cs.next=cz; bj....

2019-03-23 09:08:27 107 0

原创 android 状态模式

private void t() { person person=new person(); person.setState(new yes()); person.getState().fire(); person.setState(...

2019-03-22 17:46:04 41 0

原创 android 享元模式

private void t() { fc fc = new fc(); person jason = fc.search("jason"); jason.setPrice(10); Log.i(TAG, &quo...

2019-03-22 17:24:14 48 0

原创 android 节点组合模式 DOM模式

private void t() { viewGroup viewGroup=new viewGroup("layout"); viewGroup.addView(new view("image")); vi...

2019-03-22 17:05:10 104 0

原创 android 对象拷贝克隆模式

private void t() { Card card = new Card(); card.setNum(19); card.setNmae("jason"); Log.i(TAG, "t: &quo...

2019-03-22 16:32:48 909 0

原创 android 工厂模式

private void t() { exectur exectur=new exectur(); Runable runs = exectur.getRuns(); runs.run(); Runable runs2 = exect...

2019-03-22 16:04:45 41 0

原创 android builder 构建者模式

private void t() { Dialog.builder builder=new Dialog.builder(context); builder.setMsg("消息"); builder.setTitle("...

2019-03-22 15:51:28 67 0

原创 android 装饰者模式

private void t() { contextImp imp=new contextImp(); imp.startActivity(); activity activity=new activity(imp); activit...

2019-03-22 15:14:04 27 0

原创 android jni 多线程编程 join thread

android jni 多线程编程 join thread: // // Created by 11 on 2019/3/7. // #include &lt;com_reactnative_jason_jnidome_JNIClass.h&gt; #include &l...

2019-03-09 11:22:17 149 0

原创 CLEARTEXT communication to upload-as0.xxxx.com not permitted by network security policy

android设备网络请求时候出现了下面错误: CLEARTEXT communication to upload-as0.xxxx.com not permitted by network security policy 这里是意思大概是禁止明文传输。 原因: 由于 Android P(版本2...

2019-03-07 15:40:19 132 0

原创 android jni 文件操作

android jni 中文件操作与C语言原生文件操作有一些不同,我们看看文件操作中的创建写入和读取文件 创建文件写入内容: JNIEXPORT jstring JNICALL Java_com_reactnative_jason_jnidome_JNIClass_getStringForJNI ...

2019-02-26 10:34:17 580 0

原创 c语言常用算法整理

这里整理c语言常用算法,主要有: 交换算法 查找最小值算法 冒泡排序 选择排序 插入排序 shell排序 (希尔排序) 归并排序 快速排序 二分查找算法 查找重复算法 代码如下: //交换 void swap(int *a, int *b){ int tmp=*a; *a=*b; ...

2019-02-26 10:10:57 4185 1

原创 android 仿微信群聊头像 合成图片

android 仿微信群聊头像 合成图片,微信中可以显示出群头像为多个用户的头像网格,这里讲方法已经封装好, 如果有记得点赞哦!! 热更新框架:https://github.com/jasonliyihang/speed_tools 网络优化工具集:https://github.com/woshi...

2019-01-24 17:45:25 1264 0

原创 解决FragmentPagerAdapter notifyDataSetChanged() fragment不刷新问题

解决FragmentPagerAdapter notifyDataSetChanged() fragment不刷新问题 思路:在设置新数据时候移除老的fragment从manager中: public void setData(List&lt;Fragment&gt; fr...

2018-12-28 16:21:11 793 0

原创 android信号量Semaphore的妙用

信号量Semaphore平时一般开发中不算是常见的api,但是他能给你提供管理多线程调度的能力。接下来我们用一个简单例子来演示他的作用。 假设情景,一个页面有个多个异步请求,我需要管理他们,要他们按照顺序一个接一个执行,这里我们就可以使用信号量完成。 具体含义看注释: 封装的工具类: public...

2018-12-28 16:02:53 2435 1

原创 Android dependency 'com.android.support:recyclerview-v7' has different version for the compile (28.0

开发中出现: Android dependency ‘com.android.support:recyclerview-v7’ has different version for the compile (28.0.0-alpha3) and runtime (28.0.0) classpath....

2018-11-23 14:50:54 1635 0

原创 android 架构之集成react native框架js混编APP

本篇文章主要总结一下现在APP当中使用的js、webView混编架构和技术。 什么是 js 混编? js混编简单说就是使用JavaScript开发APP程序。 android应用使用的是java,Kotlin 、c/c++ 为主的语言开发,ios使用的object-c 、 swift、c/c...

2018-11-01 13:39:26 582 0

原创 不管你喜不喜欢 androidX 它都来了

本着我踩的坑都要分享出来的精神写了今天文章。 com.android.support 系列的依赖报名已经不陌生了,为了兼容而出现的他们在更新到28时候谷歌官方宣布停止更新,原因就是谷歌爸爸不喜欢这个名字了!! 呵呵 玩笑,只是版本管理有些乱,开发中也经常会碰到各种compat 而且原来越多,所以谷...

2018-10-15 17:10:26 12040 3

原创 android 模仿微信输入时获取最新一张截图或拍照相片

首先看看这张图片: 微信有个很好用户体验功能就是在输入时候提示你刚刚拍照的相片或者是截图的图片,可以快速输入。 实际上是通过内容提供者来从截图或者拍照文件中获取最新的图片进行时间对比来选择最新一张,我们来看看代码实现。 已经封装成工具类直接可以使用: package com.che...

2018-08-28 12:15:02 822 0

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