gpt4 book ai didi

android - 如何修改 Android 交叉工具链的默认 lib 链接(不使用 libc++ 和 libm 进行链接)

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:07 24 4
gpt4 key购买 nike

我构建了一个小型 Android 系统,它为我的 native 应用程序使用了更少的内存。

我发现我所有的应用程序都将链接到 libm.solibstdc++.so,即使它们完全是用 C 编写的并且不使用 中的任何函数>libm(例如 sin())。该库使用超过 20K 的内存。

如何删除libstdc++libm的链接?

最佳答案

在原则上不放弃您的目标的情况下,Android 通过从 zygote 进程中 fork 出一个子进程来启动应用程序,该进程已将大量系统库预加载到内存中以供所有应用程序共享使用。许多 dalvik 类也已预加载。

由于您继承了这些共享映射,实际上消耗的物理内存非常少——对于应用程序运行的每个子进程,预加载库和类仅消耗内存来跟踪预加载代码空间上的数据,以及可写数据空间.

因此,它实际上节省了内存,为所有应用程序提供只有大多数人需要的东西,而不是让需要它的应用程序加载他们自己的(不可共享的)副本。此外,虽然开发人员编写的 ndk 库可能只使用 C,但由于包含平台代码 fragment ,Android 应用程序作为一个整体不可避免地是 C++ 程序。

关于android - 如何修改 Android 交叉工具链的默认 lib 链接(不使用 libc++ 和 libm 进行链接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852896/

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