- 博客(30)
- 收藏
- 关注

原创 [Java]集合与泛型
普通数组的工作方式如下面的代码,函数takeAnimals的参数类型是Animal[[],在调用的时候,可以把Animal[]或者Dog[]传递进去( Dog是Animal的派生类)import java.util.*;public class TestGenerics1 { public static void main( String[] args ) { new Tes
2017-06-21 18:33:44
444

原创 iOS系统中H264硬解及显示详解
iOS系统中H264硬解及显示说明iOS系统中H264硬解及显示说明苹果在iOS 8.0系统之前,没有开放系统的硬件编码解码功能,不过Mac OS系统一直有,被称为Video ToolBox的框架来处理硬件的编码和解码,终于在iOS 8.0后,苹果将该框架引入iOS系统。一、VideoToolbox基本数据结构:1、CVPixelBuffer:编码前和解码后的图像数据结构;2、CMTime、CMC
2016-05-05 16:40:58
10169
原创 Nodejs 数组的队列以及forEach应用
Nodejs 数组的队列以及forEach应用本文主要记录了在Nodejs开发过程中遇到过的由数组特性引起的问题及解决方式,以及对数组的灵活应用。 本文代码测试结果均基于node v6.9.5Nodejs 数组的队列以及forEach应用数组与队列数组与forEachforEach对含空元素数组处理机制数组与队列利用数组对象方法push/shift可实现队列先进先出特性,例如:>a=[][
2017-11-06 18:23:17
6310
原创 使用变长参数实现log输出
__VA_ARGS__宏使用说明sample code:vsnprintf和snprintf使用说明sample code:相关测试源码参考资料
2017-08-23 14:37:12
641
原创 Android Event bus 消息/事件通信框架介绍和应用,以及与handle message和broadcastreceiver之间的比较
Event bus是一款针对Android优化的事件发布/订阅框架,快速且轻量,是 github 的明星项目之一。其优点是发送者和接收者解耦,且代码简洁,使用简单,是当前流行的消息传递框架。 代替了handler,broadcastreceiver,interface回调在Fragment,Activity,Service,线程之间传递消息。
2017-08-09 17:18:07
1035
原创 NDK开发入门
本文以在Android APP使用speexdsp中的回音消除为例来说明NDK开发流程;编译native libdownload speexdsp编写cmake此部分的流程可以参见上一篇blog《CMake交叉编译》写好Java Class// EchoCanceller.javapackage com.icatchtek.smarthome.echo;public class EchoCa
2017-07-14 14:48:28
561
原创 CMake交叉编译
Android交叉编译准备Android Toolchain这里我们需要的是Android Standalone的toolchain,生成方法可以参考 Mastering Android NDK Build System - Part 1: Techniques with ndk-build Mastering Android NDK Build System - Part 2: Standal
2017-07-14 14:39:32
3326
原创 [Java]集合中数据排序与避免重复
各种集合的特点以及关系List: 对付顺序的好帮手 一种知道索引位置的集合;可以有元素重复;Set: 注重独一无二的性质 不允许重复的集合;无序Map: 用key来搜索的专家 使用成对的键值和数据值;key不允许重复;不同key可以引用相同的value;List中的数据如何排序List自己的API是没有排序的,需要借助Collectio.sort()如果是内置类型,比如St
2017-07-05 15:05:37
1363
原创 [Java]JAR的生成
JAR是什么JAR就是Java ARchive。这种文件是个pkzip格式的文件,它能让你把一组类文件包装起来,所以交付时只需要一个JAR文件。JAR可以是可执行的。为何要生成JAR把你的程序塑造成可部署给外人使用的形式。如何生成创建可执行的JAR从源文件生成类(class)文件;// 将源代码与class文件分离cd MyProject/sourcejavac -d ../class
2017-07-05 14:14:04
385
原创 Android Studio中Gradle的部分相关配置
如果你经常遇到AS新建一个project就一直卡在读进度条,或者更新AS后Sync gredle失败,提示gradle版本要多少多少。 这个时候有几个目录要注意一下,以Windows为例,其它平台同理: - c:\Users\xxx\.gradle\wrapper\dists\ - d:\Android Studio\gradle\m2repository\com\android\tool
2017-06-29 10:49:29
639
原创 [Java]日期和时间的使用
本文主要针对Date,Calendar两个类的部分操作做说明,目前的项目中使用这两个类已经可以满足使用,将项目中用到的内容做一个总结,方便日后查询。Calendar注意事项Calendar默认一月为0; 在设置月份时,以一月为例Calendar cal = Calendar.getInstance();cal.set( Calendar.MONTH, 1 - 1 ); // 用要设置的月份
2017-06-26 11:24:58
428
原创 回音消除原理解析及Android应用
回音消除原理解析及Android应用标签(空格分隔): Android Echo-Cancellation什么是回音回音分为两种:声学回音(Acoustic Echo)线路回音(Line Echo)目前我们只讨论声学回音;声学回音是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的; 回音消除原理原理是,在发送时,把不需要的回音从语音流中间去掉; 对于一个混合了两个声音的语音流,
2017-06-08 14:30:58
7790
原创 JavaScript基础
使用JS的形式内嵌JS引用外部JS注释变量数据类型基本数据类型值类型引用类型传递参数检测类型typeofinstanceof作用域引用类型对象属性的访问继承使用prototype实现继承函数表达式闭包ArrayDate类型函数内部属性output条件语句ifswitch循环
2017-03-31 09:38:24
503
原创 CMake入门(一)
CMake是什么CMake是一个opensource的软件项目构建管理工具;它允许开发者用一种简单的文本格式进行构建参数的指定。
2017-03-29 16:05:56
478
原创 基于Node.js微信授权获取用户信息
前期准备映射工具 将本机地址映射到公网ngrok下载地址: http://www.qydev.com/选择linux版本,将工具下载到目录: /home/b.jiang/ngrok02/linux_amd64/ngrok 切换到此目录,运行下面的命令./ngrok -config=ngrok.cfg -subdomain weixintest01 2333即可将2333 端口映射到公网地址 :
2017-03-16 17:24:57
8663
原创 iOS APP 中使用Bugly进行质量跟踪管理
目录目录什么是BuglyBugly使用说明注册产品iOS SDK 使用详解SDK集成通过CocoaPods集成手动集成初始化SDK导入头文件初始化Bugly测试相关视频教程参考什么是Bugly 腾讯 Bugly,是腾讯公司为移动开发者开放的服务之一,面向移动开发者提供专业的 Crash 监控、崩溃分析等质量跟踪服务。Bugly 能帮助移动互联网开发者更及时地发现掌控异常
2017-01-24 14:30:25
1792
原创 Google OAuth2 for Android(type of web OAuth)
Google OAuth2 for Android(type of web OAuth)一、应用创建和注册1.登录google登录Google 应用 2.创建项目3.创建OAuth同意屏幕4.创建OAuth客户端 5.查看Google client id 和sercret key二、Android app中如何使用OAuth客户端1.配置和提交授权申请使用Github第三方的libAndroid
2017-01-23 17:05:08
2603
原创 Android APP 使用Bugly进行APP质量跟踪
Bugly官网Bugly使用说明库文件导入Bugly支持自动集成和手动集成两种方式自动集成在Module的build.gradle文件中添加依赖和属性配置:android { defaultConfig { ndk { // 设置支持的SO库架构 abiFilters 'armeabi' //, 'x86', 'armeabi-
2017-01-23 16:41:06
837
原创 使用HTTP获取 OAuth 2.0 access tokens
1.搭建开发环境2.请求 code3.请求access token4.使用refresh token来刷新access token
2017-01-22 10:51:49
3475
1
原创 如何将Live stream发布到Youtube
1.搭建开发环境2.获取用户授权3.建立LiveBroadCast频道4.建立streaming通道5.绑定LiveBroadcast和LiveStreams6.切换BroadCastLive状态7.流程图
2017-01-20 10:05:16
6073
1
原创 在Android5.0系统上加载位于SD卡上的本地动态库
在Android5.0系统上加载位于SD卡上的本地动态库最近在加载位于Android设备SDCARD上的本地动态库时遇到权限问题,估计是5.0系统权限管理限制更多,而SDCARD上文件基本上没有可执行权限,而一般非root用户无法通过chmod为其添加. 加载代码(APP启动时):System.load("/mnt/sdcard/libfeatureA.so");异常闪退: dlopen("/
2015-10-11 13:03:02
2416
原创 使用SDL2.0进行YUV显示
本文描述如何从ffmpeg decode出来的YUV frame到SDL2.0显示,重点在如何将ffmpeg decode的yuv format转换到SDL2.0可以显示的format,以及SDL如何显示。为什么要用YUV显示在使用软解方式实现一个视频播放器时,显示部分如果需要使用RGB format,由于ffmepg decode出来的format为YUV420,则需要做一次从YUV420到RGB
2015-09-23 14:01:38
5342
原创 Android Eclipse NDK开发环境搭建
环境准备本文描述在windows下使用Eclipse进行NDK开发环境的搭建,后续环境设置均为在windows下有效(linux下设置有差异); 在进行NDK开发之前,需要安装以下软件:JDK; 安装JDK以后,设置环境变量: JAVA_HOME = C:\Program Files\Java\jdk1.8.0_51\ Eclipse;Android SDK( install in S
2015-09-22 13:57:13
571
原创 Boost学习笔记 -- 字符串与文本处理
lexical_cast使用lexical_cast#include <boost/lexical_cast.hpp>using namespace boost;sampleint x = lexical_cast< int >( "100" );long y = lexical_cast< long >( "2000" );float pai = lexical_cast< float >(
2015-05-04 13:56:31
796
原创 Boost学习笔记 -- memory management
RAII机制为了管理内存等资源,C++程序员通常采用RAII机制(资源获取即初始化,Resource Acquisition Is Initialization ),在使用资源的类的构造函数中申请资源,然后使用,最后在析构函数中释放资源。 如果对象是在栈上创建的,RAII机制可以正常工作;但如果对象是使用new在堆上创建的,那么析构函数不会自动调用,程序员必须明确使用delete来释放资源。智能指
2015-04-22 13:54:42
636
原创 Boost学习笔记 -- thread
thread库为C++增加了线程处理的能力,提供了简明清晰的线程、互斥量等概念。使用thread库#include <boost/thread>using namespace boost;链接时,需要使用-lpthread选项来链接POSIX线程库。时间功能在多线程编程时,经常要用到超时处理,thread库V3使用了chrono库提供对时间的支持。 chrono库的时间概念与date_time库
2015-04-20 15:47:26
827
原创 Boost学习笔记--filesystem
Boost学习笔记–filesystem文件操作是编程中非常重要的一个部分,filesystem库是一个可移植的文件系统操作库,它使用POSIX标准文件系统的路径,接口很类似标准库的容器和迭代器,使C++具有了类似脚本余姚的功能,可以跨平台操作目录、文件,写出通用的脚本程序。filesystem库的核心类是path,它屏蔽了不同文件系统的差异,使用可移植的POSIX语法提供了通用的目录,路径表示。简
2015-04-17 17:00:35
786
转载 优快云 MarkDown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl B 斜体 Ctrl I 引用 Ctrl
2015-02-09 09:19:54
866
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人