android:onClick会在幕后使用Java反射概念吗?

时间:2014-09-16 21:13:45

标签: java android xml reflection onclick

此问题已经多次提出herehere;但我想确认一件事,我的问题很简单:android:onClick是否使用Java反射?

由于Java反射会降低性能as explained here,因此我绝不会以低效的方式编写代码。

我只想要一个简单的答案:是(只有你确定)或不是吗?

修改

有许多答案与SO相冲突的理解:

例如,请参阅this onethis one。两人都接受了答案,两人都说了两件不同的事情。 (这就是我发布问题的原因。)

2 个答案:

答案 0 :(得分:2)

确实,它确实使用反射将方法(“methodName”)绑定到处理程序。这是一次性交易,同时膨胀XML并且不会以任何有意义的方式影响性能。 XML通胀本身就是一个相当昂贵的解析,

(每http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/view/View.java#2017

除此之外,它与在代码中执行它完全一样。

答案 1 :(得分:1)

直到响应按钮点击的延迟达到大约1/10秒,人类才会将其视为instantaneous,因此优化按钮点击响应的反射并不重要< / em>的

您不必担心此类问题,因此优化工作可以专注于存在可衡量性能问题的代码。