自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 编译 FFmpeg 之 clang

使用 clang 编译 FFmpeg一、 准备工作下载 FFmpeg、 最新版 ndk(上篇文章已经提及)整理下文件(当然用你喜欢的就行, 只要配置的路径对就没问题)二、 明确使用 target-os=android, 使用 clang 进行编译2.1 明确 clang 编译环境的位置# 在相应 ndk 的这个目录下ndk/toolchains/llvm/prebuilt/dar...

2019-08-20 13:18:32 3439 8

原创 编译 FFmpeg 之 gcc

使用 gcc 去编译 FFmpeg一、 先下载 FFmpeg、 NDK直接去官网 clone FFmpeg 源码git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载 ndk。 注意现在我们使用的是 gcc 去编译, 现在最新版的 ndk 已经去掉了, 所以我们需要下载老版本。 好像是 r17 还有吧。 不过把现在最新的 r20 也 下...

2019-08-20 12:26:07 2126

原创 编译最新版 FFmpeg 前需要知道的几点

编译最新版 FFmpeg 前需要知道的几点一、 NDK 版本在老版本中有 gcc 编译器, 在网上好多博客基本都是用的 gcc 去编译的。新版本中, gcc 已经没有了, 可以使用 llvm 的 clang 去编译。新版本的头文件和实现库分离, 需要在编译时指定头文件和库的位置。新版本的 FFmpeg 中 target-os 提供了 Android。 你可能在其他博客文档中看到 上来修...

2019-08-20 10:42:19 963 1

原创 Java 完美获取泛型类型(包含嵌套多层的泛型)

完美获取泛型类型(包含嵌套多层的泛型)1. 工具类2. 使用方法

2019-04-26 14:42:16 6762 3

原创 AutoNet-Ios 网络框架(简单且强大, 增加了拦截器新用法)

AutoNet-Ios(网络框架)AutoNet代理Alamofire并使用HandyJSON处理了Json数据。 用户直接拿到实体类, 是Ios开发网络应用更加简单Git地址1. Ios版本:https://github.com/xiaoxige/AutoNet-Ios2. Android版本:https://github.com/xiaoxige/AutoNet特色* 使...

2018-09-26 14:31:39 468

原创 AutoNet (Android 网络框架)

AutoNet (网络框架)AutoNet 代理了OkHttp, 处理了复杂繁琐的网络请求代码! 使Android开发网络应用更加简单,只需关注业务即可。Git地址https://github.com/xiaoxige/AutoNet特色* 使用简单、调用方便* 支持注解、 链式* 支持实体类、map传值* 可防止内存泄漏(需继承RxFragmentActiv...

2018-07-31 09:38:20 1020

原创 小程序空布局 非侵入(加载中、加载失败、数据为空)

# SmallProgramEmptyLayoutDemo程序必用的空布局(包含加载中、加载为空、加载错误、自己的布局)。完全不影响其他逻辑git地址:https://github.com/xiaoxige/SmallProgramEmptyLayoutDemo# 介绍  空布局, 包含记载中、加载为空、加载错误。 自己还是和原来那样开发小程序那样, 只是在你要使用空布局的根布局使用empty-l...

2018-06-17 21:16:20 2283

原创 组件通讯设计原理及注入实现原理

组件通讯设计原理及注入实现原理主要涉及一下核心知识点注解注解处理器自动生成代码 (javapoet/kotlinpoet)自定义插件ASMtransform本文主要设计设计和思考实现思路、 解决问题的方式及经验, 至于以上的各个知识点网上一大把, 读者可自行学习, 这里不再陈述。所有功能已进行实现, 其用方式依赖及实现源码已在 Github 上 ServiceAssistant, 该库不管组件通讯的 Service 还是进行注入操作 Injected 都是懒加载, 而且一步到位, 跟用

2021-04-10 18:42:04 235

原创 Android 组件化通讯库

