Remote Android Rendering

Embed Size (px)

DESCRIPTION

For many years it has been possible to access graphical application via remote desktop software. In recent years Cloud computing has become more prominent and is a crucial computing paradigm. Android has captured a large market share. The challenge addressed in this talk is to efficiently export Android graphics so as to support standard Android apps remotely. More information can be found at: http://www.ascender.com/remote-graphics

Citation preview

  • 1. Remote Android RenderingJoel Isaacson Ascender Technologies Ltd. Copyright 2013 Joel Isaacson

2. The Problem There are just too many pixels to simply transmit over a long-haul network. There are a number of techniques that have been attempted. They all entail some compromises: ResolutionAccuracyFrame RateLatencyAscender Technologies LtdRemote Rendering 3. The Problem: Pixel Count 2008-2011Copyright Romain Guy, Chet Haas, Google I/O 2011 Ascender Technologies LtdRemote Rendering 4. The Problem: Pixel Count 2008-2012Ascender Technologies LtdRemote Rendering 5. Android Graphics StackAscender Technologies LtdRemote Rendering 6. Choosing How To Export Graphics Graphics can be exported from any of the four levels of the graphics stack Toolkit levelRendering level Application levelPixel levelWe choose to export the rendering level.Ascender Technologies LtdRemote Rendering 7. Exporting The Toolkit and App It is technically very complex. Android, to date, has 17 different toolkit API variants. Every application can extend the toolkit with custom widgets (subclasses of android.view.View). Clearly impossible.Ascender Technologies LtdRemote Rendering 8. Exporting The Toolkit and App It is technically very complex. Android, to date, has 17 different toolkit API variants. Every application can extend the toolkit with custom widgets (subclasses of android.view.View). Clearly impossible. This talk will show that effectively exporting graphics at the toolkit level and even the application level is in fact possible via the rendering API.Ascender Technologies LtdRemote Rendering 9. The GUI Rendering Layer ExpandedAscender Technologies LtdRemote Rendering 10. NDK App With OpenGLAscender Technologies LtdRemote Rendering 11. NDK App With Skia RenderingAscender Technologies LtdRemote Rendering 12. Android Remote RenderingAscender Technologies LtdRemote Rendering 13. Android Remote Rendering No GPU on Server NeededAscender Technologies LtdRemote Rendering 14. ICS Rendering Results Even with simple techniques the compression ratio is over four orders of magnitude (x10,000 reduction). The number of bytes per frame, for the GUI rendering, is typically 300 bytes, as opposed to 416 Mbytes for uncompressed frames. The compression encodes 2-4 rendering operations per byte (2-4 bits per rendering operation).Ascender Technologies LtdRemote Rendering 15. The Google Play Universe API CoverageAscender Technologies LtdRemote Rendering 16. Cloud Gaming Currently cloud gaming is done with pixel rendering performed on the remote server. The frames are H264 encoded and sent over the network to the remote client. Our remote rendering technology does not need special hardware on the server side. The computational load on the server and network are minimized. Playing latency (lag) is minimal.Ascender Technologies LtdRemote Rendering 17. A Perfect Storm It seems that a technological cosmic alignment has happened: Fast, low-power 64 bit ARM multi-processors (Cortex A50) with virtualization extensions.Adoption of Android apps in a broad gamut of use cases, including the enterprise.Ever increasing adoption of cloud based solutions.Possibility of efficiently transporting Android graphics via a long haul network.Ascender Technologies LtdRemote Rendering