如题 使用这个函数报如下错误: error: use of undeclared identifier 'pthread_yield' pthread_yield(); 不得已,使用usleep(500)代替…
RT, Android NDK中的C++调试, GDB调试比较麻烦,在ADT Eclipse中: 1.配置好NDK给工程加上Native Support 2.编译中加上NDK_DEBUG=1 3.然后改造下mk文件: #APP_DEBUG will be set by android-ndk if NDK_DEBUG=1 is set. ifdef APP_DEBUG ifeq ($(APP_DEBUG),true) CFLAGS+= -O0 -g LOCAL_CFLAGS+= -D_DEBUG…
因为最近在整合Android 上RTSP播放器的网络库,因需要调用自己编译的网络库,调用一直出现问题,开始时是直接在Android.mk 中加入LOCAL_SHARED_LIBRARIES := libxxx,以为是直接调用成功了,结果后面的各种测试,结果悲剧了,查出是调用网络库的问题, 后面再网上找Android NDK调用第三方动态库的方法,结果是网上的方法各异,有的还不能实现,怀疑是C2C(Copy to Copy)的结果,严重鄙视一下! 便自己在ubuntu下写了一个简单的测试程序,外部…
1. 简介 Android.mk  可用来描述要编译的某个具体模块的相关信息.比如:指定编译该模块时所需要的源文件.编译该模块时要链接的库文件.该模块编译完成后生成的库的名字等等.Application.mk 可用来描述整个应用程序编译时的相关信息.比如:指定编译支持的ABI平台(armeabi-V7a, arm64-v8a, all...).指定NDK编译时的模块列表.指定目标Android 平台的名称等等. 2. 一个简单的Android.mk文件 LOCAL_PATH := $(call…
做了不少NDK相关的工作,不知道别人有没有同样的困惑,经常在编译C/C++代码的时候会出一些error或者warning,然后在网上搜,发现在Android.mk或者Application.mk文件中加一些配置选项就能解决,但是加完之后却不知道这些都是干什么用的,或者找不到系统学习的地方.我猜可能是开发NDK的程序员对于利用NDK写代码的程序员的能力太过自信,所以没有给出什么参考资料,顶多就是NDK目录下的Doc.这就导致在优化动态链接库的时候,除了提升算法.代码级优化,往往不知从何下手.对于这…
1.下载gprof支持库 下载地址: http://code.google.com/p/android-ndk-profiler/ 2.代码上的修改添加 在初始化时: monstartup("yourlib.so"); 在退出时添加: setenv("CPUPROFILE", "/sdcard/gmon.out", 1); moncleanup(); 3.makefile文件修改: 由于-pg 和 -fomit-frame-pointer -ff…
原文章地址在这里 这个问题是file_get_contents不能获取https的内容引起的.这样的情况下,我们一般会采用curl拓展来模拟请求. 代码demo(当然这是错误的示范): function get_url_content($url){ $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_SS…
最近用HttpClient进行链接请求,开了多线程之后发现经常有线程hang住,查看线程dump java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketI…
对一个代码做profile: 总函数调用 29.74s 20.25s 153: timestamp := time.Now().Unix() 这样的一行占了20.25秒. 我知道linux下 time(NULL)比gettimeofday()快. 在这个场景下,我只需要秒数,不需要微秒数.如何调用time()函数,而不是gettimeofday()呢? 还没找到.先记下这个问题.…
以一个跟踪算法来测试: 使用cv::dft(), 矩阵未按照2次幂对齐,最终跟踪平均准确率 84.3% 使用cv::dft(),矩阵使用cv::copyMakeBorder对齐,最终跟踪平均准确率 88.5%, 但中间有7帧完全没跟准 使用cv::ocl_dft(),矩阵使用cv::copyMakeBorder对齐,最终跟踪平均准确率 33.7%, 中间有88帧完全没跟准 本想通过opencl来加速,而结果都没对齐,看来此方向不可行.…
之前有这样的代码:从http收数据后,进行snappy解码: dst := make([]byte, 0, len(httpRequestData)*5) dst, err = snappy.Decode(dst, httpRequestData) 我想,通过sync.Pool,是不是可以优化这里的内存分配?于是我改成这样: var pool = sync.Pool{ New: func() interface{} { return make([]byte, 1024*32) }, } func…
有这样一段代码: src := []byte{xxxxx} dst := make([]byte, 0, len(src)) copy(dst, src) //这一行居然没生效! // dst = append(dst, src...) //这样就生效了 还没搞懂为什么,后续继续深入翻翻资料! 2021-10-20补充: 犯傻了,虽然数组的cap足够,但是长度为0啊 长度不够,肯定无法拷贝了. src := []byte{xxxxx} dst := make([]byte, len(src))…
执行事务的大致代码如下: redisClient := GetRedisClient() pipe := redisClient.TxPipeline() err := pipe.ZAdd(k, arrZ...).Result() //... arr, err := pipe.Exec() if err != nil { log.Println(err, arr) //这里打印错误 EXECABORT Transaction discarded because of previous error…
发生coredump时的错误信息如下: terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4.1.0-dev) /home/admin/opencv/opencv-master/modules/core/src/matrix.cpp:169: error: (-215:Assertion failed) u->refcount == 0 in function 'deallocate' 以下…
1.存在通知丢失的情况:生产者线程通知196次,消费者线程收到190次,导致部分数据无法被处理. 2.cond.wait()方法后的加锁有问题,导致对空队列进行出队操作然后coredump.一直记得wait()之后会重新获得锁的! 暂未找到原因,用轮训+睡眠的笨办法代替了条件变量.…
http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-opencv-development-3/ Android Ndk and Opencv Development 3 NOV 18TH, 2013 Android NDK 和 OpenCV 整合开发总结(3) 终于写到第三节啦,虽然很累,但是还是要坚持,坚持写完这3篇文章. 这一节的主要内容是OpenCV在Android NDK开发中的应用,包括下面几个方面的内容:…
    Android.mk Android.mk是一个向Android NDK构建系统描写叙述NDK项目的GUN Makefile片段.它是每个NDK项目的必备组件. 构建系统希望它出如今jni子文件夹中. 以下是hello-jni项目中Android.mk文件的内容. # Copyright (C) 2009 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "Lic…
Android NDK 和 OpenCV 整合开发总结(3) http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-opencv-development-3/ 终于写到第三节啦,虽然很累,但是还是要坚持,坚持写完这3篇文章. 这一节的主要内容是OpenCV在Android NDK开发中的应用,包括下面几个方面的内容: 如何实现Static Initialization从而不需要安装OpenCV Manager运行含Ope…
https://android.googlesource.com/platform/development/+/donut-release/ndk/docs/OVERVIEW.TXT https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/ANDROID-MK.TXT https://android.googlesource.com/platform/ndk/+/4…
Android NDK 配置: 网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享. 要玩NDK,你或多或少要用到以下一些东西,所以先做一下准备 有关Eclipse下的Android与NDK配置,请网上搜,不再描述,不用Eclipse的同学请忽略.简单提示一下:网上凡是用Help>Install New Software的方法基本正确: 有关NDK的下载,当然是google官方的,搜索Android NDK即可,我都懒得贴出地址了:…
转:http://blog.csdn.net/xiruanliuwei/article/details/7560798 What is the NDK? The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications. Android NDK是一个工具集,它让我们能够在Android应用程序中使用由本地代码(native co…
本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从Android Studio 1.3 Beta1开始,就支持了NDK.不过使用的是一个全新的实验性的gradle构建工具.官方地址 http://tools.android.com/tech-docs/new-build-system/gradle-experimental ,英文好的可以直接看原文.…
郑重申明:如需转载本博客,请注明出处,谢谢! 这几天在学习android NDK的开发.那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Kit),即本地开发工具,简单地说.就是在开发android应用程序的时候,在java类中调用native函数,而native函数的接口也是在java类中定义的,可是native函数终于由本地的C/C++代码实现.简单地说,就是在java中调用C/C++函数. 至于为什么要用NDK,我总结了一下,大致有…
[原创文章,转载请保留或注明出处,http://download.csdn.net/download/bigmaxim/5474055] 1. 相关软件 adt-bundle-windows-x86.zip --- Eclipse集成ADT插件,需要联网安装相应的Android SDK. jdk-6u43-windows-i586.exe --- JDK6 Eclipse运行需要JAVA环境,编译ANDROID应用也需要JAVA编译器. android-ndk-r8e-windows-x86.z…
相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识总结如下:       从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector.string摆脱c下面容易出现的数组未初始化.越界,增强应用的健壮性.       很多网友包含了include <vector> 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL :…
今天我学习Android Studio当中的NDK,为什么要学习NDK呢,是因为领导给我提了一个BUG,这个BUG就是Android 多重CPU怎样兼容性,我现在先说一下,Android Studio的NDK在哪里吧,Android Studio(>=1.3.x),NDK(ndk-r10-e).打开Android Studio 建立一个空工程,关联上NDK,操作步骤方式如下图: 设置好NDK之后,开始设置gradle,设置gradle主要需要设置三个地方,设置好之后就可以直接编写和编译JNI代码…
Android开发中的MVP架构 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点: 为什么越来越多的人开始关注架构? 首先,MVP是什么? 哪种架构才是最好的,MVC,MVVM还是MVP? MVP的利与弊 Show me the code!!!代码展示 不幸的,这篇文章将不包括: 详细生动的代码示例 如何编写测试代码 最后,我…
转: http://www.codeceo.com/article/android-mvp-artch.html 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点: 为什么越来越多的人开始关注架构? 首先,MVP是什么? 哪种架构才是最好的,MVC,MVVM还是MVP? MVP的利与弊 Show me the code!!!代码…
写在前面,本博客来源于公众号文章:http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402435540&idx=1&sn=1cd10bd9efaac7083575367a8b4af52f&scene=1&srcid=0910ARzPpBvVYPI1NDBZnixa#wechat_redirect 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目…
Android Studio2.2之后直接可以在创建工程时添加NDK支持了,添加之后,main文件夹下会多出一个native-lib.cpp这个文件,如果只为了一个简单的NDK接口,貌似这就结束了.直接在native-lib.cpp下编程即可. 但是,如果使用第三方库,就得重新配置了.到目前为止,网上大半文章都是.mk的配置方法,按照他们的步骤,在AS上一步一步做下去好像很难成功. Android Studio2.2使用Cmake作为跨平台编译工具,创建完一个工程后,JNI的配置都由Cmake来…