Articles of AndroidNDK

Android JNI什么是C / C ++执行代码的当前工作目录?

在Android中,如果使用NDK创build的C / C ++共享库被调用,并且它加载了一个文件,它的当前工作目录是什么? 谢谢

Android NDK安装问题

我试图在Android Studio 2.0(testing版)中安装NDK包。 继这个官方链接 。 压缩文件完全下载,但解压缩文件mtd.h 。 这是截图: 现在这里已经停了30分钟了。 我试图取消和redownloading,但解压缩过程总是卡在同一个地方。 任何想法为什么会发生?

使用NDK的可移植性有什么影响?

我需要一些在很长时间内执行的操作非常快。 我能看到的唯一select是使用Android NDK。 任何人都可以给出一个总结,关于哪些设备可以使用该应用程序,使用NDK对我的应用程序做什么,以及对维护我的应用程序有什么影响? 我看到你需要指定你想要编译你的C代码的架构,比如ARM和Intel。 Android新架构出现时会发生什么? 每次有新架构出现时,我是否必须更新我的应用程序?

Android Studio会忽略Application.mk

我想将c ++头文件iostream包含到我的NDK代码中。 为了做到这一点,我必须包括APP_STL:= stlport_static(或类似)到Android ndk-build iostream中提到的Application.mk文件:没有这样的文件或目录 。 如果我使用命令行ndk-build进行编译,这一切运行良好,但是在使用Android Studio进行编译时,仍然会出现与找不到iostream相同的错误。 它看起来像application.mk被Android Studio忽略,我不知道如何configuration它在build.gradle。 任何人都可以帮助我,包括使用android studio的APP_STL:= stlport_static? 谢谢

如何使用命令行安装Android NDK软件包?

Android NDK现在可以直接从SDKpipe理器安装,而不是单独下载。 我怎样才能从命令行安装NDK包? 我试过了: android sdk update -u -n -a 但在列表中看不到NDK包。 它只在UI中显示。

NDK支持是一个实验性function,Android Studio中还没有支持所有的用例错误?

我想将NDK集成到Android Studio中,但是我面对NDK支持是一个实验性function,并且用例还不支持error.I已经使用SDKpipe理器下载了NDK,并且NDK被触发了C:\ Users \ TheAppData \ Local \的Android \ SDK \ NDK束。 我还为Java和C ++交互创build了NativePanorama java类。 这是NativePanorama.java类的代码 public class NativePanorama { public native static void processPanorama(long[] imageAddressArray, long outputAddress); { } } 我在terminal中使用了javah命令,为NativePanorama java类中的processPanorama方法创build相应的C ++头文件。 这里是创build的com_example_the_myapplication_NativePanorama.h c ++头文件。 /* DO NOT EDIT THIS FILE – it is machine generated */ #include <jni.h> /* Header for class […]

在Windows下debuggingAndroid NDK

我将一个复杂的C应用程序移植到Android上,作为一个SO库,用一个简单的java层包装起来。 经过几个小时的麻烦,我有Android下的代码编译,但当然,应用程序崩溃:( 环顾四周后,我明白在Android下debuggingC应用程序的唯一方法是由gdb。 由于我对gdb的经验不多,任何一个人都可以分享一些见解? 任何人都有Windows下的gdb教程? 谢谢

Android NDK:如何重新启动活动后清理本地代码?

所有, 我知道,默认情况下,当屏幕方向改变,或者滑入或滑出键盘时,活动将被终止并重新启动。 (请参阅Activity在Android上重新启动 )。 我的问题是,从本地代码的angular度来处理这个问题的正确方法是什么? 例如,如果我有一个静态块加载本机库,我的应用程序重新启动,我如何确保在本地的任何内存得到妥善处理? 问题是 当我们旋转设备时,它看起来像一个单独的线程池被创build,旧的永远不会被删除。 这意味着每次有人打开设备,我们就有更多的线程闲置并占用内存 我如何确保这不会发生? 我从JNIExample页面的底部看到一些注释: 未解决的问题和错误即使这个例子是function完整的,还有一些尚未解决的问题仍然存在,到目前为止我还没有弄清楚。 开始活动时出现问题,然后按“后退”button将其隐藏,然后重新开始。 根据我的经验,在这种重新开始的活动中调用本地函数将会失败壮观。 callVoid()简单地与分段错误崩溃,而调用getNewData()和getDataString()会导致JVM中止一个错误,因为它不再满意全局caching对象引用。 即使它们受到NewGlobalRef()的保护,并且活动在原始JVM中运行(活动重新启动并不意味着JVM本身已重新启动),似乎活动重新启动以某种方式使我们caching的对象引用无效。 我没有一个很好的解释为什么会发生,所以如果你有任何想法,请让我知道。 这个解决了吗?

NDK本地代码在哪里执行

我对Android aps中本机代码的生命周期有些困惑。 我已经看到引用,说本机代码在Dalvik虚拟机内执行,但是这是真的吗? 我以为VM只运行Dalvik字节码。 另一方面,本地代码使用在VM内部从Java调用的JNI。 最后,NativeActivity的使用是否有所作为? 我以为自己很了解NDK,直到我坐下来试着向自己解释。 我甚至不确定我是否以合理的方式提出这个问题。

sys / fcntl.h:没有这样的文件,而交叉编译pcsclite为Android?

所有:我正在做一个Android应用程序,可以commonic与Android手机的Ccid智能卡读卡器,我select了这种方式:“pcsc-lite-1.8.5 + ccid-1.4.7 + libusb-1.0.3”在Ubuntu(PC上的Linux操作系统)非常好。 然后我试图将它们移植到android,交叉编译时有很多问题。 这些问题大部分都是Android的Bionic库缺less一些头文件和函数,比如: sys / fcntl.h,mqueue.h:没有这样的文件; pthread_cancel:未定义的引用; 而现在,虽然我交叉编译pcsclitebuild立可执行文件“pcscd”,我得到这个错误: sd-daemon.c:35:23:致命错误:sys / fcntl.h:没有这样的文件或目录 Android.mk: #=================================================== # ****** pcscd ****** #=================================================== include $(CLEAR_VARS) LOCAL_PRELINK_MODULE:=false LOCAL_SRC_FILES:=atrhandler.c \ debuglog.c \ dyn_hpux.c \ dyn_macosx.c \ dyn_unix.c \ eventhandler.c \ hotplug_generic.c \ ifdwrapper.c \ pcscdaemon.c \ powermgt_generic.c \ prothandler.c \ readerfactory.c \ simclist.c \ strlcat.c \ sys_unix.c \ […]