gpt4 book ai didi

android - Linux 内核如何与 Android 运行时和库交互?

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:43 24 4
gpt4 key购买 nike

我一直在从事一个项目,其中我必须在库和 dalveik 虚拟机所在的 android 第二层添加一个引擎或平台。我的问题是我应该如何在第二层添加一些东西并为其提供Linux内核资源。

Linux 内核如何与库和 Android 运行时交互来执行应用程序?我可以探索哪些来源或资源,以便自由发言。

最佳答案

实际上,您在这里使用的词语的含义与您的要求不同。

我认为你需要实现一组库。

为此,您首先需要了解 Linux 操作系统的工作原理,然后了解 Android 如何利用它来实现其目的。

在这里我尝试对您的需求做一些简短的描述。

Linux内核有两层——用户空间和内核空间,用户空间负责与用户交互,内核负责与硬件交互。两者如何交互是通过称为系统调用的过程。

这里的核心概念也是相同的。如图所示的前三层是用户空间的部分。最底层是内核层。

layers of android

这里用户空间和内核空间之间的通信方式也是系统调用。但通常只有各层库才起到上述各层与内核之间进行通信的作用。

然后就是您的要求。

how should i add something at second layer and provide Linux kernel resources to it

你也必须做同样的事情,你可以添加一个新的库,在其中使用系统调用接口(interface)你可以与内核对话。

此外,为了从 java 代码访问共享库的方法,您需要引入 JNI 包装器 围绕从共享库公开的方法。

交叉编译后可以得到.so文件here you can refer a sample how to develop a shared library for android

仅此而已,根据您的要求,您还可以开发您的库。

然后您需要使用 adb push 命令将该文件推送到 /system/lib 中。他们可能会遇到推送可能不起作用的情况,然后尝试挂载/system

adb shell mount -o remount,rw /system //and then again try to push
adb push mylibrary.so /system/lib/mylibrary.so
adb shell chmod 644 /system/lib/mylibrary.so // set the permission

如果有时您仍然无法推送该文件,请尝试 root 该设备。

重新启动设备后,该库即可工作。

关于android - Linux 内核如何与 Android 运行时和库交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com