![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
从程序猿到程序员
努力吧骚年
展开
-
Android开发——Android Studio下使用Cmake在NDK环境下移植Dlib库
环境要求使用AS2015平台,SDK Manager中已经安装了Cmake(编译工具),NDK(环境),LLDB(调试器)。没有装的话,打开SDK Manager选中安装重启AS就可以了。AS项目结构:我从不勾选C++ Support的项目开始,最终的项目结构如下:-projectName-----app----------src-------------main-原创 2018-01-02 16:17:55 · 12767 阅读 · 22 评论 -
Android Studio编译C++代码——Release与Debug版本的记录
问题部分C++代码库,Release版本与Debug版本速度差异非常大,拿之前的Dlib的人脸检测来说,Debug版本在手机上跑速度基本上是15秒1帧,而Release版本差不多是1秒2帧,这个速度差异非常的大。AS上始终编译不出Release版本的库文件,又不会在Linux下去编译SO文件(技术不行,,,加上Android运行环境和Linux也有一点区别)经过多天的摸索,大概有了思路原创 2018-01-15 22:34:10 · 10744 阅读 · 5 评论 -
Android中摄像头获取的YUV数据转Opencv的Mat
背景在onPreviewFrame方法中获取的byte[] data数据为420sp格式,排列顺序为width*height个Y(亮度信息,就是我们常见的灰度图像),后面是UV(颜色信息),4个Y共享一个U和V,故byte数组的总大小是width*height*2/3。 420sp通常是如下形式(UV交替属于NV12)(或者VU交替属于NV21):[ [原创 2018-01-27 14:52:37 · 8765 阅读 · 6 评论 -
OpencvForAndroid记录——get()和put()函数
最近写这块代码的性能优化。public static Mat array2Mat(double[][][] data) { int height = data.length; int width = data[0].length; Mat mat = new Mat(height, width, CvType.CV_8UC3); ...原创 2018-12-14 22:48:51 · 3178 阅读 · 0 评论 -
Android项目小结——可对焦的视频录制(MediaRecorder与TextureView实现)
一直在做安卓的项目,想着找个时间总结一下,可能太懒了,一直没总结。代码(尤其是对焦框显示)参考了许多Blog和Github,修修补补改改挺多地方,记录一下,侵删私信或注明出处。录制主要的类MediaRecorder:安卓封装的视频录制的类AutoFitTextureView:继承自TextureView,实现自定义纵横比缩放,视频录制基于该组件。AnimationImageVie...原创 2018-12-10 20:23:53 · 3251 阅读 · 0 评论 -
Android项目小结——视频播放(MediaPlayer与SurfaceView实现)
一直在做安卓的项目,想着找个时间总结一下,可能太懒了,一直没总结。代码参考了许多Blog和Github,修修补补改改挺多地方,记录一下,侵删私信或注明出处。播放主要的类三个Interface:IMyPlayer:定义了设置资源、播放、暂停、停止、获取播放时长、当前位置、定位到、以及Activity状态等函数方法。IMyDisplay:定义了获取播放视图(View),播放的Surf...原创 2018-12-10 21:45:07 · 773 阅读 · 0 评论 -
Android项目小结——硬编码(MediaCodec实现YUV420[p|sp]转[h264])
概述MediaCodec可以实现硬编码(相比FFmpeg来说,效率很高)。可供参考的博客非常多,只是记录一下自己参考后改写的东西,难免会忘记。三种方式(1)基于缓存(ByteBuffer)的同步编码(2)基于缓存(ByteBuffer)的异步编码(3)基于缓存数组的同步编码(废弃,可能效率没前面两种高吧)基于缓存(ByteBuffer)的同步编码很典型的代码例程。public c...原创 2018-12-11 10:47:00 · 3634 阅读 · 4 评论 -
Android项目小结——硬解码(MediaCodec实现[MP4]转YUV420各种格式)
YUV420yuv420p:yv12(YYYYYYYY VV UU)、I420(YYYYYYYY UU VV)yuv420sp:nv12(YYYYYYYY UV UV)、nv21(YYYYYYYY VU VU)同样是三种方式(1)基于缓存(ByteBuffer)的同步编码(2)基于缓存(ByteBuffer)的异步编码(3)基于缓存数组的同步编码(废弃,可能效率没前面两种高吧)基...原创 2018-12-11 11:18:30 · 5188 阅读 · 0 评论 -
Android项目小记——nomedia文件与MediaStore媒体库
避免相册显示避免相册显示项目底下的多媒体文件,如.mp4、.png等文件。在目录下放置一个.nomedia文件,则可以放置媒体库扫描该目录。问题项目使用了Android原生的分享功能,该功能需要用到媒体库的数据库,问题:不想让看到,还想可以调用原生分享,强制插入到媒体库,相册(用的就是媒体库)又能看到。用FileProvider还分享不全-.-过程强制同步在媒体数据库。(1)使用Med...原创 2018-12-29 12:02:20 · 2515 阅读 · 0 评论