High-Performance Coding, Building and Testing for Multiple Platforms and Devices

Preview:

DESCRIPTION

The Adobe Flash Player and AIR products are built from a single unified code base. The same code produces hundreds of different binaries on dozens of software and hardware platforms, from low-power phones to high-end 64-bit workstations. This session is about the Flash team's code, build and test infrastructure, and how it's used to produce these products. Perforce plays a critical role in the team's systems and daily workflows.

Citation preview

High-Performance Coding, Building & Testing for Multiple Platforms and Devices Jethro Villegas Sr. Engineering Manager Adobe Flash Player

A Very Brief History

•  FutureSplash started out as a Drawing application for a pen-based computer

•  Today, the Flash Runtime runs on hundreds of millions of desktops and devices

Scaling up to Millions of Devices

•  All features are supported on the main desktop platforms, at parity.

•  All features are supported in software.

•  All code compiles as straight C++

•  The SDK and mobile player supports full web browsing.

Abstracting out the Device Internals

platformfonts.h 1  #if defined( FLASH_STAGECRAFT )!2  !#include "./stagecraft/aefonts.h"!3  #elif defined( WIN32 )!4  ! #include "./win/win32fonts.h"!5  #elif defined(ANDROID)!6  ! #include "android/AndroidFonts.h"!7  #elif defined( UNIX )!8  ! #include "unixfonts.h"!9  #elif defined( _MAC )!10  ! #if defined( FP_SDK_COCOA_TOUCH )!11  ! #include "./osx/cocoatouch/CTEDevice.h"!12  ! #else!13  ! #include "MacFonts.h"!14  ! #endif!15  #else!16  ! Error. Not defined.!17  #endif!

Scaling up to Millions of Devices

•  All features are supported on the main desktop platforms, at parity.

•  All features are supported in software.

•  All code compiles as straight C++

•  The SDK and mobile player supports full web browsing.

Specifying the Code to Build/Test

Specifying the Code to Build/Test

Specifying the Code to Build/Test

Specifying the Code to Build/Test

Specifying the Code to Build/Test

The Target Platforms to Build/Test

The Target Platforms to Build/Test

The Target Platforms to Build/Test

The Target Platforms to Build/Test

Branch Status

Branch Status

Branch Status

Branch Status

Branch Status

Branch Status

Branch Details

Branch Details

Automated Testing

Automated Testing

Automated Testing

Challenges

•  Scalability

•  Code Throughput

•  Systems Engineering

•  Platform Proliferation •  Can you help? Contact me: jet@adobe.com

Recommended