Android - 如何启用 CheckJni 进行 NDK 开发?

发布于 2024-08-12 15:34:30 字数 276 浏览 5 评论 0原文

有人可以告诉我我是否在这里遗漏了什么吗? 我正在 shell 中尝试以下命令。

$ ./adb shell stop
$ ./adb shell setprop dalvik.vm.checkjni true
$ ./adb shell start

但是当我将 apk 安装到设备上时,Logcat 总是显示“CheckJNI is OFF”。
在 Eclipse 中我还需要做些什么来启用 XCheck:Jni 标志吗?

感谢您的帮助 BD

Can someone please tell me if I'm missing something here?
I am trying the following commands in shell.

$ ./adb shell stop
$ ./adb shell setprop dalvik.vm.checkjni true
$ ./adb shell start

But Logcat always shows "CheckJNI is OFF" when I install the apk onto the device.
Is there something else in eclipse that I need to do to enable the XCheck:Jni flag?

Thanks for any help
BD

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

┾廆蒐ゝ 2024-08-19 15:34:30

有四种不同的情况,一种用于 root 设备,一种用于模拟器,一种用于常规设备,一种用于 root 或常规设备。

在 root 设备上,我能够让它工作:

在 adb 中:在

adb shell

此 shell 后启动:

su
stop
setprop dalvik.vm.checkjni true
start

重新启动此设备后并在启动时我看到日志消息:

CheckJNI is ON

对于其他情况,请参阅官方文档中的一些理论:

有多种方法可以启用 CheckJNI。

如果您使用模拟器,CheckJNI 默认处于启用状态。

如果您有 root 设备,则可以使用以下命令序列在启用 CheckJNI 的情况下重新启动运行时:

adb shell 停止
adb shell setprop dalvik.vm.checkjni true
亚行外壳启动

在这两种情况下,当运行时启动时,您都会在 logcat 输出中看到类似的内容:

D AndroidRuntime:CheckJNI 已打开

如果您有常规设备,可以使用以下命令:

adb shell setprop debug.checkjni 1

这不会影响已经运行的应用程序,但从那时起启动的任何应用程序都将启用 CheckJNI。 (将该属性更改为任何其他值,或者简单地重新启动将再次禁用 CheckJNI。)在这种情况下,下次应用程序启动时,您将在 logcat 输出中看到类似的内容:

D 后期启用 CheckJNI

您还可以在应用程序清单中设置 android:debuggable 属性,以仅为您的应用程序启用 CheckJNI。请注意,Android 构建工具会针对某些构建类型自动执行此操作。

There is four different cases, one for rooted device, one for emulator, one for regular device and one for rooted or regular device.

On rooted device I was able to get it working so:

In adb:

adb shell

In launched after this shell:

su
stop
setprop dalvik.vm.checkjni true
start

After this device was rebooted and at boot I see log message:

CheckJNI is ON

For other cases see some theory from official docs:

There are several ways to enable CheckJNI.

If you’re using the emulator, CheckJNI is on by default.

If you have a rooted device, you can use the following sequence of commands to restart the runtime with CheckJNI enabled:

adb shell stop
adb shell setprop dalvik.vm.checkjni true
adb shell start

In either of these cases, you’ll see something like this in your logcat output when the runtime starts:

D AndroidRuntime: CheckJNI is ON

If you have a regular device, you can use the following command:

adb shell setprop debug.checkjni 1

This won’t affect already-running apps, but any app launched from that point on will have CheckJNI enabled. (Change the property to any other value or simply rebooting will disable CheckJNI again.) In this case, you’ll see something like this in your logcat output the next time an app starts:

D Late-enabling CheckJNI

You can also set the android:debuggable attribute in your application's manifest to turn on CheckJNI just for your app. Note that the Android build tools will do this automatically for certain build types.

淡忘如思 2024-08-19 15:34:30

这里也有一个关于如何使用 checkJNI 的部分:

http ://www.netmite.com/android/mydroid/dalvik/docs/embedded-vm-control.html

There is a section on how to use checkJNI here too:

http://www.netmite.com/android/mydroid/dalvik/docs/embedded-vm-control.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文