SlideShare a Scribd company logo
1 of 37
Download to read offline
Outline
               Building Blocks
              Under the Hood
                     Get Dirty
                        Q&A




Introduction to Android Window System

                     Chia-I Wu
                   olv@0xlab.org



                     May 15, 2009




      Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                       Building Blocks
                      Under the Hood
                             Get Dirty
                                Q&A




Building Blocks
   Overview
   Interested Components

Under the Hood
   Random Topics

Get Dirty
   Development
   Code

Q&A



              Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Overview
                         Under the Hood
                                            Interested Components
                                Get Dirty
                                   Q&A


Outline

   Building Blocks
      Overview
      Interested Components

   Under the Hood
      Random Topics

   Get Dirty
      Development
      Code

   Q&A


                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                       Building Blocks
                                         Overview
                      Under the Hood
                                         Interested Components
                             Get Dirty
                                Q&A


System Architecture




              Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                       Building Blocks
                                         Overview
                      Under the Hood
                                         Interested Components
                             Get Dirty
                                Q&A


System Architecture




              Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                       Building Blocks
                                         Overview
                      Under the Hood
                                         Interested Components
                             Get Dirty
                                Q&A


System Architecture




              Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                           Building Blocks
                                             Overview
                          Under the Hood
                                             Interested Components
                                 Get Dirty
                                    Q&A


Building Blocks



   There are more, but we focus on
       SurfaceManager
       WindowManager
       ActivityManager




                  Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Overview
                         Under the Hood
                                            Interested Components
                                Get Dirty
                                   Q&A


SurfaceManager




      frameworks/base/libs/surfaceflinger/
      a.k.a SurfaceFlinger
      Allocate surfaces. Backed by ashmem/pmem/?
      Composite surfaces




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                         Building Blocks
                                           Overview
                        Under the Hood
                                           Interested Components
                               Get Dirty
                                  Q&A


WindowManager


     frameworks/base/services/java/
     com/android/server/WindowManagerService.java
     About 9000 SLOC in one ļ¬le. Poorly documented, bad
     namings, ...
     (Ask SurfaceManager to) create/layout surfaces on behalf of
     the clients
     Dispatch input events to clients
     Transition animation
     WindowManagerPolicy


                Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Overview
                         Under the Hood
                                            Interested Components
                                Get Dirty
                                   Q&A


ActivityManager



      frameworks/base/services/java/
      com/android/server/am/
      Manage lifecycles of activities
      Manage stacking of activities
      Dispatch intents
      Spawn processes




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Overview
                         Under the Hood
                                            Interested Components
                                Get Dirty
                                   Q&A


Confusions



      An activity has one or more windows (e.g. dialogs)
      A window has one or more surfaces (e.g. surface views)
      However, in window manager, a window is called a session
      A surface is called a window
      And an activity becomes roughly a token




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Overview
                         Under the Hood
                                            Interested Components
                                Get Dirty
                                   Q&A


Special Keys




      HOME key
      BACK key




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                         Under the Hood     Random Topics
                                Get Dirty
                                   Q&A


Outline

   Building Blocks
      Overview
      Interested Components

   Under the Hood
      Random Topics

   Get Dirty
      Development
      Code

   Q&A


                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                         Under the Hood     Random Topics
                                Get Dirty
                                   Q&A


Process View




      SurfaceManager, WindowManager, and SurfaceManager are
      threads of a single process (system server)
      Every application is usually a process of itself




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                             Building Blocks
                            Under the Hood     Random Topics
                                   Get Dirty
                                      Q&A


Zygote




         Is a process started on system initialization
         Preloads java classes and resources
         Forks system server
         Listens silently on /dev/socket/zygote




                    Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                             Building Blocks
                            Under the Hood     Random Topics
                                   Get Dirty
                                      Q&A


Binder




         Early in the lifetime of an application process, thread(s) are
         created and blocked on /dev/binder
         Binder is used mainly for RPC
         Fragile




                    Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Outline

   Building Blocks
      Overview
      Interested Components

   Under the Hood
      Random Topics

   Get Dirty
      Development
      Code

   Q&A


                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                         Building Blocks
                                           Development
                        Under the Hood
                                           Code
                               Get Dirty
                                  Q&A


Build System




      build/core/core/build-system.html
      .   build/envsetup.sh
      showcommands
      export ANDROID JAVA HOME if non-standard




                Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                             Building Blocks
                                               Development
                            Under the Hood
                                               Code
                                   Get Dirty
                                      Q&A


