Tag: android

如何知道我正在使用ndk-build构建哪个API级别?

我正在尝试更好地理解在使用ndk-build时如何选择api级别。 我知道我可以在Application.mk中明确设置APP_PLATFORM ,否则ndk-build将使用android:minSdkVersion来定位清单中指示的api,但是如果我的应用程序的清单同时包含android:minSdkVersion和android:targetSdkVersion ,那么这是高于minSdkVersion? ndk-build会定位targetSdkVersion吗? 我怎么检查呢? 如果它针对更高的api级别,我想我将能够使用仅适用于该级别的本机apis进行构建,但是如果我在具有较低api级别的设备上运行该应用程序,它应该很难失败,所以在这种情况下我应该实现某种api级别的检查,这是正确的吗?

如何在Android中使用FFMPEG缩小默认摄像头捕获的video大小?

我正在尝试减少Android中默认摄像头捕获的video大小(它生成高分辨率video)。 FFMPEG是否具有对具有给定分辨率的video进行编码的属性? 我尝试使用Google,但所有示例都使用FFMPEG的命令行模式。 我的问题是: 我们可以在Android中使用ffmpeg命令行吗? 如果没有那么我们将如何实现它? 我们能否在Android中使用ffmpeg直接录制video? 还有其他解决方案吗?

使用NEON内在函数除以浮点数

我当时正在处理一个四像素的图像,这在Android应用程序的armv7 。 我想将float32x4_t向量除以另一个向量,但其中的数字从大约0.7到3.85不等,在我看来,除法的唯一方法是使用右移,但这是一个2^n 。 此外,我是新手,所以欢迎任何建设性的帮助或评论。 例: 如何使用NEON内在函数执行这些操作? float32x4_t a = {25.3,34.1,11.0,25.1}; float32x4_t b = {1.2,3.5,2.5,2.0}; // somthing like this float32x4 resultado = a/b; // {21.08,9.74,4.4,12.55}

停止/取消执行FFmpeg命令

有FFmpeg Static(二进制)可用于Android,我们可以在执行某些操作时停止/取消一些FFmpeg执行(命令) https://github.com/WritingMinds/ffmpeg-android-java/issues/33 但我想使用FFmpeg共享库和JNI,我找到了下一个库https://github.com/IljaKosynkin/FFmpeg-Development-Kit (它工作正常) 但没有选择停止执行FFmpeg命令(或杀死进程) 我们run那里使用Java本地run方法来开始执行一些命令: Java: https : //github.com/IljaKosynkin/FFmpeg-Development-Kit/blob/master/JNI/app/src/main/java/com/example/ilja/jni/VideoKit.java#L57 然后在C中我们调用FFmpeg的main方法: C: https : //github.com/IljaKosynkin/FFmpeg-Development-Kit/blob/master/JNI/app/jni/videokit.c#L41 在调用Java run和C main方法后,如何停止/取消某些FFmpeg执行?

Android:杀戮(全部)前景运行App

我正在寻找一种方法从linux内核中杀死前景Dalvik App(主动运行)(使用它的进程ID)? 我怎样才能做到这一点? 有任何想法吗? 内核是否看到正在运行的应用程序的pid? 例如,如何。 Android中的进程管理器/任务管理器实现了这一点 任何线索? 编辑: 我正在看的问题是一种杀死“行为与预期不同”的应用程序的方法。 这种“不同的行为”总是固定的。 可以把它想象成向特定端口发送消息。 如何通过停留在应用程序之外并仍然有权杀死它来杀死它? 这就是为什么我想知道如果不在内核中,我是否必须让这个模块位于框架上。

在Eclipse中Navit Android项目

在我问我的问题之前,我检查过这个: 如何将Navit导入Eclipse并在自己的android项目中使用它但是,它无法正常工作,因为它得到了回答。 有谁能解释如何在Android项目中使用Navit? 其中大多数是C文件。 http://download.navit-project.org/navit/src/navit-0.2.0.tar.gz谢谢。 🙂

CvCaptureFromAVI问题 – OpenCV Android

