首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ContentProvider与粘结剂工控机

ContentProvider与粘结剂工控机
EN

Stack Overflow用户
提问于 2014-02-21 11:25:31
回答 1查看 2.2K关注 0票数 2

我对内容提供商有疑问。我们知道绑定不能传输大量的数据(~>3MB),但是即使内容提供商也使用绑定IPC的权利,这可能涉及>3MB的传输?或者内容提供者在调用者进程内存空间内直接读取数据库,而不涉及IPC?

请纠正我的理解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-09 20:54:03

在最低级别,内容提供者使用基于共享内存(ashmem)的CursorWindows。

查看AOSP源文件frameworks/base/libs/androidfw/CursorWindow.cpp,除了从系统级ashmem和mmap服务继承的内存大小之外,最低级别的C++代码似乎没有对共享内存大小施加任何限制。

下一个代码层frameworks/base/core/jni/android_database_CursorWindow.cpp似乎也没有对光标窗口大小施加任何限制。

frameworks/base/core/java/android/database/CursorWindow.java代码从Android框架内部配置值config_cursorWindowSize读取缓冲区大小,在默认情况下,至少在KitKat中是2048。因此,在KitKat中,如果使用普通的CursorWindow接口,最大CursorWindow大小为2MB。但是,如果您直接使用来自androidfw/CursorWindow.h的C++,使用AOSP头,那么您可以使用更大的CursorWindows。(请注意,仅仅使用NDK是不够的,因为CursorWindow不是NDK的一部分。)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21933118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档