一般来说单一进程的最大可打开文件句柄数量为 1024 ,可通过 cat proc/进程ID/limits 查看。
当前程序已使用的句柄数量凯盯可进入文件夹 cd proc/进缺孙厅程ID/fd 查看
在 Android 中能造成文件句柄泄漏主要有以下三类伏隐
Process 使用完之后一定要调用 destroy()
这些用完之后一定要记得 close() ,养成良好的编码习惯
很多时候句柄泄漏是 socket 不能正确的关闭导致的,所以在停止业务的时候,要保证 socket 都能正确的关闭
通过 slof -p 进程ID 可查看当前进程的句柄情况
大致可以定位句柄泄漏的类型
Android自动晌好谨化测试中AccessibilityService获取控件信息(1)已经做到了获得控件信息,但是AccessibilityEvent.getSource()得到的是被点击的单体对象。我们需要获得是整个窗口的对象,在API16中AccessibilityService新引入的方法getRootInActiveWindow()可宴基以满足我们的要求,所以我们用这个方法得到整个窗口,然后遍历得到所有子节袜稿点。
AccessibilityNodeInfo rowNode = getRootInActiveWindow()
if (rowNode == null) {
Log.i(TAG, "noteInfo is null")
return
} else {
recycle(rowNode)
}
Log.i(TAG, "==============================================")
其中循环的方法recycle():public void recycle(AccessibilityNodeInfo info) {
if (info.getChildCount() == 0) {
Log.i(TAG, "child widget----------------------------" + info.getClassName())
Log.i(TAG, "showDialog:" + info.canOpenPopup())
Log.i(TAG, "Text:" + info.getText())
Log.i(TAG, "windowId:" + info.getWindowId())
} else {
for (int i = 0i <info.getChildCount()i++) {
if(info.getChild(i)!=null){
recycle(info.getChild(i))
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)