adb



      ADBHOST for transport over TCP/IP
      kill-server
      remount
      pull/push
      logcat
      shell




                    Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                           Building Blocks
                                             Development
                          Under the Hood
                                             Code
                                 Get Dirty
                                    Q&A


hierarchyviewer




       Display view hierarchy
       Display view
       Invalidate/Relayout




                  Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                         Building Blocks
                                           Development
                        Under the Hood
                                           Code
                               Get Dirty
                                  Q&A


Graphics: Memory Management




     SurfaceFlinger has a SurfaceHeapManager
     Every client has a MemoryDealer, as returned by
     SurfaceHeapManager
     Every surface of a client also has dealer(s), from client or GPU




                Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.




      A dealer consists of a heap and an allocator
      A heap represents a sharable big chunk of memory
      An allocator is an algorithm
      Small chunks of memory from the heap are returned




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.


  Real ļ¬‚ow
      A client asks for a new surface, createSurface




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.


  Real ļ¬‚ow
      A client asks for a new surface, createSurface
      createSurface calls createNormalSurfaceLocked




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.


  Real ļ¬‚ow
      A client asks for a new surface, createSurface
      createSurface calls createNormalSurfaceLocked
      A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.


  Real ļ¬‚ow
      A client asks for a new surface, createSurface
      createSurface calls createNormalSurfaceLocked
      A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers
      Two dealers are created from client, one for front buļ¬€er and
      one for back buļ¬€er




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.


  Real ļ¬‚ow
      A client asks for a new surface, createSurface
      createSurface calls createNormalSurfaceLocked
      A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers
      Two dealers are created from client, one for front buļ¬€er and
      one for back buļ¬€er
      Two LayerBitmaps are created, initialized with the two dealers




                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                                            Development
                         Under the Hood
                                            Code
                                Get Dirty
                                   Q&A


Graphics: Memory Management cont.


  Real ļ¬‚ow
      A client asks for a new surface, createSurface
      createSurface calls createNormalSurfaceLocked
      A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers
      Two dealers are created from client, one for front buļ¬€er and
      one for back buļ¬€er
      Two LayerBitmaps are created, initialized with the two dealers
      Heaps of dealers along with info about the layer are returned



                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                         Building Blocks
                                           Development
                        Under the Hood
                                           Code
                               Get Dirty
                                  Q&A


Hello World




      http://people.debian.org.tw/Ėœolv/surfaceļ¬‚inger/demo.tar.gz




                Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                        Building Blocks
                                          Development
                       Under the Hood
                                          Code
                              Get Dirty
                                 Q&A


Many Buļ¬€ers




     Surface is double buļ¬€ered
     EGLDisplaySurface is double buļ¬€ered
     Same technique; Diļ¬€erent code pathes, diļ¬€erent purposes




               Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                         Building Blocks
                                           Development
                        Under the Hood
                                           Code
                               Get Dirty
                                  Q&A


Double Buļ¬€ering




      Sofware v.s. Hardware
      Memory copy
      Page ļ¬‚ipping




                Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                           Building Blocks
                                             Development
                          Under the Hood
                                             Code
                                 Get Dirty
                                    Q&A


Dirty Region




      Associate buļ¬€ers with dirty regions
      Copy back




                  Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                   Building Blocks
                                     Development
                  Under the Hood
                                     Code
                         Get Dirty
                            Q&A


Frame 0




          Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                   Building Blocks
                                     Development
                  Under the Hood
                                     Code
                         Get Dirty
                            Q&A


Frame 1




          Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                   Building Blocks
                                     Development
                  Under the Hood
                                     Code
                         Get Dirty
                            Q&A


Frame 2




          Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                          Building Blocks
                         Under the Hood
                                Get Dirty
                                   Q&A


Outline

   Building Blocks
      Overview
      Interested Components

   Under the Hood
      Random Topics

   Get Dirty
      Development
      Code

   Q&A


                 Chia-I Wu olv@0xlab.org    Introduction to Android Window System
Outline
                            Building Blocks
                           Under the Hood
                                  Get Dirty
                                     Q&A


Q&A




      Questions?




                   Chia-I Wu olv@0xlab.org    Introduction to Android Window System

More Related Content