我需要逐帧捕获存储在Android设备的SD卡中的video(在本例中为我的模拟器)。 我通过NDK使用Android和OpenCV。 我通过DDBS(eclipse)的文件浏览器在sdcard中手动推送文件“SinglePerson.avi”,我使用下面的代码来读取文件: JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial4_Sample4Mixed_VideoProcessing(JNIEnv*, jobject) { LOGI(“INSIDE VideoProcessing “); CvCapture* capture = cvCaptureFromAVI(“/mnt/sdcard/SinglePerson.avi”); IplImage* img = 0; if(!cvGrabFrame(capture)){ // capture a frame LOGI(“Inside the if”); printf(“Could not grab a frame\n\7”); exit(0); } img=cvRetrieveFrame(capture);// retrieve the captured frame cvReleaseCapture(&capture); } 问题是cvGrabFrame(捕获)结果总是错误的。 有任何建议正确打开video并抓住帧吗? 提前致谢

Android NDK使用来自JNI内部c代码的.so库

我在SO上发现了类似的问题,但没有一个是相同的工作流程。 我的项目中有一个.so库(libcurl)。 该项目构建但我需要在JNI中的c代码中获取curl.h。 这是我的Android.mk文件: LOCAL_PATH:= $(call my-dir) LIBS_PATH := libs/$(TARGET_ARCH_ABI) include $(CLEAR_VARS) LOCAL_MODULE := libcurl LOCAL_SRC_FILES := $(LIBS_PATH)/libcurl.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := testLib LOCAL_SRC_FILES := lib.c LOCAL_SHARED_LIBRARIES += libcurl include $(BUILD_SHARED_LIBRARY) 这是我的c类: #include “curl/curl.h” #include “lib.h” JNIEXPORT jint JNICALL Java_com_example_test_1libcurlandroidlib_Lib_getTestNumber (JNIEnv *env , jclass clazz) { return 99; } 问题在于“curl / curl.h”include命令。 我也试过,但它也找不到: […]

Android – 从JNI获取MEID

我正在使用Android,编写一些JNI代码,我正在寻找一种从设备查询移动设备标识符(MEID)的方法。 http://en.wikipedia.org/wiki/Mobile_equipment_identifier 我正在尝试编写可以在Android设备上自行运行的C或C ++代码,所以我认为我不能使用Java(即从TelephonyManager获取MEID)。 搜索StackOverflow发现: 是否有一个android shell或adb命令,我可以使用它来获取设备的IMEI / MEID? 好的, dumpsys iphonesubinfo可以获得我需要的信息。 它的工作原理! 除了作为Android源代码的一部分之外,我找不到dumpsys的源代码。 所以我下载了…我的硬盘在下载完成之前已经填满了,但我确实得到了dumpsys的源代码。 这是一个令人惊讶的短C ++文件。 它只是查询Android的IBinder界面。 所以,我的问题: 0)有没有什么办法可以IBinder使用NDK中的东西来编写对IBinder的查询? dumpsys.cpp使用的包含文件不在NDK中,并且NDK目录中的grep在任何包含文件或代码示例中都找不到IBinder ,所以我的猜测是“不”(但我想错了)。 1)有没有其他好的方法来获得MEID? 我认真考虑我应该只使用system(“dumpsys iphonesubinfo > /tmp/myprogname_dumpsys.tmp”然后打开生成的文件并解析它。这应该可行,但我很难称之为优雅…而且我是不确定每个Android设备上是否有dumpsys可用。 编辑:使用system()运行dumpsys将无法正常工作,因为dumpsys需要android.permission.DUMP和Android不再允许非系统应用程序拥有该权限。 在Java中Dumpsys权限拒绝

Android NDK分段错误

在我的应用程序中,当我尝试在那个时间面向分段错误时将我的日志打印到文件中。 我正面临致命信号11。 我的日志function是Native部分,我从Java调用它。 logcat的: 01-01 00:09:38.968: A/libc(3905): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 01-01 00:09:38.976: D/Random(2185): Trip In List :false 01-01 00:09:38.976: D/Random(2185): Odometer :0 01-01 00:09:38.976: D/abc(3905): PreCheck conditions satisfied for WIFI Searching Timer 01-01 00:09:39.601: I/DEBUG(1285): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** […]