15회 Kandroid 기술세미나 : Android Rendering Pipeline
세미나 일정
일시 : 2015년 3월 20(금) 오전 9시 ~ 오후 5시 (총6시간)
장소 : kandroid 교육장 (선릉역 10번 출구 리치타워 16층)
주최 : www.kandroid.org
정원 : 31명
참가방법
사전결제 : 330,000원 (부가세 포함 / Hard-Copy 발표자료집 제공 / 중식 포함) [사전등록 바로가기]
현장결제 : 지원하지 않습니다. ※ 직접 송금 (계좌이체)방법은 이곳을 참조하세요.
연락처
E-mail : contact.kandroid@gmail.com 모든 문의는 E-mail로만 받습니다.
전화통화를 원하시는 경우엔 E-mail로 전화번호를 남겨주시면 연락드리겠습니다.


시간 발표 내용
오전
(09:30~12:30)

점심시간
(12:30~14:00)

오후
(14:00~17:00)
2D Graphics in Android (1시간)
내용요약 : 2D 그래픽의 주요 개념을 Drawable의 유형과 Effect의 유형을 통해 정리해 봅니다. 그리고 이러한 2D 그래픽에 대한 지원을 Skia의 시대와 HWUI의 시대로 나눠서 살펴봅니다. 마지막으로 2D 그래픽에서 텍스트 렌더링의 중요성과 텍스트 렌더링에 사용되는 기술과 성능 최적화 방법에 대해 살펴봅니다. 이러한 전반적인 2D 기술에 대한 내용을 안드로이드 2D 그래픽 라이브러리인 Skia의 과거,현재,미래를 통해 살펴봄으로써, 이 분야의 미래에 대해서도 함께 고민해 보고자 합니다.
이경민 (Kyungmin Lee) - Kandroid
  1. What 2D graphics must support?
    • Types of 2D Drawable: Texts, Geometries, Images
    • Types of 2D Effects: Path Effects, Mask Filters, Shaders, Color Filters, Transfer Modes
  2. How Android supports 2D graphics?: Historical perspective
    • Skia-era: CPU drawing + GPU compositing
    • HWUI-era: GPU drawing & compositing
  3. How Android renders texts?
    • Why is text rendering challenging?
    • Roles of HWUI, Skia, and Freetype (Harfbuzz) in text rendering
    • Text rendering performance optimization

Hardware Accelerated 2D Graphics with RS (1시간)
내용요약 : RenderScript 기반의 2D 하드웨어 가속 기법에 대해 살펴봅니다. 먼저 RenderScript
파이프라인의 기본개념, 백엔드에 대한 제어방법,커스텀 커널 제작에 대해 알아봅니다.
또한 RenderScript 사용시 성능관련 고려사항을 병렬화와 메모리 오버헤드차원에서 검토합니다.
마지막으로 RenderScript의 실제사용 사례를 이미지 프로세싱, 안드로이드 하드웨어 UI, AOSP 영역에서 검토해 봅니다.
조병호(Jo, Byoung Ho),이경민,양정수 - Kandroid
  1. RenderScript Programming
    • Pipeline Basic & Backend Control
    • Custom Kernel Implementation in RS
  2. Performance Metrics in RS
    • Parallelization
    • Memory Overhead
  3. Patterns of RenderScript in Android
    • RS in Image Processing
    • RS in HWUI
    • RS in AOSP

Shading Language in Android (1시간)
내용요약 : OpenGL API를 통하여 렌더링을 수행하는 OpenGL Pipeline 과정에서, 일부 기능은 프로그래밍 가능하도록 구현되어 있습니다. 구현된 프로그램을 OpenGL Shader라 하고, 프로그래밍 언어를 OpenGL Shading Language라 합니다. 본 세션에서는 OpenGL Shader와 Shading Language에 대한 기본 개념을 정확히 습득하도록, 예제 중심으로 살펴봅니다.
더불어 안드로이드에서의 Shader Language 사용패턴을 구체적으로 살펴봅니다.
우덕균(Duk-Kyun Woo) - ETRI, 이경민,양정수 - Kandroid
  1. OpenGL ES Shading Language and Shader
    • EGL & OpenGL ES 3.0 Graphics Pipeline
    • OpenGL ES Shading Language
    • Compiling and Linking Shader Source
    • Vertex Shader
    • Fragment Shader
    • Using Textures in a Shader
  2. Patterns of Shaders in Android
    • Shaders in Skia
    • Shaders in HWUI
    • Shaders in AOSP

