自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 398

原创 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 9869 1

原创 Android Mediacodec硬解H264并显示

Android H264 硬解

2016-04-14 09:41:34 14761 1

原创 Nodejs 数组的队列以及forEach应用

Nodejs 数组的队列以及forEach应用本文主要记录了在Nodejs开发过程中遇到过的由数组特性引起的问题及解决方式,以及对数组的灵活应用。 本文代码测试结果均基于node v6.9.5Nodejs 数组的队列以及forEach应用数组与队列数组与forEachforEach对含空元素数组处理机制数组与队列利用数组对象方法push/shift可实现队列先进先出特性,例如:>a=[][

2017-11-06 18:23:17 6234

原创 使用变长参数实现log输出

__VA_ARGS__宏使用说明sample code:vsnprintf和snprintf使用说明sample code:相关测试源码参考资料

2017-08-23 14:37:12 575

原创 C++调用Object-C

使用背景调用结构实现方式代码详解编译及运行延伸阅读

2017-08-17 20:49:46 1335

原创 Android Event bus 消息/事件通信框架介绍和应用,以及与handle message和broadcastreceiver之间的比较

Event bus是一款针对Android优化的事件发布/订阅框架,快速且轻量,是 github 的明星项目之一。其优点是发送者和接收者解耦,且代码简洁,使用简单,是当前流行的消息传递框架。 代替了handler,broadcastreceiver,interface回调在Fragment,Activity,Service,线程之间传递消息。

2017-08-09 17:18:07 922

原创 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 527

原创 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 3226

原创 [Java]集合中数据排序与避免重复

各种集合的特点以及关系List: 对付顺序的好帮手 一种知道索引位置的集合;可以有元素重复;Set: 注重独一无二的性质 不允许重复的集合;无序Map: 用key来搜索的专家 使用成对的键值和数据值;key不允许重复;不同key可以引用相同的value;List中的数据如何排序List自己的API是没有排序的,需要借助Collectio.sort()如果是内置类型,比如St

2017-07-05 15:05:37 1277

原创 [Java]JAR的生成

JAR是什么JAR就是Java ARchive。这种文件是个pkzip格式的文件,它能让你把一组类文件包装起来,所以交付时只需要一个JAR文件。JAR可以是可执行的。为何要生成JAR把你的程序塑造成可部署给外人使用的形式。如何生成创建可执行的JAR从源文件生成类(class)文件;// 将源代码与class文件分离cd MyProject/sourcejavac -d ../class

2017-07-05 14:14:04 327

原创 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 597 1

原创 [Java]日期和时间的使用

本文主要针对Date,Calendar两个类的部分操作做说明,目前的项目中使用这两个类已经可以满足使用,将项目中用到的内容做一个总结,方便日后查询。Calendar注意事项Calendar默认一月为0; 在设置月份时,以一月为例Calendar cal = Calendar.getInstance();cal.set( Calendar.MONTH, 1 - 1 ); // 用要设置的月份

2017-06-26 11:24:58 390

原创 回音消除原理解析及Android应用

回音消除原理解析及Android应用标签(空格分隔): Android Echo-Cancellation什么是回音回音分为两种:声学回音(Acoustic Echo)线路回音(Line Echo)目前我们只讨论声学回音;声学回音是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的; 回音消除原理原理是,在发送时,把不需要的回音从语音流中间去掉; 对于一个混合了两个声音的语音流,

2017-06-08 14:30:58 7415 3

原创 JavaScript基础

使用JS的形式内嵌JS引用外部JS注释变量数据类型基本数据类型值类型引用类型传递参数检测类型typeofinstanceof作用域引用类型对象属性的访问继承使用prototype实现继承函数表达式闭包ArrayDate类型函数内部属性output条件语句ifswitch循环

2017-03-31 09:38:24 474

原创 CMake入门(一)

CMake是什么CMake是一个opensource的软件项目构建管理工具;它允许开发者用一种简单的文本格式进行构建参数的指定。

2017-03-29 16:05:56 439

原创 基于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 8447 2

原创 iOS APP 中使用Bugly进行质量跟踪管理

目录目录什么是BuglyBugly使用说明注册产品iOS SDK 使用详解SDK集成通过CocoaPods集成手动集成初始化SDK导入头文件初始化Bugly测试相关视频教程参考什么是Bugly 腾讯 Bugly,是腾讯公司为移动开发者开放的服务之一,面向移动开发者提供专业的 Crash 监控、崩溃分析等质量跟踪服务。Bugly 能帮助移动互联网开发者更及时地发现掌控异常

2017-01-24 14:30:25 1715

原创 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 2412 1

原创 Android APP 使用Bugly进行APP质量跟踪

Bugly官网Bugly使用说明库文件导入Bugly支持自动集成和手动集成两种方式自动集成在Module的build.gradle文件中添加依赖和属性配置:android { defaultConfig { ndk { // 设置支持的SO库架构 abiFilters 'armeabi' //, 'x86', 'armeabi-

2017-01-23 16:41:06 795

原创 使用HTTP获取 OAuth 2.0 access tokens

1.搭建开发环境2.请求 code3.请求access token4.使用refresh token来刷新access token

2017-01-22 10:51:49 3376 1

原创 如何将Live stream发布到Youtube

1.搭建开发环境2.获取用户授权3.建立LiveBroadCast频道4.建立streaming通道5.绑定LiveBroadcast和LiveStreams6.切换BroadCastLive状态7.流程图

2017-01-20 10:05:16 5807 2

原创 在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 2345

原创 使用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 5079

原创 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 526

原创 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 753

原创 Boost学习笔记 -- memory management

RAII机制为了管理内存等资源,C++程序员通常采用RAII机制(资源获取即初始化,Resource Acquisition Is Initialization ),在使用资源的类的构造函数中申请资源,然后使用,最后在析构函数中释放资源。 如果对象是在栈上创建的,RAII机制可以正常工作;但如果对象是使用new在堆上创建的,那么析构函数不会自动调用,程序员必须明确使用delete来释放资源。智能指

2015-04-22 13:54:42 588

原创 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 773

原创 Boost学习笔记--filesystem

Boost学习笔记–filesystem文件操作是编程中非常重要的一个部分,filesystem库是一个可移植的文件系统操作库,它使用POSIX标准文件系统的路径,接口很类似标准库的容器和迭代器,使C++具有了类似脚本余姚的功能,可以跨平台操作目录、文件,写出通用的脚本程序。filesystem库的核心类是path,它屏蔽了不同文件系统的差异,使用可移植的POSIX语法提供了通用的目录,路径表示。简

2015-04-17 17:00:35 716

转载 CSDN MarkDown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl B 斜体 Ctrl I 引用 Ctrl

2015-02-09 09:19:54 831

空空如也

空空如也

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

TA关注的人

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