热身
熟悉Edje、 Elementary和eva API通过学习基本知识: 优化EDC
优化eva
优化EDC
- 删除不必要的部分。当您创建EDC,过时的和不必要的部分。 因为他们对性能有影响,移除它们。
前 | 后 | - collections
- {
- group
- {
- name: "main";
- parts
- {
- part
- {
- name: "bg";
- type: RECT;
- description
- {
- state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- color: 255 255 255 255;
- }
- }
- part
- {
- name: "new";
- type: RECT;
- scale: 1;
- mouse_events: 1;
- description
- {
- state: "default" 0.0;
- color: 255 255 0 255;
- rel1.relative: 0.2 0.2;
- rel2.relative: 0.8 0.8;
- }
- }
- part
- {
- name: "old";
- type: RECT;
- scale: 1;
- mouse_events: 1;
- description
- {
- state: "default" 0.0;
- color: 0 0 0 0;
- rel1.relative: 0.5 0.5;
- rel2.relative: 1.0 1.0;
- }
- }
- }
- }
- }
复制代码
| - collections
- {
- group
- {
- name: "main";
- parts
- {
- part
- {
- name: "bg";
- type: RECT;
- description
- {
- state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- color: 255 255 255 255;
- }
- }
- part
- {
- name: "new";
- type: RECT;
- scale: 1;
- mouse_events: 1;
- description
- {
- state: "default" 0.0;
- color: 255 255 0 255;
- rel1.relative: 0.2 0.2;
- rel2.relative: 0.8 0.8;
- }
- }
-
- }
- }
- }
复制代码
|
- 使用文本,如果可能的话,而不是Textblock。
以下edc导致相同的结果。 然而,使用文本为高性能除了使用简单的文本标签或多个行。 前 | 后 | - collections
- {
- styles
- {
- style
- {
- name: "text_style";
- base: "font="Sans" font_size=30 text_class=entry
- color=#0088AA style=shadow,bottom
- shadow_color=#00000080 valign=0.5 ellipsis=1.0
- wrap=none align=center";
- }
- }
- group
- {
- name: "main";
- parts
- {
- part
- {
- name: "text";
- type: TEXTBLOCK;
- scale: 1;
- description
- {
- state: "default" 0.0;
- text
- {
- style: "text_style";
- text: "TEXT";
- }
- }
- }
- }
- }
- }
复制代码
| - collections
- {
- group
- {
- name: "main";
- part
- {
- name: "simple";
- type: TEXT;
- scale: 1;
- effect: SHADOW;
- description
- {
- state: "default" 0.0;
- align: 0.5 0.5;
- color: 0 136 170 255;
- visible: 1;
- text
- {
- size: 30;
- font: "Sans";
- text: "TEXT";
- }
- }
- }
- }
- }
复制代码
|
3.压缩图片和你的图片嵌入到EDC。
当你使用一个固定的形象,这是更有效的EDC内调用一个图像。 这节省时间在获得图像数据和更适合的数据大小。
- collections
- {
- images
- {
- image: "logo.png" COMP;
- }
- group
- {
- name: "main";
- parts
- {
- part
- {
- name: "logo";
- type: IMAGE;
- description
- {
- state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- image.normal: "logo.png";
- aspect: 1 1;
- aspect_preference: BOTH;
- }
- }
- }
- }
- }
复制代码
4.如果可能的话,使用间隔部分。
当你使用(如填充部分)是无形的,但有一个大小,使用间隔更有效率。 由于垫片是无形的,它没有可见的和颜色选项。
5.使用图像边界特性。
当你使用一个图像,您不需要使用一个完整的尺寸或更大尺寸的形象。 正如您将在下面看到的,它是更有效规模图像使用边界选项。
之前后
前 | 后 | - collections
- {
- images
- {
- image: "test.png" COMP;
- }
- group
- {
- name: "main";
- parts
- {
- part
- {
- name: "test";
- type: IMAGE;
- description
- {
- state: "default" 0.0;
- rel1.relative: 0.2 0.2;
- rel2.relative: 0.8 0.8;
- image.normal: "test.png";
- }
- }
- }
- }
- }
复制代码
| - collections
- {
- images
- {
- image: "test.png" COMP;
- }
- group
- {
- name: "main";
- parts
- {
- part
- {
- name: "test";
- type: IMAGE;
- description
- {
- state: "default" 0.0;
- rel1.relative: 0.2 0.2;
- rel2.relative: 0.8 0.8;
- image.normal: "test.png";
- image.border: 5 5 5 5;
- }
- }
- }
- }
- }
复制代码
|
优化eva优化eva:
2.使物体隐形,而不是设置α为0。使物体隐形,更高效的使用 evas_object_hide () 而不是改变alpha值为0。
之前 | 后 | - static void
- _invisible_cb(void *data, Evas_Object *obj, void *ev)
- {
- evas_object_color_set(obj, 0, 0, 0, 0);
- }
复制代码
| - static void
- _invisible_cb(void *data, Evas_Object *obj, void *ev)
- {
- evas_object_hide(obj);
- }
复制代码
|
3.如果你需要最大的优化,使用 evas_object_image 而不是 elm_image 和 elm_icon 。
之前 | 后 | - 之前 后
- static void
- _invisible_cb(void *data, Evas_Object *obj, void *ev)
- {
- evas_object_color_set(obj, 0, 0, 0, 0);
- }
- static void
- _invisible_cb(void *data, Evas_Object *obj, void *ev)
- {
- evas_object_hide(obj);
- }
复制代码
| img = evas_object_image_add(evas_object_evas_get(parent));
- snprintf(buf, sizeof(buf), "%s/images/white_bg.png", elm_app_data_dir_get());
- evas_object_image_file_set(img, buf, NULL);
- evas_object_image_filled_set(img, EINA_TRUE);
- evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(img);
复制代码
|
4.正确设置家长为了避免初等树重建。
创建一个对象之前,确保父母和孩子之间的关系是正确设置为了避免以后重建。之前 | 后 | - win = elm_win_add();
- scroller = elm_scroller_add(win);
- box = elm_box_add(win);
- button = elm_button_add(win);
复制代码
| - win = elm_win_add();
- scroller = elm_scroller_add(win);
- box = elm_box_add(scroller);
- button = elm_button_add(box);
复制代码 |
标签:应用程序, 如何, 影响, 知识, EFL |