问题标签 [native-activity]

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.

0 投票
0 回答
788 浏览

android - 如何从 NativeActivity 与带有 Java 端窗口内容(Xperia Play)的 ActionBar 进行交互?

对于 ICS 之前的 Xperia Play,从触摸板获取输入的唯一方法是通过 NativeActivity(不是普通的旧 Activity)。不幸的是,NativeActivity 中的所有绘图,顾名思义,都是在本机端完成的,而不是在 Java 端完成的。为了在 Java 端获得带有图形的本机端输入,必须在 NativeActivity 的 onCreate 方法中添加以下内容:

并通过 JNI 设置几个方法来接收来自本机端的触摸板和触摸屏输入。然后,您可以愉快地通过 Android 的 Java API 进行绘图,同时仍然获得触摸板输入。这对于 Xperia Play 运行的 pre-ICS 非常有效。即使通过 onCreateOptionsMenu 添加菜单也不会导致任何问题。

当 Xperia Play 运行 ICS 时,问题就出现了。菜单已移至操作栏。不幸的是,无法与操作栏交互(按下 3 个点会被忽略,就像我在按下操作栏后面的表面一样。)

万一有什么不同,我将通过 onCreateOptionsMenu 创建操作栏菜单选项。我正在使用 Window.FEATURE_ACTION_BAR_OVERLAY,并在用户按下“后退”按钮时使操作栏可见(mSingleton 是 NativeActivity 实例):

这使操作栏可见,但正如我所提到的,我无法与之交互。有没有办法强制动作栏有焦点或什么?普通菜单在 ICS 之前的版本上运行良好的事实让我认为它也应该可以与操作栏交互,因为它只是一个不同类型的菜单。

0 投票
0 回答
1060 浏览

android - 错误:png.h 没有这样的文件或目录

您好,我正在尝试从 PNG 文件加载纹理。我使用带有 VisualGDB 插件的 Visual Studio 2010 来运行 Android NDK。我从本机活动示例创建了项目,并尝试按照“Android NDK Begginer 指南”一书中的描述添加 libpng。我下载了 libpng 1.5.12 并将其粘贴到 $(android ndk)/sources 中。然后我用这个内容创建 Android.mk 文件:

然后我试图在我的项目 Android.mk 文件中包含这个静态库,如下所示:

但是当我试图按照书中的描述包含 png.h 时 - 我得到了错误

PS Visual Studio - 看到这个文件并提供自动完成功能。

0 投票
3 回答
2354 浏览

android - 在 Android 原生活动中绘制文本

大家好,

我做了本地活动,我想画一些文字。最简单的方法是什么?我可以通过使用openGL来做到这一点吗?如果可以的话怎么做?

感谢帮助。

0 投票
2 回答
2487 浏览

android - 处理android原生活动中的主要命令

在 android 原生活动中,您可以用自己的方法处理来自系统的主要命令。我知道该怎么做,但我不知道我能处理的所有状态。我知道很少有像 APP_CMD_SAVE_STATE、APP_CMD_INIT_WINDOW 这样的状态......但这还不是全部。我在任何地方都找不到状态列表或 android_native_app_glue.h 头文件。有人可以推荐我或用他们的号码和他们打电话的时间写事件列表吗?
谢谢

0 投票
4 回答
9484 浏览

android - 无法在本机活动应用程序中加载具有依赖项的本机共享库

在我的 Android 应用程序中,我有 4 个库:

如果我编写一个与 libTemplate 链接并手动调用 ANativeActivity_onCreate 的小型命令行可执行文件,它会链接并运行得很好(如果我将 LD_LIBRARY_PATH 指向 /data/data/com.mycompany.Template/lib)

如果我运行我的应用程序,我会收到这个非常有用的错误消息:

它甚至没有输入 ANativeActivity_onCreate,所以我唯一的猜测是它与链接有关

我可能应该提到我正在使用带有这个脚本的 CMake:http ://code.google.com/p/android-cmake/来自己构建库(没有 ndk-build)。我设法用它编译了本机活动示例,所以我知道它有效。

另外,我确保没有库在其 soname 中包含版本号

我的清单:

0 投票
1 回答
2129 浏览

file-io - android ndk 数据保存/加载

我正在将 PC OpenGL 应用程序移植到 Android 上。我选择使用 NDK android_native_app_glue 框架的东西。据我了解,它可以让我继续使用 C++,甚至不用编写任何 JAVA 代码行。这听起来很有希望。