What's hot

Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverNanik Tolaram
Ā 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Opersys inc.
Ā 
Android Internals
Android InternalsAndroid Internals
Android InternalsOpersys inc.
Ā 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALOpersys inc.
Ā 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux DevelopersOpersys inc.
Ā 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
Ā 
Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)Egor Elizarov
Ā 
Understanding the Android System Server
Understanding the Android System ServerUnderstanding the Android System Server
Understanding the Android System ServerOpersys inc.
Ā 
BKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack UpdateBKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack UpdateLinaro
Ā 
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)Emertxe Information Technologies Pvt Ltd
Ā 
Android internals By Rajesh Khetan
Android internals By Rajesh KhetanAndroid internals By Rajesh Khetan
Android internals By Rajesh KhetanRajesh Khetan
Ā 
Android booting sequece and setup and debugging
Android booting sequece and setup and debuggingAndroid booting sequece and setup and debugging
Android booting sequece and setup and debuggingUtkarsh Mankad
Ā 
Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008Ryan Chou
Ā 

What's hot (20)

Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
Ā 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
Ā 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Ā 
Android Internals
Android InternalsAndroid Internals
Android Internals
Ā 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
Ā 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
Ā 
Binder: Android IPC
Binder: Android IPCBinder: Android IPC
Binder: Android IPC
Ā 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
Ā 
Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)Android internals 07 - Android graphics (rev_1.1)
Android internals 07 - Android graphics (rev_1.1)
Ā 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
Ā 
Init of Android
Init of AndroidInit of Android
Init of Android
Ā 
Understanding the Android System Server
Understanding the Android System ServerUnderstanding the Android System Server
Understanding the Android System Server
Ā 
BKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack UpdateBKK16-315 Graphics Stack Update
BKK16-315 Graphics Stack Update
Ā 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
Ā 
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Ā 
Android internals By Rajesh Khetan
Android internals By Rajesh KhetanAndroid internals By Rajesh Khetan
Android internals By Rajesh Khetan
Ā 
Android ipm 20110409
Android ipm 20110409Android ipm 20110409
Android ipm 20110409
Ā 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
Ā 
Android booting sequece and setup and debugging
Android booting sequece and setup and debuggingAndroid booting sequece and setup and debugging
Android booting sequece and setup and debugging
Ā 
Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008
Ā 

