Grafik und Rendering in der mobilen Entwicklung: Was es ist, wie der Prozess funktioniert und wie es arbeitet

Autor: IT Sectr Veröffentlicht: 2026-06-16 Lesezeit: 8 Min.
Grafik und Rendering sind Schlüsselaspekte der Leistung mobiler Anwendungen. Laut dem Apple OpenGL ES Guide werden mehr als 90% der visuellen Artefakte durch falsches Rendering verursacht. Das Verständnis der Grafikpipeline ist für jeden Entwickler, der mit Animationen und komplexen UIs arbeitet, unerlässlich.

Wichtige Punkte

  • CPU Rendering — Zeichnung auf dem Hauptprozessor. Langsam aber flexibel. Canvas, Core Graphics (Quartz 2D). GPU Rendering — parallele Verarbeitung auf dem Grafikprozessor. Metal, OpenGL ES, Vulkan.
  • Shader — ein Programm auf der GPU. Vertex Shader verarbeitet Vertices, Fragment Shader verarbeitet Pixel. Modernes Rendering verwendet Shader.
  • Overdraw — wiederholtes Zeichnen eines Pixels. Der Hauptfeind der Leistung. Werkzeuge: Debug GPU Overdraw, Color Blended Layers.
  • CALayer (iOS) — das Basiselement von Core Animation. CAShapeLayer — GPU-beschleunigte Vektorgrafik. Vector Drawable — Android-Format.
  • Offscreen Rendering — Rendering in einen Puffer vor der Anzeige. Notwendig für Schatten, abgerundete Ecken und Masken. Reduziert die Leistung — vermeiden Sie es.

Grafik und Rendering: Grundlagen von CPU und GPU

Rendering ist der Prozess der Umwandlung von Daten (Vertices, Texturen, Shader) in ein Bild auf dem Bildschirm. In mobilen Geräten kann das Rendering auf der CPU (Hauptprozessor) oder GPU (Grafikprozessor) durchgeführt werden. Die Wahl hängt von der Art der Grafik und der erforderlichen Leistung ab.

CPU vs GPU Rendering

CPU Rendering — sequentielle Verarbeitung. Jede Anweisung wird nacheinander ausgeführt. Die CPU ist für Logik und Verzweigungen optimiert. Canvas (Android), Core Graphics (iOS) arbeiten auf der CPU. Vorteil: Präzision, Unterstützung komplexer Algorithmen. Nachteil: langsam bei vielen grafischen Elementen. GPU Rendering — parallele Verarbeitung. Tausende GPU-Kerne verarbeiten Vertices und Pixel gleichzeitig. Metal (iOS), Vulkan (Android), OpenGL ES (beide Plattformen) nutzen die GPU. GPU Rendering ist für 3D, 60 FPS-Animationen und komplexe Effekte obligatorisch. Moderne UI-Frameworks (SwiftUI, Jetpack Compose, Flutter) verwenden standardmäßig die GPU.

Shader (Vertex, Fragment)

Shader sind auf der GPU ausgeführte Programme. Sie bestimmen, wie jedes Objekt auf dem Bildschirm aussieht. Die Grafikpipeline besteht aus mehreren Stufen, aber zwei Haupt-Shader — Vertex Shader und Fragment Shader — werden in 99% der Fälle verwendet. Shader werden in GLSL (OpenGL), MSL (Metal) oder HLSL (DirectX) geschrieben.

Vertex Shader — verarbeitet Vertices eines 3D-Modells. Eingabe: Vertex-Position, Normale, UV-Koordinaten. Ausgabe: transformierte Position (Modell → Ansicht → Projektion). Vertex Shader kann keine Vertices erstellen oder löschen — nur transformieren. Fragment Shader — berechnet die Farbe jedes Pixels (Fragments) in einem rasterisierten Dreieck. Eingabe: interpolierte Daten vom Vertex Shader (UV, Normalen). Ausgabe: RGBA-Farbe. Fragment Shader ist verantwortlich für Texturierung, Beleuchtung (Phong, PBR) und Post-Effekte. Moderne Engines (Unity, Unreal) generieren Shader automatisch, aber das Verständnis der Pipeline ist für die Optimierung notwendig.

