Quantcast
Channel: Sam的技术Blog
Browsing all 158 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Android6.0权限学习

作者: Sam (甄峰)  sam_code@hotmail.com 很久没有做Android App了。最近在搞Camera程序时,突然发现Android6.0后, 权限思路使用有了较大不同。现记录,学习,摘抄如下:  1. Android 6(API23)的动态权限:  Android 6.0+ 版本, 不再像之前版本那样在安装阶段询问用户是否同意APP所要求的一大堆权限。...

View Article


Image may be NSFW.
Clik here to view.

Windows环境下OpenCV开发环境搭建(VS2012+OpenCV2.4.9)

作者: Sam (甄峰) sam_code@hotmail.com 1. 下载OpenCV For Windows Pack: https://opencv.org/releases.html 因为在嵌入式平台上使用了OpenCV2.4.9. 所以在Windows平台也选择对应版本。  2. 安装:  OpenCV2.4.9 安装包其实是个压缩包: Sam把它放到:...

View Article


Image may be NSFW.
Clik here to view.

AndroidCamera程序研究

作者: Sam (甄峰) sam_code@hotmail.com Sam在Android平台下获取Camera数据,长期使用在NativeC层,利用V4L2接口获取Camera数据。或利用交叉编译OpenCV,并强行修改其底层, 使之使用V4L2接口而获得Camera数据。 在Android...

View Article

Image may be NSFW.
Clik here to view.

OpenCV4Android编译详解

作者: Sam(甄峰)  sam_code@hotmail.com 0. 背景简介:  之前为Android平台分别编译过OpenCV2.0,  OpenCV2.4.20 OpenCV3.0等版本。并记录下来: http://blog.sina.com.cn/s/blog_602f87700102wwvb.html...

View Article

Image may be NSFW.
Clik here to view.

NDK下各编译器对C++特性的支持

作者: Sam (甄峰)   sam_code@hotmail.com Sam对C++并不擅长,但在使用NDK编译众多第三方库时,会遇到一些C++ 特性支持问题。通常的做法都是在编译选项中增加-std=c++11或者-std=c++0x.  但还是有一些特性无法通过编译。现分析如下。 0. 背景介绍: NDK在R10之后,就推荐使用clang, 而非GCC....

View Article


Image may be NSFW.
Clik here to view.

Valgrind在Android平台的使用

作者: sam(甄峰)   sam_code@hotmail.com 几年前,Sam听同事说使用内存使用分析软件。但没有真正使用过。这次又有同事推荐Valgrind. 所以学习之。  

View Article

Image may be NSFW.
Clik here to view.

利用ndk-gdb调试Android纯NativeC程序

作者: Sam (甄峰)  sam_code@hotmail.com  

View Article

Image may be NSFW.
Clik here to view.

AndroidJNI记录

作者: Sam (甄峰)   sam_code@hotmail.com 很早之前,在Android 下使用OpenGL时,用到了JNI。当前看到同事使用JNI,生成方式不同。所以记录之。 1. 静态注册+NDK编译: 在NDK Sample中,有gles3jni , hello-gl2, hello-jni等例子程序。他们分别是:OpenGLES3.0,...

View Article


Image may be NSFW.
Clik here to view.

OpenCV底层对Camera的操作

作者: Sam (甄峰)   sam_code@hotmail.com OpenCV提供接口,可以对Camera进行操作。 0.  OpenCV对Camera的操作所属目录文件: OpenCV对Camera的操作,有多种方式。从VideoCapture class开始。 在modules/videoio/include/opencv2/videoio.hpp中,声明了一个class: class...

View Article


Image may be NSFW.
Clik here to view.

TensorflowNDK编译