ServiceAssistant(服务助手)github 地址ServiceAssistant介绍为组件化而生, 可以轻松灵活实现组件之间的任何通信及交互。支持亮点库特别 mini, 核心库就 3 个类, 整个库也一共就 10 个类组件之间的任意通讯组件之间的回调实现组件之间的数据共享上层可以轻松调用下层(A 依赖 B, 可实现 B 对 A 的任意访问)更加灵活(你想怎么都行)依赖在项目 gradle 中配置repositories { maven {

2021-04-03 11:20:10 250 1

原创 Rxjava 过程分析四之 observeOn

Rxjava 过程分析四之 observeOn说明本文只分析 observeOn 主要思想和流程, 如果想看 subscribeOn 请看上一篇文章基本使用 Flowable.create(new FlowableOnSubscribe<String>() { @Override public void subscribe(FlowableEmitter&l...

2019-12-04 20:40:40 328

原创 Rxjava 过程分析三之 subscribeOn

Rxjava 过程分析三之 subscribeOn说明只分析 Rxjava 线程切换的大致过程和思想。以弄明白流程为主, 线程切换就是切换到其他线程中去运行, 我们知道 Rxjava 提供了 newThread, io密集型的, cpu密集型的等方式. 我们就拿看名字最得劲的分析下。 那就是算 newThead。这篇只介绍 subscribeOn, 至于 observeOn 我们再下一篇...

2019-12-04 16:12:06 452

原创 Rxjava 过程分析二(操作符流程)

Rxjava 过程分析二(操作符流程)说明主要分析操作符的设计流程, 只要关注主要环节, 大致流程。由于每个操作符背后的设计基本一致, 所以随便选出一个分析即可。 那我们肯定选最简单的 map 啦哈。基本使用Flowable.create(new FlowableOnSubscribe<String>() {@Overridepublic void subscribe...

2019-12-02 17:37:00 123

原创 Rxjava 过程分析一(简单流程)

Rxjava 过程分析一说明该文章是基于 Rxjava2 源码。该篇只是讲述 Rxjava 建议的用法,不涉及操作符和线程切换, 后两个会有新的篇幅去写。 一步一步的来。在源码中那些判空还有 Rxjava 中 RxJavaPlugins 钩子等在分析中去除(只关注用法和思想, 和主流程不管的暂时剔除)。由于习惯, 和 Rxjava2 中的命名。 我称 emitter 为上游, 也就是发...

2019-12-02 16:29:51 254

原创 复习。一句话带过。(老掉牙)东西 。二、ThreadLocal

一、 大致介绍不同线程中使用 ThreadLocal 保存的值互补影响…二、 类、方法们ThreadLocalThreadLocalMapThread三、 一句话带过每一个 Thread 都有一个 TheadLocalMap, TheadLocalMap 存储的是一个个 key 为 ThreadLocal, value 为 Object 的变量, TheadLocal 保存值就...

2019-09-10 14:08:34 153

原创 复习。一句话带过。(老掉牙)东西 。 一、 handle 消息机制

一、 使用private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); // xxx }};// 发送消息mHandler.sendMessage();mHandle...

2019-09-10 11:37:38 300

原创 TextView在布局中设置RIghtDrawable的selector没显示出来, 竟然让我找了2个小时(惭愧),做次记录

selector是这样写的:&lt;selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"&gt; &lt;item android:drawable="@mipmap/icon_coupon_arrow...

2018-10-17 12:37:09 486

原创 zimg 安装记录

wget http://www.openssl.org/source/openssl-1.0.1i.tar.gztar zxvf openssl-1.0.1i.tar.gzcd openssl-1.0.1i./config shared --prefix=/usr/local --openssldir=/usr/sslmake &amp;&amp; make installwget http:/...

2018-09-19 11:17:04 2068

原创 Vitamio

Vitamio好多人称之为万能播放器,顾名思义Vitamio最为明显的优势也被体现出来。Vitamio支持的格式很多。Vitamio是一款Android和ios平台的全能多媒体开发框架,它支持大部分的格式,支持流媒体,可以点播和直播音频和视频。经过这几天的学习,总结出来如下: 我主要总结两大部分:* Vitamio的使用、源码及注意点*在hbb项目中播放监控视频那块代码的逻辑...

2018-09-19 11:15:24 1462

原创 反射

反射的介绍 说道反射,我想起第一次接触的时候是在自学Java的时候,不知道算不算是Java的高级部分,还有当时的jdbc。说下我当时使用反射的例子吧,也侧面说明了反射的用处和好处。但是用Java写过一个俄罗斯方块和坦克大战,其中我当时是这样使用反射的。就说俄罗斯方块吧,界面中有好多正方形或者长方形的窗口,每个窗口里的显示的内容不一样,每一个框框其实是都是一个很小很小的图片经过切割和拉上组合成...

2018-09-19 11:14:12 148

原创 Java 同步(易忘)

同步主要从java内容模型中提到的比较多点*synchronizad*volatile每个线程都有自己的工作内存, 而线程是不能直接操作主内存。主内存的变量属于共享变量, 线程需要使用主线程的变量时, 需要先拷贝一份到自己的工作线程中, 自己操作完了再拷贝到主线程中进行同步。如果多个线程都使用了主线程中的一个共享变量的话, 都复制了主线程变量到自己的工作线程, 每个工作线程是不可见的。...

2018-09-19 11:10:27 154

原创 01-观察者思想(借鉴Rxjava源码)

注:只是整理一个好的思想, 伪代码表示、标识1.先上图03-产品开发设计 &amp;gt; 01-观察者思想(借鉴Rxjava源码) &amp;gt; 微信图片_20180508145849.jpg2.分析整理过程□ → 第一层(▓ → 接口回调, 用户自己去实现,可能具有返回值)○ → 第二层(▒ ▓ → 接口回调, 用户去实现, 可能具有返回值, 实现了▓的逻辑, 包含了上层用户的结果和本层的处...

2018-09-19 11:07:34 126

原创 06-扩展消费者思想(借鉴Android嵌套滑动源码)

简单的消费者场景描述一个父亲, 一个孩子这个孩子挣了10钱, 反馈给了父亲10块, 父亲根据自己的需求抽取了n块(0~10块), 剩下的在交给儿子扩展消费者场景描述一个父亲, n个孩子(暂定5个孩子, 分别叫A,B, C, D, E)其中A孩子整理10块钱, 反馈给了父亲10块, 父亲告诉了B, C, D, E, 你们的兄弟A挣了10块, 你们要不, B说A挣得的钱我的要1块, 并反馈给...

2018-09-19 11:07:10 96

原创 05-数据源结构的一个共享数据思想(借鉴Okio源码)

注:它内部用了是双向循环链表, 我并不是要说双向循环链表, 毕竟双向循环链表结构特别简单就不用说了,这次主要说的是里面用到了一个很吊的一个数据共享的思想简易的图03-产品开发设计 &gt; 05-数据源结构的一个共享数据思想(借鉴Okio源码) &gt; 微信图片_20180510103022.jpg源码里的可以证明的其中一个段代码public Segment split(int byte...

2018-09-19 11:06:45 133

原创 04-代理思想(借鉴recyclerView和阿里vLayout源码)

简单描述一个类的一些行为表现让另一个类去实现在vlayout里的表现形式(不用代码去描述了, 毕竟是思想上面的)一个列表长什么样子, 它内部的条目的大小样子, 该如何摆放、缓存等等全部都交给了另一个单独的类去承办了。如果以后我们需要改样式等等只需要重新定义代理即可。源码中的使用过程.recyclerView长什么样交给了LayoutManager, 而LayoutManger里的摆放又全...

2018-09-19 11:06:12 174

原创 03-装饰者思想(借鉴日历源码)

简单描述:打个比方:一个成型的产品, 需要去装饰, 每个装饰的人各自装饰各自的, 谁都不去影响到谁(他们只会自己的装饰,其他人的装饰本领都不会),最后全部装饰的人都把自己的装饰给做好了, 最后一个精美的产品就好了。代码中简单方法(紧紧是描述)有一个最终的功能模块需要去装饰, 在这个功能模块中定义一个装饰列表, 并在相应的装饰的时机时去轮询这个列表, 让每一个装饰都可以去装饰产品。(当然装饰必...

2018-09-19 11:05:48 110

原创 02-拦截器思想(借鉴OkHttp3源码)

简单描述:打个比方:有一个产品需要设计, 有n个产品人, 每走到一个产品人, 就会给你提一个需求, 最后一个产品人也走完了(每一个产品人都可以偷梁换柱把需求改的面目全非), 那就去做这个产品了。做完产品后, 然后再一个一个产品人的去确认, 可能每一个产品人看了产品后又会对这个已经做出来的产品进行修改(每个产品人也都可以把最后的产品偷梁换柱)。总体就是:一个参数可以经过多个拦截器去修改, 每一...

2018-09-19 11:05:26 179

空空如也

空空如也

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

TA关注的人

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