Offscreen Rendering — Rendering nicht auf den Bildschirm, sondern in einen temporären Puffer. Verwendet für: 1) Effekte (Blur, Shadow), 2) Render-to-Texture, 3) Vorberechnung von Frames. Offscreen Rendering ist teuer: Kontextwechsel und ein zusätzlicher Rendering-Durchlauf. iOS aktiviert automatisch Offscreen Rendering für Schatten und cornerRadius. Rasterisierung — Umwandlung von Vektordaten (Vertices + Shader) in Pixel. Der Rasterizer bestimmt, welche Fragmente zu einem Dreieck gehören und ruft den Fragment Shader auf. Compositing — Zusammenfügen von Ebenen zum endgültigen Bild. Core Animation komponiert CALayer, Android komponiert SurfaceFlinger-Ebenen.

Parameter CPU Rendering GPU Rendering
ArchitekturSequentiell (wenige Kerne)Parallel (hunderte-tausende Kerne)
GeschwindigkeitLangsam für GrafikSchnell für Massenoperationen
WerkzeugeCanvas, Core Graphics (Quartz 2D)Metal, OpenGL ES, Vulkan
AnwendungEinfache 2D-Grafik, Text, UI3D, Animationen, Spiele, komplexe Effekte
VerbrauchWeniger EnergieMehr Energie, aber schneller
OverdrawHohe KostenNiedrigere Kosten (aber immer noch schädlich)

CPU — für Logik und Canvas. GPU — für Grafik und Animationen. IT Sectr empfiehlt die Verwendung von GPU-Rendering für bewegte Inhalte (Animationen, Übergänge, Scroll) — dies gewährleistet stabile 60 FPS.

Core Animation (CALayer, CAShapeLayer)

Core Animation — Apples Framework für GPU-beschleunigtes animiertes Rendering. Das Basiselement ist CALayer: ein rechteckiger Bereich mit Inhalt (Bild, Farbe, Text). CALayer verwaltet: Position, Größe, Hintergrundfarbe, Rand, Schatten, cornerRadius und Transformationen (2D und 3D). Core Animation komponiert Ebenen automatisch auf der GPU — der Entwickler muss keinen Grafikcode schreiben.

CALayer

CALayer — ein leichtgewichtiges Objekt (keine View), das eine Inhalts-Bitmap enthält. UIButton, UILabel, UIImageView — alle verwenden intern CALayer. Eigenschaften: frame, bounds, position, anchorPoint, transform, opacity, masksToBounds. Die Animation von CALayer-Eigenschaften erfolgt auf der GPU — das ist der Hauptvorteil von Core Animation. CALayer.shouldRasterize — aktiviert die Rasterisierung der Ebene zum Zwischenspeichern komplexer Grafiken. CAShapeLayer — eine Unterklasse für Vektorgrafiken: zeichnet einen Pfad auf der GPU. Verwendet für Fortschrittsbalken, Diagramme, Masken und Formanimationen. CAShapeLayer.path — eine animierbare Eigenschaft (Form-Morphing-Animation).

Compositing in Core Animation — der Prozess der Zusammenstellung von CALayern zum endgültigen Frame. Jeder CALayer ist eine separate Textur auf der GPU. Compositing erfolgt im Render Server (einem separaten Prozess). Eigenschaften, die Compositing erfordern: opacity, shadow, cornerRadius + masksToBounds, shouldRasterize. Je weniger Ebenen — desto schneller das Compositing.

Optimierung (Overdraw, Offscreen Rendering)

Overdraw — eine Situation, in der dasselbe Pixel in einem Frame mehrmals gefärbt wird. Beispiel: roter Hintergrund → blaues Rechteck → Text. Das zentrale Pixel wird 3 Mal gezeichnet. Overdraw ist die Hauptursache für UI-Verzögerungen, insbesondere auf älteren Geräten. iOS: Debug Color Blended Layers (Xcode) — rote Bereiche = gemischt (Overdraw). Android: Debug GPU Overdraw (Entwickleroptionen) — Farben von Blau (1x) bis Rot (3x+).

Overdraw

