问题标签 [bionic]
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 - Android libc版本和malloc实现
Android平台使用什么libc实现?使用什么 malloc 实现(ptmalloc 或 tcmalloc 或其他)?
android - 仿生(android libc)互斥体变体
仿生 libc 支持哪些类型的互斥锁?
- 递归的
- 定时的
- 自适应
- 错误检查
android - Android中使用的库
我已经从https://android.googlesource.com下载了源代码,现在我想知道是否可以使用交叉编译器编译库(仿生)和 Dalvik VM?如果是,我该怎么做?
c++ - ld 选项 -lrt 指的是什么库(Bionic libc)?
ld 的这个选项是什么意思?
-lrt
我知道在某种程度上这意味着 ld 正在寻找具有实时扩展功能的库,但是经过广泛搜索后,我找不到确切的定义(或哪个库)。
使用 Bionic (android) libc,android NDK 文档详细说明了它(连同 pthreads)已被集成。
我问是因为它似乎是隐式的(即,当我直接调用编译器、自定义编译的 gdc 时,我收到一条消息说 ld 找不到 -lrt)
编辑
从仿生概述
Bionic 的 C 库附带捆绑了自己的 pthread 实现。这与其他历史 C 库不同:
对实时功能(又名 -lrt)的支持也捆绑在 C 库中。
问题是 collect2 将选项 -lrt(以及 -lpthreads)传递给 ld。
有没有办法覆盖这种行为?
android - JVM和本机库之间的通信
我想知道,假设在 android 中是否有一个应用程序中编写了一些 C/C++ 代码。执行此代码时,它将需要本机 c 库。那么 DVM 是如何与这些库通信的呢?它是否使用 Binder 从库中获取资源?或者这部分代码不在JVM中执行。如果不是,这在哪里执行以及如何执行?JVM和本机库之间有什么联系吗?
webtop - Driod Bionic 上的 Webtop2sd
我无法启动自定义 Webtop。当我启动 webtop 时,我只是获得了无法安装程序、运行 LXTerm 等的标准版本......
我正在运行一个根深蒂固的 Bionic 902 我已经应用了 HDMI webtop hack 我运行了 webtop2sd 我运行了自定义的 busybox 安装程序我应用了 e mbm.tar.bz2 补丁我重新运行了 webtop2sd 安装程序。
在任何这些步骤之后启动的 webtop 没有变化。
我对 webtop2sd 的诊断是:版本:2.0.1 安装可执行版本 webtop2sd/2.0.0 安装了自定义busybox:Y Webtop 配置器版本:33 当前安装的 webtop:webtop,mmcblk0p2
有人对此有解决方案吗?
android - 为什么仿生C中的pthread_cond_wait不是原子的?
实现中存在竞争条件,可能会丢失信号。问题是 pthread_cond_wait 函数不是原子的?在文件 https://github.com/android/platform_bionic/blob/master/libc/bionic/pthread.c的评论中讨论了相同的内容
这个操作不应该是原子的吗?
bionic - 为什么memcmp在仿生中是这样的?
我发现仿生中的memcmp.c是这样的:
在for循环中,同样的逻辑重复了4次,为什么?可以不重复吗?
谢谢,维克多
android - 如何理解仿生的 bcopy.c 中的这段代码片段?
我在http://androidxref.com/4.0.4/xref/bionic/libc/string/bcopy.c中阅读了 memcpy 实现, 发现以下代码很难理解,谁能解释一下?
...
这些按位运算是什么意思?他们的意图是什么?
c - android 和 libc 线程安全上的共享本机库
我是 Android 开发新手(也不是 C/C++ 专家),但我发现自己正在研究一个用 C 编写的本机共享库,该库应该由 Android 应用程序(在其他平台中)使用。
现在,我开始考虑线程安全,并确定我的库当前不是线程安全的(使用静态/全局变量)。没问题,我只会从一个线程中使用它。
这是我的实际问题开始的地方。从互联网上的一些帖子(例如在 Launchpad 上,似乎仿生 libc 的某些部分(特别是 stdio)也不是线程安全的,至少在某些 Android 版本中(我们仍然针对 3.0 之前的版本)。现在的问题是,此应用程序/进程中使用的其他本机库是否会共享相同的 libc 实例,从而导致线程安全问题,或者每个共享库是否都有自己的 libc 实例?
如果 libc 在所有共享库之间共享,我在哪里可以找到关于它的哪些部分是线程安全的以及哪些不是线程安全的信息?为了安全起见,我是否必须使用同一线程中的所有本机库?
编辑:根据我目前的理解进行更新:仿生 libc应该完全是线程安全的,上面显示的问题是一个孤立的错误,在大多数情况下不会发生(如许多 MT 错误)。问题是存在的,但我最好的猜测是整个进程共享同一个 libc 实例。稍后我将尝试对此进行测试。