Native Game Development with Cocos2d-x (1시간)
내용요약 : 모바일 게임 개발 환경에서 Cocos2d-x의 위상에 대해 살펴봅니다. 그리고 Cocos2d-x의 렌더링 파이프 라인에 대해 3가지(게임 루프, 이벤트 처리, 렌더링 최적화) 측면에서 검토합니다. 마지막으로 안드로이드 UI Framework과 Cocos2d-x UI Framework간의 차이를 살펴봄으로써, 각 기술의 위상과 발전 가능성에 대해 알아봅니다.
윤주현(Juhyun Yun) - NHN Entertainment
  1. What is a Game Engine?
    • Famous Game Engines for Android
    • Differences between each Game Engines
    • Why Cocod2d-x?
  2. Cocos2d-x Rendering Pipeline
    • Game Loop and Rendering Pipeline
    • Event Processing
    • Rendering Optimization
  3. UI Framework Comparison between Android and Cocos2d-x
    • Rendering Architecture Comparison
    • Rendering Components
    • Conclusion

Android Chromium Rendering Pipeline (1시간)
내용요약 : 웹기술의 가장 중요한 Key Player인 브라우저의 내부 구조와 동작 원리를 이해하면, 웹앱 개발이나 웹앱의 성능 향상에 많은 도움이 될 것 같습니다. 이번 세션에서는 Modern Browser의
Rendering Pipeline과 Chrome 브라우저에서 렌더링 성능 향상을 위하여 어떤 기술들을 활용하고 있는지, 그리고 해당 기술들이 안드로이드에는 어떻게 적용되어 있는지 살펴볼 예정입니다. 그리고 최근 안드로이드 KitKat부터 적용된 Chromium-powered WebView의 구조적인 특징과 기존의
WebView와 어떤 차이가 있는지 상세히 살펴볼 예정입니다.
이형욱 (Hyungwook Lee) - 네이버 랩스
  1. What is a Critical Path in Browsers?
    • Summary of browser main flows
    • Rendering Pipeline Runs on Main Thread
    • GPU Accelerated compositing
  2. Rendering Performance Boosting Things in Chromium Browser
    • Why Multi Process/Thread Architecture?
    • GPU Process
    • Chromium Scheduler
  3. Chromium-powered WebView in Android
    • Chrome vs. Chromium-powered WebView in K
    • Chrome vs. Android Rendering Model
    • Chromium WebView Rendering Pipeline in K
    • Chromium-powered WebView in L

Custom and Native UI Frameworks for Android (1시간)
내용요약 : Native 기반의 Cross-Platform 호환성 보장을 위한 개발 환경에 대해 살펴보고자 합니다. 이를 위해 현재 주로 사용되는 기술 3가지(Skia, Cocos2d-x, Chromium-powered WebView)와
Java 기반의 안드로이드 UI Framework 설비를 비교 검토합니다.
더불어 보다 나은 Native 기반의 UI Framework을 위해 필요한 고려사항들을 다양한 측면에서 살펴봅으로써, 안드로이드 기반의 새로운 Native UI Framework의 가능성에 대해 이야기해 보고자 합니다.
양정수(Yang, Jeong Soo),이경민 - Kandroid
  1. Current State of Android UI Framework
    • UI Framework and Components
    • Java API vs. Native API in Android UI Framework
    • Java Stack vs. Native Stack in Android UI Framework
  2. Case Study : Native UI Framework
    • Skia: SkWindow, SKView, SkWidget
    • Cocos2d-x : Director, Scene, Node
    • Chromium-powered WebView
    • Comparison of three case studies
  3. Design Considerations for Native UI Framework in Android
    • Synchronization with Android Event Loop
    • First-class Citizen of Android View Hierarchy
    • Integration with Android Hardware Acceleration
    • Reusing the Android Graphics Library
    • Conclusion : Reusing the features of Android