Developing AIR for Android using Flash CS5	Chris Griffith
DisclaimerThese opinions and thoughts are my own, and may or may not reflect the opinions of the company that I work for.
Developing AIR for Android with Flash Professional
My Mobile App Portfolio
Mobile is Everywhere
Designing for Mobile
Context
mobile vs. desktop
Orientation
Touch44px10
TouchThe average fingertip is 3x larger than the hand cursorMake your buttons 3x largerThen make them even larger 11
With fingers, come hands…
ErgonomicsHow will they touch it?One Thumb?Two Thumbs?Pointer Finger?
Developing AIR for Android with Flash Professional
Data based on respective products published technical specificationsPixels Per Inch (PPI)
AIR for Android OverviewGeoLocationAccelerometerCameraMultitouch / Gesture SupportScreen OrientationMicrophoneGPU AccelerationSQLiteDBStageWebViewNo Native WidgetsNo Multiple Camera SupportNo Access to ContactsLimited SMS Support
Creating an Android App: SetupGet the Android SDK: http://developer.android.com/sdk  Allows you to create and install apps on your device Android - SDK Manager to install packages etc.
 ADB – Android Device Debugger installs apps on your device
 DDMS - Dalvik Debug Monitor for desktop simulation.
Download AIR 2.5 http://www.adobe.com/products/air/
 Get AIR for Android runtime .apk installed
 Get the AIR for Android Extension for Flash CS5http://labs.adobe.com/technologies/flashpro_extensionforair/
Development EnvironmentsEmulatorDevice
Accelerometervaraccel:Accelerometer = new Accelerometer();accel.addEventListener(AccelerometerEvent.UPDATE, update);function update(e:AccelerometerEvent):void{e.accelerationX;e.accelerationY;e.accelerationZ;}
Gesturescell.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom);function onZoom(e:TransformGestureEvent):void{cell.scaleX *=  e.scaleX;cell.scaleY = cell.scaleX;}cell.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate);function onRotate(e:TransformGestureEvent):void{cell.rotation +=  e.rotation;}
Geolocationvar geo: Geolocation;if (Geolocation.isSupported) {            geo = new Geolocation();            geo.addEventListener(GeolocationEvent.UPDATE, updateHandler);            geo.setRequestedUpdateInterval(10000);} else {            log.text = "Geolocation feature not supported"; }
Hardware Keysstage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true);function onKeyDown(event:KeyboardEvent):void {  //Back Key  if (event.keyCode == 94) {      event.preventDefault(); // to kill event from running default behavior       //do your own back stuff  }  //Menu Key  if (event.keyCode == 95) {      event.preventDefault(); // to kill event from running default behavior       //do your own back stuff  }}
Orientation stage.scaleMode = StageScaleMode.NO_SCALE;stage.align = StageAlign.TOP_LEFT;function setPosition():void{vidHolder.x = stageWidth/2 - vidHolder.width/2;vidHolder.y = stageHeight/2 - vidHolder.height/2;	//If the layout is vertical	if (stage.stageWidth < stage.stageHeight)	{	//Adjust graphics	}}setPosition();stage.addEventListener(Event.RESIZE, resizeLayout);function resizeLayout(e:Event):void{setPosition();}
SQLite Supporthttp://www.dehats.com/drupal/?q=node/58
StageWebViewYou get a browser in your Flash app!Good solution forMapsFacebook ConnectRemote Content
Limitations
No Native Controlshttp://blog.kevinhoyt.com/2010/05/some-flash-android-components/
No Access to Contacts
Building Applicationshttp://labs.adobe.com/technologies/flashpro_extensionforair/
Don’t Fear the Timeline
Publishing
Publishing
To the Market…
.air.exe.air.dmg.ipa.apkAIR Packaging & Distribution Workflow
Development Guidelines
GraphicsConsider bitmaps over vectorsKeep bitmaps as small as possibleMinimize number of vectorsTest your animations with different qualities of StageAvoid, if possible: Filters Blend modes Transparency Perspective distortion
GPU AcclerationSet rendering mode to GPUMake sure cacheAsBitmap is set to true on your DisplayObject like this:square.cacheAsBitmap = true;
GPU AcclerationMake sure to assign a Matrix to the cacheAsBitmapMatrix property on your DisplayObject like this:square.cacheAsBitmapMatrix = new Matrix();http://blogs.adobe.com/cantrell/archives/2010/10/gpu-rendering-in-adobe-air-for-android.html
GPU Acclerationblog.theflashblog.com/?p=2386
TextUse opaque background over transparency
Avoid TLF
Test different anti-aliasing techniques (animation, bitmap text...)
 Avoid frequently-updated textHorizontal?  Vertical?  Both? Content should dictate orientation, but don’t forget about the keyboard.Consider adjusting content based on layout:

More Related Content

KEY
Google maps and GPS, camera, SD card, tips &amp; tricks
PPTX
Developing AIR for Android with Flash Professional CS5
PDF
Android ui tips & tricks
PDF
ReactiveCocoa - TDC 2016
PDF
Android design and Custom views
PDF
Andriod dev toolbox part 2
PPTX
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
PDF
Leaving Interface Builder Behind
Google maps and GPS, camera, SD card, tips &amp; tricks
Developing AIR for Android with Flash Professional CS5
Android ui tips & tricks
ReactiveCocoa - TDC 2016
Android design and Custom views
Andriod dev toolbox part 2
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
Leaving Interface Builder Behind

Viewers also liked (9)

PPTX
Developing AIR for Mobile with Flash Professional CS5.5
PPTX
Choosing the Right Mobile Development Platform (Part 4)
PPTX
Choosing the Right Mobile Development Platform (Part 6)
PPTX
Choosing the Right Mobile Development Platform (Part 3)
PPTX
Designing Great Mobile Apps
PPTX
Intro to PhoneGap
PPTX
Your First Adobe Flash Application for Android
PPTX
Developing AIR for Android with Flash Professional CS5
PPTX
Choosing the Right Mobile Development Platform (Part 1)
Developing AIR for Mobile with Flash Professional CS5.5
Choosing the Right Mobile Development Platform (Part 4)
Choosing the Right Mobile Development Platform (Part 6)
Choosing the Right Mobile Development Platform (Part 3)
Designing Great Mobile Apps
Intro to PhoneGap
Your First Adobe Flash Application for Android
Developing AIR for Android with Flash Professional CS5
Choosing the Right Mobile Development Platform (Part 1)
Ad

Similar to Developing AIR for Android with Flash Professional (20)

PDF
Using AIR for Mobile Development
KEY
Leaving Flatland: getting started with WebGL
PPTX
Windows Store app using XAML and C#: Enterprise Product Development
ODP
Non Conventional Android Programming En
ODP
Non Conventional Android Programming (English)
PPTX
Academy PRO: HTML5 API multimedia
PDF
io 19 extended android flutter&mlkit
PDF
MOPCON 2014 - Best software architecture in app development
PDF
Developer Student Clubs NUK - Flutter for Beginners
PDF
Android Best Practices
KEY
Mobile HTML, CSS, and JavaScript
PDF
mobl
PDF
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
PDF
WebAPIs & WebRTC - Spotify/sthlm.js
PPT
Google Web Toolkit
PPTX
Android 3
PDF
Webgl para JavaScripters
PDF
Slightly Advanced Android Wear ;)
PPT
Android Froyo
PDF
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Using AIR for Mobile Development
Leaving Flatland: getting started with WebGL
Windows Store app using XAML and C#: Enterprise Product Development
Non Conventional Android Programming En
Non Conventional Android Programming (English)
Academy PRO: HTML5 API multimedia
io 19 extended android flutter&mlkit
MOPCON 2014 - Best software architecture in app development
Developer Student Clubs NUK - Flutter for Beginners
Android Best Practices
Mobile HTML, CSS, and JavaScript
mobl
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
WebAPIs & WebRTC - Spotify/sthlm.js
Google Web Toolkit
Android 3
Webgl para JavaScripters
Slightly Advanced Android Wear ;)
Android Froyo
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Ad

