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就有相关的内容显示出来

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。