Wie man Overdraw reduziert: 1) Verwenden Sie opaque = true für undurchsichtige Views (iOS). 2) Android — verwenden Sie android:windowBackground nur einmal. 3) Entfernen Sie unsichtbare Ebenen. 4) Verwenden Sie eine geschichtete Architektur: Hintergrund (1 Durchlauf) → Inhalt (2 Durchläufe). 5) Vermeiden Sie unnötig clipChildren und clipToPadding. Offscreen Rendering — Rendering in einen Puffer vor dem Bildschirm. Auslöser: shadow (CALayer.shadow*), cornerRadius + masksToBounds, group opacity, shouldRasterize. Xcode: Debug Offscreen Renderer — gelbe Bereiche = offscreen. Auf Android: profile GPU rendering — überprüfen Sie die Balkenlänge.

Vektorgrafik (SVG, Vector Drawable)

Vektorgrafik — Bilder, die durch mathematische Formeln (Pfade, Kurven, Füllungen) beschrieben werden. Vektoren verlieren beim Skalieren keine Qualität — ideal für Symbole und Illustrationen in mobilen Anwendungen.

SVG (Scalable Vector Graphics) — W3C-Standard. Wird in mobilen Betriebssystemen nicht direkt unterstützt. Konvertierung: auf iOS — in PDF-Vektor-Assets (Xcode 12+), auf Android — in Vector Drawable XML. Vector Drawable — Android-Format. Definiert in XML: <vector> mit <path> und <group>. Unterstützt Animation über AnimatedVectorDrawable. PDF Vector Assets (iOS) — Vektor-PDFs in Assets.xcassets. Xcode kompiliert sie in GPU-optimierte Texturen. SVG und Vector Drawable unterstützen keine komplexen Effekte (Blur, Gradient Mesh). Verwenden Sie für Fotos und Verläufe Raster-PNG/WebP.

Häufig gestellte Fragen

Was ist der Unterschied zwischen CPU- und GPU-Rendering?

CPU-Rendering — sequentielles Zeichnen auf dem Hauptprozessor. Geeignet für einfache 2D-Grafiken und Canvas. GPU-Rendering nutzt die parallele Architektur des Grafikprozessors zur Massenverarbeitung von Vertices und Pixeln.

Was ist Overdraw und wie vermeidet man es?

Overdraw — mehrmaliges Zeichnen eines Pixels pro Frame. Werkzeuge: Debug GPU Overdraw (Android), Color Blended Layers (iOS). Normal: Blau (1x) und Grün (2x). Rot (3x+) — Problem.

Was sind CALayer und CAShapeLayer in iOS?

CALayer — die Basisklasse von Core Animation. CAShapeLayer — eine Unterklasse für Vektorgrafiken auf der GPU. Beide werden von Core Animation verwaltet und im Render Server komponiert.

Was sind Vertex Shader und Fragment Shader?

Vertex Shader — ein GPU-Programm zur Verarbeitung von Vertices. Fragment Shader — ein GPU-Programm zur Berechnung von Pixelfarben. Zusammen implementieren sie die Grafikpipeline.

Wann verwendet man SVG und wann Vector Drawable?

SVG — W3C-Standard, nicht direkt unterstützt. Auf iOS — PDF-Vektor-Assets. Auf Android — Vector Drawable XML. IT Sectr empfiehlt PDF für iOS und Vector Drawable XML für Android.

Zusammenfassung

  • CPU vs GPU: CPU — sequentiell, für Logik. GPU — parallel, für Grafik. Verwenden Sie GPU für Animationen.
  • Shader: Vertex — Vertex-Transformation, Fragment — Pixelfarbe. Grundlagen der Grafikpipeline.
  • Overdraw — der Hauptfeind von FPS. Überprüfen Sie mit Debug GPU Overdraw / Color Blended Layers.
  • CALayer (iOS) — GPU-beschleunigtes Rendering. CAShapeLayer — für Vektorformen.
  • Offscreen Rendering — teuer. Vermeiden Sie unnötige Schatten, cornerRadius + masksToBounds.
  • Vector Drawable (Android) und PDF (iOS) — bestes Format für Symbole. Raster-PNG/WebP — für Fotos.
  • Compositing — Ebenenzusammenstellung. Weniger Ebenen = schnelleres Compositing = höhere FPS.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen