问题标签 [android-ndk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何捕获 SIGSEGV(分段错误)并在 Android 上的 JNI 下获取堆栈跟踪?
我正在将一个项目移动到新的 Android 本机开发工具包(即 JNI),我想捕获 SIGSEGV,如果它发生(可能还有 SIGILL、SIGABRT、SIGFPE),以便呈现一个不错的崩溃报告对话框,而不是(或之前)当前发生的情况:进程立即不客气地死亡,并且操作系统可能尝试重新启动它。(编辑: JVM/Dalvik VM 捕获信号并记录堆栈跟踪和其他有用信息;我只是想为用户提供将这些信息通过电子邮件发送给我的选项。)
情况是:我没有编写的大量 C 代码在这个应用程序中完成了大部分工作(所有游戏逻辑),尽管它在许多其他平台上经过了很好的测试,但我完全有可能在我的 Android 中端口,会给它提供垃圾并导致本机代码崩溃,所以我想要当前显示在 Android 日志中的崩溃转储(本机和 Java)(我猜在非 Android 情况下它会是标准错误)。我可以随意修改 C 和 Java 代码,尽管回调(从 JNI 传入和传出)数量约为 40,显然,小差异的奖励积分。
我听说过 J2SE 中的信号链库 libjsig.so,如果我可以在 Android 上安全地安装这样的信号处理程序,那将解决我的问题的关键部分,但我看不到 Android/Dalvik 的此类库.
c++ - 适用于 Android 的 uSTL 或 STLPort?
我正在使用 Android NDK,由于它目前不支持 STL,我想知道是否有任何优秀的人在这方面取得了成功,或者知道哪个更适合 Android 平台:uSTL 或STL端口。
编辑:看起来另一个选项可能是CrystaX .NET。
从他们的网站:
...我从官方来源重建的 Android NDK r3 的定制发行版。添加了对 C++ 异常、RTTI 和标准 C++ 库的支持。
android - 有使用 Android NDK 的经验吗?
我对它在各种手机之间的便携性特别感兴趣。我们有一个应用程序,其中包含一些我们希望在 Android 和 iPhone 之间共享的计算量大的代码。如果我们可以用 C 编写它,我们将拥有一个单一的代码库,但如果 NDK 只支持手机制造商正在创建的处理器的子集,或者我们必须为每个处理器重新编译,这不是一个可行的解决方案.
感谢您的任何经验。
android - 使用 JNI(更具体地说是 Android NDK)时,Java 是否通过引用或值传递给 C
使用 JNI(更具体地说是 Android NDK)时,Java 是否通过引用或值传递给 C
java - Android NDK:自动生成函数声明?
我正在尝试在我的 android 项目中使用预先存在的本机 C 库。该库使用 NDK 工具构建得很好...
现在我明白了,我不能只调用库,而是我的库需要包含 jni.h 并添加特定的函数声明,例如:
但是由于我使用的是现有的库,我也可以在其他平台上使用我不喜欢用这些定义乱扔整个代码的想法,这些定义最终只会包装我的真实功能......
有没有解决的办法?如果这真的是唯一的方法,有没有办法根据我现有的 C 函数声明/定义自动生成这些?
非常感激
debugging - Android - 如何为 NDK 开发启用 CheckJni?
有人可以告诉我我是否在这里遗漏了什么?我正在 shell 中尝试以下命令。
但是当我将 apk 安装到设备上时,Logcat 总是显示“CheckJNI 已关闭”。
我需要在 Eclipse 中做些什么来启用 XCheck:Jni 标志吗?
感谢您的帮助
android - 在 OpenGL ES 中绘制大量点的最快方法是什么?
我正在为 android 制作一个游戏,我需要绘制很多点来改变每一帧的位置。我使用ndk来获得更快的游戏数学/物理部分的处理性能,所以我需要使用OpenGL来获得最快的性能。
现在,我从一个包含每个像素颜色的数组中为每一帧制作一个纹理。使用这种方法,我每秒只能获得约 10 帧。无论如何我可以加快速度吗?
c - Android NDK 中的文件操作
出于性能原因,我主要使用 Android NDK 在 C 中制作应用程序,但似乎 fopen 等文件操作在 Android 中无法正常工作。每当我尝试使用这些功能时,应用程序就会崩溃。
如何使用 Android NDK 创建/写入文件?
java - Java JNI - 将 C 中分配的资源与 java 对象相关联?
我想在 C 中分配一些内存并将其与 java 对象实例关联,如下所示:
然后在 java 对象被垃圾回收时释放内存——我可以通过从 java 对象的finalize()方法调用 JNI 函数来做到这一点。
问题是,如何将 C 指针与 java 对象相关联?在对象中保留一个long字段并将指针转换为long?有没有更好的办法?