More from Chris Griffith (16)

PPTX
Intro to Ionic Framework
PDF
Electron: From Beginner to Pro
PPTX
Real World ionic Development
PPTX
Announcing StencilJS
PPTX
Beyond Ionic
PPTX
Essentials of Adobe Experience Design
PPTX
What is the Ionic Framework?
PPTX
Intro to PhoneGap and PhoneGap Build
PPTX
Choosing the Right Mobile Development Platform (Part 5)
PPTX
Choosing the Right Mobile Development Platform (Part 2)
PPTX
Prototyping Mobile Applications with Flash for Designers
PPTX
Designing Great Mobile Apps
PPTX
Developing AIR for Android using Flash CS5
PPTX
Creating Compelling Mobile User Experiences
PPTX
Practical Design and Development with Flash on Mobile and Devices
PPTX
Prototyping: A Component for Successful Projects
Intro to Ionic Framework
Electron: From Beginner to Pro
Real World ionic Development
Announcing StencilJS
Beyond Ionic
Essentials of Adobe Experience Design
What is the Ionic Framework?
Intro to PhoneGap and PhoneGap Build
Choosing the Right Mobile Development Platform (Part 5)
Choosing the Right Mobile Development Platform (Part 2)
Prototyping Mobile Applications with Flash for Designers
Designing Great Mobile Apps
Developing AIR for Android using Flash CS5
Creating Compelling Mobile User Experiences
Practical Design and Development with Flash on Mobile and Devices
Prototyping: A Component for Successful Projects

Recently uploaded (20)

PPTX
TEXTILE technology diploma scope and career opportunities
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PPTX
Build Your First AI Agent with UiPath.pptx
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
UiPath Agentic Automation session 1: RPA to Agents
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
Five Habits of High-Impact Board Members
PDF
Flame analysis and combustion estimation using large language and vision assi...
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PPTX
Internet of Everything -Basic concepts details
TEXTILE technology diploma scope and career opportunities
NewMind AI Weekly Chronicles – August ’25 Week IV
Build Your First AI Agent with UiPath.pptx
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
A review of recent deep learning applications in wood surface defect identifi...
Convolutional neural network based encoder-decoder for efficient real-time ob...
The influence of sentiment analysis in enhancing early warning system model f...
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
UiPath Agentic Automation session 1: RPA to Agents
Basics of Cloud Computing - Cloud Ecosystem
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
NewMind AI Weekly Chronicles – August ’25 Week III
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
sbt 2.0: go big (Scala Days 2025 edition)
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Early detection and classification of bone marrow changes in lumbar vertebrae...
Five Habits of High-Impact Board Members
Flame analysis and combustion estimation using large language and vision assi...
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
Internet of Everything -Basic concepts details

Developing AIR for Android with Flash Professional