Android性能优化—MAT之OQL详解(三)

OQL是Object Query Language的简写,即对象查询语言,OQL语法和关系型标准查询语言SQL的语法相似,只是增加了比如对象标识、复杂对象、操作、继承、多态性以及联系。
SELECT

1.SELECT * FROM java.lang.String

2.SELECT toString(s), s.count, s.value FROM java.lang.String s (@为属性访问器,可以使用AS起个别名)

3.SELECT AS RETAINED SET * FROM java.lang.String (使用**AS RETAINED SET **获得与选择对象相关联的对象集合)

4.SELECT OBJECTS dominators(s) FROM java.lang.String s (**OBJECTS 关键字使得dominators **返回二维数组简化为一维对象列表)

5.SELECT DISTINCT OBJECTS classof(s) FROM java.lang.String s (**DISTINCT **去重复)

FROM

1.SELECT * FROM "java/.lang/..*" (支持正则)

2.SELECT * FROM java.lang.String

3.SELECT * FROM 0xe14a100 (根据对象在堆转储快照中的地址查询)

4.SELECT * FROM 3022(根据对象在堆转储快照中的地址ID)

5.SELECT * FROM ( SELECT * FROM java.lang.Class c )

6.SELECT * FROM ${snapshot}.getClasses()(使用属性访问器)

7.SELECT * FROM INSTANCEOF java.lang.ref.Reference (**INSTANCEOF **会把指定类的子类也查询出来)

8.SELECT * FROM OBJECTS java.lang.String (**OBJECTS **禁止OQL把查询范围解释为对象实例,上述结果为java.lang.String对应的Class)

WHERE

1.SELECT * FROM java.lang.String s WHERE s.count **>= **100

2.SELECT * FROM java.lang.String s WHERE toString(s) **LIKE *".day"

详情参考:http://help.eclipse.org/kepler/index.jsp,搜索OQL就有相关的内容显示出来

你可能感兴趣的:(Android性能优化—MAT之OQL详解(三))