应用程序拥有大约100个本地绑定器实例是否正常?这个数字攀升至如此之高,并且从未下降到最初的水平。有大量粘合剂的场景可能是什么?
答案 0 :(得分:2)
(在作者询问使用adb shell dumpsys meminfo
列出的本地绑定器数量时重写)。我无法回答关于这是否正常的问题,因为我以前从未发现过这个命令!
但这里有一些关于可能导致它的情景的信息。
本地绑定器是Android'Binder'内核IPC驱动程序认为可以从另一个进程接收函数调用的任何对象。
这些事情可能包括:
IBinder
。当您声明Android服务时,总会有这样的对象。通常,当您使用其他人的服务时,您也会创建此类对象(作为侦听器)。IBinder
- Android框架内的派生对象。在某些情况下,这可能是显而易见的,例如当您为某些系统服务提供某种类型的侦听器时。但是其他Android框架类通常也会涉及Binders。例如,我感觉Android Bitmap在其中的某处包含IBinder
,以便安排不同的进程共享位图数据而无需复制它。不过,我不确定。ISurfaceComposer
的图形合成引擎(表面抛光器)。所以,要弄清楚为什么你有这么多的Binders,请考虑这些事情:
Service
和AIDL吗?我的直觉是,100是不寻常的;可能没有什么可以担心,但我仍然很想知道你是否知道原因是什么。