对我来说,第一个不清楚的是数据保存/加载。我的应用程序的数据格式是二进制的,我的原始 PC 相关代码使用普通的“stdio.h”文件操作:fopen、fread、fwrite 等来创建、写入和读取“mygame.bin”文件。如何将其移植到 Android 上?

谷歌搜索后,我发现我必须存储然后使用“java环境”变量:

但是,我仍然没有意识到如何使用这个 g_jniEnv 来执行文件操作。

更新: 好的,我发现在Java中,可以如下进行数据保存:

所以我的问题是:给定一个指向 JNIEnv 的指针,我如何用 C++ 重写这个代码片段?

0 投票
2 回答
10554 浏览

android - 是否可以使用 NDK 创建 UI 元素?- Android 文档中缺乏规范

阅读相关文档后,我不知道是否可以仅使用使用 NDK 编译的 C++/C 代码来创建用于获取用户输入的按钮或其他 UI 元素之类的东西。

当我想处理需要保持焦点的“窗口”或活动时没有问题,但我不知道如何构建带有回调和用户输入元素的 UI。

奇怪的是有一个窗口框架,但没有任何 UI 元素回调的痕迹。

我可以使用 NDK 构建触摸按钮或虚拟游戏手柄吗?


我很欣赏我们的努力和我们越来越接近我的观点的事实,但显然我对自己的解释不够好。

我在这里找到了这张图片 在此处输入图像描述

现在我的问题和这个问题的重点是:

假设我可以放置和绘制这个虚拟操纵杆,我如何才能只检测运动并像AndroidJoystick.onUpJoystick.onDown使用 Android 一样进行回调并且只使用 NDK?

如果 NDK 没有此类回调,我应该每次都检测 [x,y] 位置,将其与操纵杆的位置进行比较,存储上一个位置,比较上一个位置和下一个位置找到方向?

由于传感器以非常快的速度抛出事件,我认为仅考虑原始 X、Y 对我自己构建它最终会导致控制系统效率非常低,因为它不会在操作系统级别使用适当的传感器呼叫。

根据 NativeActivity 示例,还不清楚如何处理多个触摸点,例如我如何同时处理 2 个触摸事件?

只需考虑上面的图像,并考虑只有 1 个接触点的 x、y 坐标,以及如何以 NDK 支持的有效方式解决这个问题。

谢谢。

0 投票
1 回答
5433 浏览

android - Android将参数传递给Native Activity

我的 android 应用程序包含两个活动:“.MainActivity”和“android.app.NativeActivity”。后者纯粹用 C++ 实现。在“.MainActivity”中单击按钮时,我启动了一个本地尝试传递一些参数:

如何从 android.app.NativeActivity 的入口点(即 C-function void android_main(struct android_app* state))中获取 MY_PARAM_1 和 MY_PARAM_2 ?

0 投票
1 回答
1238 浏览

android-ndk - 读取/写入文件时 Android NDK 崩溃

我已经将一个非常大的应用程序移植到 Android。它通过 TCP/IP 接收二进制数据,并将其写入应用程序中不时使用的文件。保存文件的目录默认设置为 ./file_cache。这里出错了:

在这种情况下,文件名是“file_i”,其中 i 从 0 开始并为每个文件递增。

程序在写入时崩溃,它不必在第一个文件上崩溃,有时它会到达第 10 个文件。当它崩溃时,fileHandle 最终为 NULL。

文件名最初在 wchar 中,但之前已转换(我在记录器中将其打印出来以确认它是正确的)。

我试过的:

  • 我添加了所有似乎与文件读/写外部存储有关的权限。

  • 我尝试了不同的位置 /sdcard/files 和 /data/data/<package>/files

问题:

  1. 当前目录是什么,即文件在默认设置下真正结束的位置是什么?

  2. 是什么导致 fopen 返回 null,而这又是导致崩溃的原因?

非常感谢任何想法。

0 投票
1 回答
4981 浏览

android - 如何处理 android .mk 中的 LOCAL_STATIC_LIBRARIES

我正在尝试移植其中一个 android NDK 示例(本机活动)以使用允许我在 MVS 中开发的 vs-android 插件。

为此,我需要将 Android.mk 命令翻译成 MVS 可以处理的东西,而我遇到了其中一个问题。

Android.mk : LOCAL_PATH := $(call my-dir)

LOCAL_STATIC_LIBRARIES 和 $(call import-module,android/native_app_glue) 的行显然处理了使 native_activity 类发挥作用的核心的 native_app_glue。

关于如何根据 vs-android 中的编译行选项、MVS 的链接器选项或任何类似的东西来翻译它的任何想法?或者至少这两行是做什么的?

干杯,詹姆