代码之家  ›  专栏  ›  技术社区  ›  htafoya

Android-资源解析如何影响构建性能?

  •  0
  • htafoya  · 技术社区  · 4 年前

    我参与了一个拥有以下资源的项目:

    <!-- 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" />
    
    1 回复  |  直到 4 年前
        1
  •  2
  •   Dominik Wuttke    4 年前

    我不能肯定,但我猜,这些资源只被访问一次,然后被缓存以备将来使用。

    即使不是这样,影响也不会被注意到,除非你有一百万的浏览量。

    在官方的Android开发者教程中,您了解到,您应该创建资源,而不是直接分配。(在构建时间方面没有提及任何内容,他们更关注的是好处,即当您只需要更改资源而不是每个视图时,您可以更轻松地更改整个视图。)

        2
  •  0
  •   htafoya    3 年前

    我创建了一个示例项目,其中引用了大约25个XML的800个XML dimens 每项决议。

    似乎根本没有影响,如果有的话,影响应该很小。

    构建时间

    Original project (1 layout)  - 10 secs
    800 layouts without using dimens (assigning dp directly)   - 14 secs
    800 layouts using dimens references  - 14 secs