Android - 资源解析如何影响构建性能?
Android - How do Resource resolution impacts build performance?
我参与的项目有一些资源,例如:
<!-- Spacing -->
<dimen name="spacing_1">4dp</dimen>
<dimen name="spacing_2">16dp</dimen>
<dimen name="spacing_3">20dp</dimen>
<dimen name="spacing_4">32dp</dimen>
<dimen name="spacing_5">45dp</dimen>
构建时间受资源解析的影响有多少,以便我的所有视图都可以:
<LinearLayout
...
android:layout_margin="@dimen/spacing_2" />
在每个文件中与简单地:
<LinearLayout
...
android:layout_margin="16dp" />
我不能肯定地说,但我猜,资源只会被访问一次,然后缓存起来以备将来使用。
即使不是这种情况,除非您的观看次数达到一百万,否则影响也不会很明显。
在你学习的官方 Android 开发者教程中,你应该创建资源而不是直接分配。(在构建时间方面没有提到,他们更关注收益,你可以改变当您只需要更改资源而不是每个视图时,整个视图会容易得多。)
我创建了一个包含 800 个 xml 的示例项目,每个 xml 引用了大约 25 dimens
个分辨率。
好像完全没有影响,如果有影响应该很小。
构建时间
Original project (1 layout) - 10 secs
800 layouts without using dimens (assigning dp directly) - 14 secs
800 layouts using dimens references - 14 secs
我参与的项目有一些资源,例如:
<!-- Spacing -->
<dimen name="spacing_1">4dp</dimen>
<dimen name="spacing_2">16dp</dimen>
<dimen name="spacing_3">20dp</dimen>
<dimen name="spacing_4">32dp</dimen>
<dimen name="spacing_5">45dp</dimen>
构建时间受资源解析的影响有多少,以便我的所有视图都可以:
<LinearLayout
...
android:layout_margin="@dimen/spacing_2" />
在每个文件中与简单地:
<LinearLayout
...
android:layout_margin="16dp" />
我不能肯定地说,但我猜,资源只会被访问一次,然后缓存起来以备将来使用。
即使不是这种情况,除非您的观看次数达到一百万,否则影响也不会很明显。
在你学习的官方 Android 开发者教程中,你应该创建资源而不是直接分配。(在构建时间方面没有提到,他们更关注收益,你可以改变当您只需要更改资源而不是每个视图时,整个视图会容易得多。)
我创建了一个包含 800 个 xml 的示例项目,每个 xml 引用了大约 25 dimens
个分辨率。
好像完全没有影响,如果有影响应该很小。
构建时间
Original project (1 layout) - 10 secs
800 layouts without using dimens (assigning dp directly) - 14 secs
800 layouts using dimens references - 14 secs