作者: Sam (甄峰)   sam_code@hotmail.com 0. TensorFlow简介: TensorFlow™ 是一个开放源代码软件库,用于进行高性能数值计算。借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU、TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)。TensorFlow™ 最初是由 Google Brain 团队(隶属于 Google...

View Article

Image may be NSFW.
Clik here to view.

Linux平台使用FFMPEG获取USBCamera数据

作者: Sam (甄峰)  sam_code@hotmail.com 最近有同事在Windows上使用ffmpeg获取Camera数据。提到ffmpeg获取Camera信息和数据方便易用,提供更多信心。 比OpenCV好用多了。 于是在Linux平台也试用之。  

View Article

Image may be NSFW.
Clik here to view.

Linux下IO多路复用Linux下的IO模型

作者: Sam (甄峰)  sam_code@hotmail.com 0. Linux下的IO模型: I/O操作, I/O操作通常包括两个阶段: A. 等待数据准备好。 B. 和内核交换数据。(读写) 对socket上的输入操作来说, A步骤就是等待数据从网络中到达,此时,数据被存放在内核缓冲区。 B操作则是利用系统调用read, 把数据从内核缓冲区读取到应用程序层。 0.1:...

View Article

Image may be NSFW.
Clik here to view.

Linux下IO多路复用select,poll,epoll

作者: Sam (甄峰)  sam_code@hotmail.com 1. I/O多路复用: IO多路复用使得程序可以同时监听多个文件描述符(socket也是一种文件描述符),这对提高程序性能至关重要。 通常,网络程序在下列情况下需要使用I/O复用技术:  A. 客户端程序要同时处理多个socket. B. 客户端程序要同时处理用户输入和网络连接。 C....

View Article


Image may be NSFW.
Clik here to view.

Linux下IO多路复用epoll的使用初探

作者: Sam (甄峰) sam_code@hotmail.com 1. 基础介绍: epoll 是2.6.8 kernel 加入的IO复用模型,它从三个方面改进了select和poll模型。现在我们先尝试使用之。 epoll在实现和使用上与select, poll有很大差异。 A. epoll使用一组而不是一个函数来实现模型。  B....

View Article

Image may be NSFW.
Clik here to view.

Linux线程间同步

作者: Sam (甄峰)  sam_code@hotmail.com Linux下线程间同步,之前只用到mutex.  这次把互斥锁(mutex),条件变量(cond)和读写锁(rwlock)都记录下来。 1. 互斥锁(mutex): 互斥锁的基本想法是: 某个Thread 把mutex锁住后,其它Thread(或本Thread) 再调用lock时,会被告知已经锁住。直到mutex被unlock....

View Article


Image may be NSFW.
Clik here to view.

LinuxSignal详解

作者: Sam (甄峰)   sam_code@hotmail.com 0. 信号背景: 信号是由用户,系统或者进程发送给目标进程的信息。以通知目标进程某个状态的改变或系统异常。 注1: 线程组: 每个进程都会属于一个进程组(Process Group),  一个进程组可以包含多个进程。  进程组会有一个领导进程(Process group Leader)....

View Article

Image may be NSFW.
Clik here to view.

Linux平台assert()使用详解

作者: Sam (甄峰)   sam_code@hotmail.com 0. 基础知识: assert()用来检查不可能发生的行为, 以确保开发者在调试阶段尽早发现不可能发生的事件是否真的发生了。 若真的发生了,则表明这里逻辑有问题。 assert()最好的地方是,它只在debug模式下其效果,在Release模式下无效。保证了程序效率。 assert()  协助开发者发现程序bug....

View Article


Image may be NSFW.
Clik here to view.

libevent使用记录一

作者: Sam  (甄峰)  sam_code@hotmail.com 之前使用epoll+threadpool来做高并发Server, 后决定使用libevent来做替换。现记录如下: 0. 背景知识: libevent是用于编写高速可移植非阻塞IO应用的库。它对select,poll,epoll等接口进行封装。通过设置回调函数的方式,监听文件描述符和socket,...

View Article

Image may be NSFW.
Clik here to view.

libevent使用记录二epoll概念对应

作者: Sam (甄峰)  sam_code@hotmail.com libevent Linux版本是对Epoll进行封装, 以实现IO多路复用。所以,在使用libevent时,常会感觉遇到epoll的对应概念。现尝试研究匹配之。 1. listen socket的设置:(ET模式和NOBLOCK模式) 在使用Epoll方式时, 在listen Socket 被创建后,...

View Article

Image may be NSFW.
Clik here to view.

Android平台深度学习---信息摘抄

作者: Sam (甄峰) sam_code@hotmail.com 1. Android 8.1 (API-27) NNAPI: 人工智能神经网络API(如:TensorFlow) 神经网络 API 能够向设备内置机器学习框架,如 TensorFlow Lite —— Google 移动跨平台机器学习框架、Caffe2 等,提供加速运算和推理。TensorFlow Lite...

View Article
Browsing all 158 articles
Browse latest View live