Similar to Introduction to Android Window System

Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience National Cheng Kung University
Ā 
Build to Hack, Hack to Build
Build to Hack, Hack to BuildBuild to Hack, Hack to Build
Build to Hack, Hack to BuildCloudVillage
Ā 
Architecting modern Android apps
Architecting modern Android appsArchitecting modern Android apps
Architecting modern Android appsGrigori Hlopkov
Ā 
What is web2.0
What is web2.0What is web2.0
What is web2.0flyingsheep
Ā 
[Wroclaw #7] Why So Serial?
[Wroclaw #7] Why So Serial?[Wroclaw #7] Why So Serial?
[Wroclaw #7] Why So Serial?OWASP
Ā 
Java course-in-mumbai
Java course-in-mumbaiJava course-in-mumbai
Java course-in-mumbaivibrantuser
Ā 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtWorks Studios
Ā 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtworks
Ā 
DefCon 2012 - Finding Firmware Vulnerabilities
DefCon 2012 - Finding Firmware VulnerabilitiesDefCon 2012 - Finding Firmware Vulnerabilities
DefCon 2012 - Finding Firmware VulnerabilitiesMichael Smith
Ā 
DefCon 2012 - Firmware Vulnerability Hunting with FRAK
DefCon 2012 - Firmware Vulnerability Hunting with FRAKDefCon 2012 - Firmware Vulnerability Hunting with FRAK
DefCon 2012 - Firmware Vulnerability Hunting with FRAKMichael Smith
Ā 
Mocking vtcc3 - en
Mocking   vtcc3 - enMocking   vtcc3 - en
Mocking vtcc3 - envgrondin
Ā 
2.1. Dissecting blackberry
2.1. Dissecting blackberry2.1. Dissecting blackberry
2.1. Dissecting blackberrydefconmoscow
Ā 
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...Patrick Thomas
Ā 
Dip(dependency inversion principle) presentation
Dip(dependency inversion principle) presentationDip(dependency inversion principle) presentation
Dip(dependency inversion principle) presentationqamar mustafa
Ā 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
Ā 
Bhavin_Resume
Bhavin_ResumeBhavin_Resume
Bhavin_Resumebhavin patel
Ā 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtworks
Ā 
2015 06-wso2 coneu-closingkeynote-asanka
2015 06-wso2 coneu-closingkeynote-asanka2015 06-wso2 coneu-closingkeynote-asanka
2015 06-wso2 coneu-closingkeynote-asankaAsanka Abeysinghe
Ā 
Cloud Security & Compliance - JPMC Overview
Cloud Security & Compliance - JPMC OverviewCloud Security & Compliance - JPMC Overview
Cloud Security & Compliance - JPMC OverviewCanturk Isci
Ā 

Similar to Introduction to Android Window System (20)

Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
Ā 
Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience
Ā 
Build to Hack, Hack to Build
Build to Hack, Hack to BuildBuild to Hack, Hack to Build
Build to Hack, Hack to Build
Ā 
Architecting modern Android apps
Architecting modern Android appsArchitecting modern Android apps
Architecting modern Android apps
Ā 
What is web2.0
What is web2.0What is web2.0
What is web2.0
Ā 
[Wroclaw #7] Why So Serial?
[Wroclaw #7] Why So Serial?[Wroclaw #7] Why So Serial?
[Wroclaw #7] Why So Serial?
Ā 
Java course-in-mumbai
Java course-in-mumbaiJava course-in-mumbai
Java course-in-mumbai
Ā 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
Ā 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
Ā 
DefCon 2012 - Finding Firmware Vulnerabilities
DefCon 2012 - Finding Firmware VulnerabilitiesDefCon 2012 - Finding Firmware Vulnerabilities
DefCon 2012 - Finding Firmware Vulnerabilities
Ā 
DefCon 2012 - Firmware Vulnerability Hunting with FRAK
DefCon 2012 - Firmware Vulnerability Hunting with FRAKDefCon 2012 - Firmware Vulnerability Hunting with FRAK
DefCon 2012 - Firmware Vulnerability Hunting with FRAK
Ā 
Mocking vtcc3 - en
Mocking   vtcc3 - enMocking   vtcc3 - en
Mocking vtcc3 - en
Ā 
2.1. Dissecting blackberry
2.1. Dissecting blackberry2.1. Dissecting blackberry
2.1. Dissecting blackberry
Ā 
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
OWASP AppSec Cali 2018 - Enabling Product Security With Culture and Cloud (As...
Ā 
Dip(dependency inversion principle) presentation
Dip(dependency inversion principle) presentationDip(dependency inversion principle) presentation
Dip(dependency inversion principle) presentation
Ā 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
Ā 
Bhavin_Resume
Bhavin_ResumeBhavin_Resume
Bhavin_Resume
Ā 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
Ā 
2015 06-wso2 coneu-closingkeynote-asanka
2015 06-wso2 coneu-closingkeynote-asanka2015 06-wso2 coneu-closingkeynote-asanka
2015 06-wso2 coneu-closingkeynote-asanka
Ā 
Cloud Security & Compliance - JPMC Overview
Cloud Security & Compliance - JPMC OverviewCloud Security & Compliance - JPMC Overview
Cloud Security & Compliance - JPMC Overview
Ā 

More from National Cheng Kung University

PyPy's approach to construct domain-specific language runtime
PyPy's approach to construct domain-specific language runtimePyPy's approach to construct domain-specific language runtime
PyPy's approach to construct domain-specific language runtimeNational Cheng Kung University
Ā 
2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎
2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎
2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎National Cheng Kung University
Ā 
é€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
é€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖę˜Žé€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
é€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎National Cheng Kung University
Ā 
Construct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTConstruct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTNational Cheng Kung University
Ā 
ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎
ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎
ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎National Cheng Kung University
Ā 
從ē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œ
從ē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œå¾žē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œ
從ē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”ŒNational Cheng Kung University
Ā 
進階嵌兄式ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
進階嵌兄式ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖę˜Žé€²éšŽåµŒå…„å¼ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
進階嵌兄式ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎National Cheng Kung University
Ā 
Implement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVMImplement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVMNational Cheng Kung University
Ā 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsNational Cheng Kung University
Ā 
Lecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and ImplementationLecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and ImplementationNational Cheng Kung University
Ā 
äø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­ø
äø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­øäø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­ø
äø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­øNational Cheng Kung University
Ā 
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsNational Cheng Kung University
Ā 

More from National Cheng Kung University (20)

PyPy's approach to construct domain-specific language runtime
PyPy's approach to construct domain-specific language runtimePyPy's approach to construct domain-specific language runtime
PyPy's approach to construct domain-specific language runtime
Ā 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
Ā 
2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎
2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎
2016 å¹“ę˜„å­£åµŒå…„å¼ä½œę„­ē³»ēµ±čŖ²ē؋čŖŖ꘎
Ā 
Interpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratchInterpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratch
Ā 
é€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
é€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖę˜Žé€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
é€²éšŽåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆčˆ‡åƦ做 (2015 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
Ā 
Construct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTConstruct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoT
Ā 
The Internals of "Hello World" Program
The Internals of "Hello World" ProgramThe Internals of "Hello World" Program
The Internals of "Hello World" Program
Ā 
How A Compiler Works: GNU Toolchain
How A Compiler Works: GNU ToolchainHow A Compiler Works: GNU Toolchain
How A Compiler Works: GNU Toolchain
Ā 
Virtual Machine Constructions for Dummies
Virtual Machine Constructions for DummiesVirtual Machine Constructions for Dummies
Virtual Machine Constructions for Dummies
Ā 
ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎
ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎
ēµ¦č‡Ŗå·±ę›“å„½ęœŖ來ēš„ 3 個ē·“ēæ’ļ¼šåµŒå…„å¼ä½œę„­ē³»ēµ±čØ­čØˆć€åƦ做ļ¼Œčˆ‡ē§»ę¤ (2015 å¹“ę˜„å­£ ) čŖ²ē؋čŖŖ꘎
Ā 
從ē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œ
從ē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œå¾žē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œ
從ē·šäøŠå”®ē„Øēœ‹ä½œę„­ē³»ēµ±čØ­čØˆč­°é”Œ
Ā 
進階嵌兄式ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
進階嵌兄式ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖę˜Žé€²éšŽåµŒå…„å¼ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
進階嵌兄式ē³»ēµ±é–‹ē™¼čˆ‡åƦ做 (2014 幓ē§‹å­£ ) čŖ²ē؋čŖŖ꘎
Ā 
Xvisor: embedded and lightweight hypervisor
Xvisor: embedded and lightweight hypervisorXvisor: embedded and lightweight hypervisor
Xvisor: embedded and lightweight hypervisor
Ā 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
Ā 
Implement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVMImplement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVM
Ā 
Priority Inversion on Mars
Priority Inversion on MarsPriority Inversion on Mars
Priority Inversion on Mars
Ā 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM Boards
Ā 
Lecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and ImplementationLecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and Implementation
Ā 
äø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­ø
äø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­øäø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­ø
äø­č¼Ÿē”Ÿč«‡ę•™č‚²: 完å…Øē”Øé–‹ę”¾åŽŸå§‹ē¢¼č»Ÿé«”é€²č”Œ 嵌兄式ē³»ēµ±ę•™å­ø
Ā 
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
Ā 

Recently uploaded

Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot ModelDeepika Singh
Ā 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
Ā 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
Ā 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
Ā 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
Ā 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
Ā 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
Ā 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
Ā 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
Ā 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
Ā 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
Ā 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
Ā 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
Ā 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
Ā 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
Ā 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
Ā 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
Ā 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Christopher Logan Kennedy
Ā 

Recently uploaded (20)

Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Ā 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Ā 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Ā 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Ā 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Ā 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
Ā 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Ā 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Ā 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Ā 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Ā 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Ā 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Ā 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Ā 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Ā 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Ā 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Ā 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Ā 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Ā 

Introduction to Android Window System

  • 1. Outline Building Blocks Under the Hood Get Dirty Q&A Introduction to Android Window System Chia-I Wu olv@0xlab.org May 15, 2009 Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 2. Outline Building Blocks Under the Hood Get Dirty Q&A Building Blocks Overview Interested Components Under the Hood Random Topics Get Dirty Development Code Q&A Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 3. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A Outline Building Blocks Overview Interested Components Under the Hood Random Topics Get Dirty Development Code Q&A Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 4. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A System Architecture Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 5. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A System Architecture Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 6. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A System Architecture Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 7. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A Building Blocks There are more, but we focus on SurfaceManager WindowManager ActivityManager Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 8. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A SurfaceManager frameworks/base/libs/surfaceflinger/ a.k.a SurfaceFlinger Allocate surfaces. Backed by ashmem/pmem/? Composite surfaces Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 9. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A WindowManager frameworks/base/services/java/ com/android/server/WindowManagerService.java About 9000 SLOC in one ļ¬le. Poorly documented, bad namings, ... (Ask SurfaceManager to) create/layout surfaces on behalf of the clients Dispatch input events to clients Transition animation WindowManagerPolicy Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 10. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A ActivityManager frameworks/base/services/java/ com/android/server/am/ Manage lifecycles of activities Manage stacking of activities Dispatch intents Spawn processes Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 11. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A Confusions An activity has one or more windows (e.g. dialogs) A window has one or more surfaces (e.g. surface views) However, in window manager, a window is called a session A surface is called a window And an activity becomes roughly a token Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 12. Outline Building Blocks Overview Under the Hood Interested Components Get Dirty Q&A Special Keys HOME key BACK key Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 13. Outline Building Blocks Under the Hood Random Topics Get Dirty Q&A Outline Building Blocks Overview Interested Components Under the Hood Random Topics Get Dirty Development Code Q&A Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 14. Outline Building Blocks Under the Hood Random Topics Get Dirty Q&A Process View SurfaceManager, WindowManager, and SurfaceManager are threads of a single process (system server) Every application is usually a process of itself Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 15. Outline Building Blocks Under the Hood Random Topics Get Dirty Q&A Zygote Is a process started on system initialization Preloads java classes and resources Forks system server Listens silently on /dev/socket/zygote Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 16. Outline Building Blocks Under the Hood Random Topics Get Dirty Q&A Binder Early in the lifetime of an application process, thread(s) are created and blocked on /dev/binder Binder is used mainly for RPC Fragile Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 17. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Outline Building Blocks Overview Interested Components Under the Hood Random Topics Get Dirty Development Code Q&A Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 18. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Build System build/core/core/build-system.html . build/envsetup.sh showcommands export ANDROID JAVA HOME if non-standard Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 19. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A adb ADBHOST for transport over TCP/IP kill-server remount pull/push logcat shell Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 20. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A hierarchyviewer Display view hierarchy Display view Invalidate/Relayout Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 21. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management SurfaceFlinger has a SurfaceHeapManager Every client has a MemoryDealer, as returned by SurfaceHeapManager Every surface of a client also has dealer(s), from client or GPU Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 22. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. A dealer consists of a heap and an allocator A heap represents a sharable big chunk of memory An allocator is an algorithm Small chunks of memory from the heap are returned Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 23. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. Real ļ¬‚ow A client asks for a new surface, createSurface Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 24. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. Real ļ¬‚ow A client asks for a new surface, createSurface createSurface calls createNormalSurfaceLocked Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 25. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. Real ļ¬‚ow A client asks for a new surface, createSurface createSurface calls createNormalSurfaceLocked A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 26. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. Real ļ¬‚ow A client asks for a new surface, createSurface createSurface calls createNormalSurfaceLocked A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers Two dealers are created from client, one for front buļ¬€er and one for back buļ¬€er Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 27. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. Real ļ¬‚ow A client asks for a new surface, createSurface createSurface calls createNormalSurfaceLocked A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers Two dealers are created from client, one for front buļ¬€er and one for back buļ¬€er Two LayerBitmaps are created, initialized with the two dealers Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 28. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Graphics: Memory Management cont. Real ļ¬‚ow A client asks for a new surface, createSurface createSurface calls createNormalSurfaceLocked A layer is created and setBuļ¬€ers is called to allocate buļ¬€ers Two dealers are created from client, one for front buļ¬€er and one for back buļ¬€er Two LayerBitmaps are created, initialized with the two dealers Heaps of dealers along with info about the layer are returned Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 29. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Hello World http://people.debian.org.tw/Ėœolv/surfaceļ¬‚inger/demo.tar.gz Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 30. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Many Buļ¬€ers Surface is double buļ¬€ered EGLDisplaySurface is double buļ¬€ered Same technique; Diļ¬€erent code pathes, diļ¬€erent purposes Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 31. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Double Buļ¬€ering Sofware v.s. Hardware Memory copy Page ļ¬‚ipping Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 32. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Dirty Region Associate buļ¬€ers with dirty regions Copy back Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 33. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Frame 0 Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 34. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Frame 1 Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 35. Outline Building Blocks Development Under the Hood Code Get Dirty Q&A Frame 2 Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 36. Outline Building Blocks Under the Hood Get Dirty Q&A Outline Building Blocks Overview Interested Components Under the Hood Random Topics Get Dirty Development Code Q&A Chia-I Wu olv@0xlab.org Introduction to Android Window System
  • 37. Outline Building Blocks Under the Hood Get Dirty Q&A Q&A Questions? Chia-I Wu olv@0xlab.org Introduction to Android Window System