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

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

Embed Size (px)

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

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

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

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

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

Page 3: High-Performance Coding, Building and Testing for Multiple Platforms 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.

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

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!

Page 5: High-Performance Coding, Building and Testing for Multiple Platforms 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.

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

Specifying the Code to Build/Test

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

Specifying the Code to Build/Test

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

Specifying the Code to Build/Test

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

Specifying the Code to Build/Test

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

Specifying the Code to Build/Test

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

The Target Platforms to Build/Test

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

The Target Platforms to Build/Test

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

The Target Platforms to Build/Test

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

The Target Platforms to Build/Test

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

Branch Status

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

Branch Status

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

Branch Status

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

Branch Status

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

Branch Status

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

Branch Status

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

Branch Details

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

Branch Details

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

Automated Testing

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

Automated Testing

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

Automated Testing

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

Challenges

•  Scalability

•  Code Throughput

•  Systems Engineering

•  Platform Proliferation •  Can you help? Contact me: [email protected]