Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 463 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
463
Dung lượng
44,99 MB
Nội dung
www.it-ebooks.info
CHAPTER 9: Super Jumper: A 2D OpenGL ES Game
488
For your convenience Apress has placed some of the front
matter material after the index. Please use the Bookmarks
and Contents at a Glance links to access them.
www.it-ebooks.info
iv
Contents at a Glance
Contents v
About the Authors x
About the Technical Reviewer xi
Acknowledgments xii
Foreword xiii
Introduction xiv
■Chapter 1: Introducing Mobile Flash 1
■Chapter 2: Targeting Applications for the Mobile Profile 29
■Chapter 3: Building Flash and Flex Applications for Android 71
■Chapter 4: Graphics and Animation 121
■Chapter 5: Application Deployment and Publication 165
■Chapter 6: Adobe AIR and Native Android Apps 199
■Chapter 7: Taking Advantage of Hardware Inputs 243
■Chapter 8: Rich Media Integration 279
■Chapter 9: The Designer-Developer Workflow 339
■Chapter 10: Performance Tuning 359
■Chapter 11: Beyond Mobile: Tablets and TV 399
Index 427
www.it-ebooks.info
xiv
Introduction
Our goal in writing this book was to open up the amazing world of mobile and device
development to every single developer. You no longer need to learn a custom mobile
programming language or be an expert in mobile application design to write good-looking,
professional business applications. We believe that in the future, handsets and tablets will just be
another deployment target for application developers—and with mobile Flash and Fle×
technology, that future is now.
For Those New to Flash
This book starts out with a gentle introduction to the Flash tool chain and underlying
technologies, and teaches the programming concepts by example. If you have experience in
another C-based language, such as Java, JavaScript, or Objective-C, the pacing of this book will
allow you to learn ActionScript and MXML while you are being introduced to Flash and Fle×
mobile concepts and APIs.
For Those New to Android
The Flash and Fle× platform takes advantage of all the great features of Android, while insulating
the programmer from having to deal with the complexities of the Android APIs and programming
model. This means that with simple end-user knowledge of Android, you can be up and running
as an application developer, publishing your very own Flash-based applications to Android
Market.
For the Rock Star Developers in All of Us
Let’s face it—you didn’t pick up this book to be just another mobile developer. You want to
stretch the limits of the platform, tap into features and capabilities that go beyond the average,
and build apps that are impossibly cool.
We are there with you, which is why we pushed the technology to its limits in developing this
book. In the later chapters of this book, you will learn how to tap into native Android features,
profile and tune your application for optimal performance, and deploy to a variety of different
devices beyond simple handsets.
www.it-ebooks.info
■ INTRODUCTION
xv
Written by Your Team
We are not your average, faceless authors who write books for a living. We are application
developers and technology geeks just like you. We are invested in the technologies we discuss, the
future of mobile development, and, most importantly, your success as a future Flash platform
developer.
All of the authors have a visible online presence with heavy community involvement,
including leading Adobe user groups and technology evangelism. We are excited about the
technology and accessible to questions, inquiries, and conversations. Rather than being just
another author team, we are your own personal Flash development team.
You will learn a lot from reading this book and coding the exercises, but don’t stop there.
Start dialogs with other readers and Flash developers. Join a technology user group that
specializes in Flash and Fle× technology. Reach out to us, the authors, with questions, ideas,
concepts, and conjectures.
Most importantly, make the technology your own.
www.it-ebooks.info
1
Chapter
Introducing Mobile Flash
This book, ProAndroid Flash, is the definitive guide to building rich, pervasive user
experiences on mobile devices using the ubiquitous Flash Platform. We will show you
how to leverage the powerful and mature technologies, frameworks, and tooling that
make up the Flash Platform to build highly customized applications that take full
advantage of all the mobile features that users demand from their devices. In reading
this book, you will gain essential knowledge specific to targeting mobile Android
devices, including device density, hardware inputs, native integration, and performance
optimization.
Why Android?
There are many different mobile platforms to choose from and a plethora of mobile and
tablet devices that are offered as options to consumers. Unlike the desktop, where there
has been a considerable amount of consolidation and entrenchment, the mobile market
is constantly evolving, with continual introduction of new devices and features.
The obvious question is, which platform do you target? Our answer is to start with
Android; then, by leveraging Flash technology, you avoid being locked into any
particular platform.
This book focuses on creating applications on devices running the Android operating
system. The reason for this is that Android is quickly becoming the most popular mobile
operating system in the world, with the best support for different hardware platforms
and multiple form factors.
According to the Nielsen Company, Android was the top choice among people who
bought a smartphone in the second half of 2010. BlackBerry RIM and Apple iOS were in
a statistical dead heat for second place, as shown in Figure 1–1.
1
www.it-ebooks.info
CHAPTER 1: Introducing Mobile Flash
2
Figure 1–1. Mobile OS traffic share in the United States
1
This could be due to many different factors, including the fact that the platform is open
source, which attracts device manufacturers, the relative freedom provided by Android
Market, Google’s in-device application storefront, or the Google experience, which
provides a seamless integration of Gmail, Google Maps, Gtalk, YouTube, and Google
Search for end users. Regardless of the reason for Android’s popularity, chances are
that a large percentage of your customers already have Android devices, or are
considering purchasing one in the near future.
At the same time, you are building on a platform with tremendous horizontal growth
potential. Android is only the beginning for the Flash Platform, which benefits from an
abstract virtual machine and APIs designed to work across multiple different operating
systems and devices. You can take advantage of the same cross-platform transparency
that Flash has brought to the desktop for all your mobile applications.
Flash on Other Platforms
Adobe started the Open Screen Project™,
2
which is an industry-wide initiative to bring
the benefits of Flash-powered applications to all the screens of your life. Adobe has
already announced plans to support iOS, BlackBerry, Windows 7, and webOS, freeing
you from platform lock-in.
BlackBerry support is initially targeted at its Tablet OS, with the first available device
being the BlackBerry PlayBook. Expect this support to be broadened in the future to
include its other mobile devices.
1
Source: The Nielsen Company, http://nielsen.com/, 2010
2
Adobe, “Open Screen Project”, http://www.openscreenproject.org/
Jan ‘10
34%
31%
26%
25%
37%
37%
18%
35%
27%
21%
32%
14%
Feb March April May June July Aug ‘10
Top 3 Operating System - Recent Acquirers
Acquired Smartphone within 6 months, Jan 2010 to Aug 2010, USA
32% Android OS
25% Apple Phone OS
26% RIM Blackerry OS
Source: The Nielsn Company
www.it-ebooks.info
CHAPTER 1: Introducing Mobile Flash
3
Apple still has a restriction on running Flash in the browser, but it has opened up the
App Store to allow third-party frameworks. This means that for iOS devices, you can
deploy Flash as AIR applications on any iOS device, including the iPod touch, iPhone,
and iPad.
You also have the ability to deploy Flash web applications on any devices that support
Flash in the browser. This includes Google TV, webOS, and Windows 7. In the future,
expect to see even more platforms supporting Flash technology.
Exploring Android
Android is a full mobile stack that includes an operating system, services and
infrastructure, and a core set of applications. While you do not need to be an expert in
Android to effectively write and deploy Flash applications to Android devices, it does
help to be familiar with how Android works.
At its core, Android is based on the Linux operating system. It uses a modified version of
the Linux kernel that has additional drivers and support for mobile hardware devices.
On top of this, there is a set of libraries and core services that make up the base Android
functionality. You will rarely interact directly with these libraries, but whenever you play a
media file, browse to a web page, or even draw on the screen, you are going through
one of the core Android libraries.
Native Android applications are written using the Java programming language compiled
down to Dalvik bytecodes. Dalvik is the name of Android’s special virtual machine that
abstracts the hardware and supports advanced features like garbage collection. All the
Android applications that you run (including Adobe AIR applications) execute within the
Dalvik virtual machine.
The full Android system architecture, broken down by the Linux Kernel, Libraries and
Runtime, Application Framework, and Applications, is shown in Figure 1–2.
www.it-ebooks.info
CHAPTER 1: Introducing Mobile Flash
4
Figure 1–2. Android system architecture
3
Besides having a very solid technology foundation, Android is continually evolving to
embrace new hardware advances as they become available. Some of the current
features of the Android platform include the following:
Mobile browser: WebKit, a modern framework that supports all of the
HTML5 proposed extensions and powers Android’s built-in browser
Flash player: Starting with Android 2.2, you can run Flash content from
within a web browser as a standard feature.
Multitouch: All Android phones support touchscreens, and most have
at least two touch points, which you can use for gesture recognition.
Camera: Android phones are required to have a rear-facing camera,
and many now include a front-facing camera as well.
GPS, compass: All Android phones are required to have a three-way
GPS and compass, which can be used for navigation applications.
Multitasking: Android was the first mobile OS to expose application
switching and background operations to installed applications.
GSM telephony: Android devices that operate as phones give you the
full capabilities of GSM telephony.
3
Reproduced from work created and shared by the Android Open Source Project and
used according to terms described in the Creative Commons 2.5 Attribution License:
Google, “What is Android?”, http://developer.android.com/guide/basics/what-is-
android.html, 2011
www.it-ebooks.info
CHAPTER 1: Introducing Mobile Flash
5
Bluetooth, Wi-Fi, and USB: All Android devices come with Bluetooth
and Wi-Fi for connectivity and a standard USB port for data transfer
and debugging.
Audio and video support: Android supports playback of most common
audio and video formats that are in use on the Web, including MP3,
Ogg, and H.264.
These capabilities make the Android platform an exceptionally strong foundation for
building mobile applications. Furthermore, Adobe Flash and AIR build on these base
capabilities, making Flash a great platform to develop Android applications.
The Flash Platform
The Adobe Flash Platform is a complete system of integrated tools, frameworks,
servers, services, and clients that run across operating systems, browsers, and devices.
Companies across many industries use the Flash Platform to eliminate device and
platform fragmentation, and develop consistent and expressive interactive user
experiences regardless of device. Let’s take a look at the Flash Platform runtimes and
tools.
The Flash Runtime
When creating a Flash application, you have the choice of two different deployment
targets. The first is the Adobe Flash Player, which is an embedded browser plug-in, and
the second is Adobe AIR, which is a stand-alone client runtime. Both of these options
are available on desktop and mobile, and give you a lot of flexibility in tailoring your
application deployment to the needs of your end users.
Adobe Flash Player
According to Adobe, Flash Player is installed on 98% of Internet-connected PCs and
more than 450 million devices,
4
offering the widest possible reach for applications that
run on the client. For 2011, Adobe projects that Flash Player will be supported on more
than 132 million smartphones, and it already comes pre-installed on over 20 million
smartphones. An additional 50 new tablet devices are expected to support Flash Player
in 2011 as well.
Adobe Flash Player runs inside the browser in a secure container. This allows you to
intermingle your Flash content with other web content written in HTML and JavaScript.
You also get the benefit of installer-less operation.
4
Source: Adobe, “Benefits of rich internet applications”,
www.adobe.com/resources/business/rich_internet_apps/benefits/#, 2009
www.it-ebooks.info
[...]... Introducing Mobile Flash Running Applications from Flash Professional The easiest way to get started with writing Flash applications is to use Adobe Flash Professional It provides a visual environment for building simple movies and also has good ActionScript editing capabilities for building more complex logic Creating a New Android Project To create a new AIR for Android project, open the new project dialog... capabilities of Flash Builder, including how to create a new Flex mobile project, debugging your application with the Flash Builder debugger, and running on a device via USB deployment Creating a New Flex Mobile Project To create a new Flex mobile project, open the new project dialog from File New Flex Mobile Project You will get a project creation wizard dialog that allows you to enter the project name,... and click the Templates tab Here you can select an AIR for Android project and choose your device template, as shown in Figure 1–4 Figure 1–4 Flash Professional new template dialog This will create a new project with the canvas perfectly sized for a mobile project in portrait mode, and it will allow you to test your application in Flash Professional or on a device via USB For more information about... Flex 4.5 SDK Stand-alone development toolkit Flex, ActionScript Build script Adobe Flash Catalyst CS5.5 Rapid development platform for building Flex user interfaces Flex, ActionScript Via Flash Builder integration www.it-ebooks.info 7 8 CHAPTER 1: Introducing Mobile Flash Adobe Flash Professional Adobe Flash Professional provides designers and developers with a set of drawing tools, a timeline, and the... code completion Adobe Flash Builder Adobe Flash Builder software is designed to help developers rapidly develop crossplatform rich Internet applications and games for the Flash Platform Users can create a game by writing ActionScript code just like you would with Flash Professional With Flash Builder, you can also write applications using the Flex framework, which is a free, highly productive, open source... content for your application that will plug directly into your Flash and Flex applications Table 1–2 Adobe Mobile Development Tools Tool Name Description Supports Android Deployment Adobe Flash Professional CS5.5 Visual design tool for building Flash applications with some ActionScript ActionScript USB deployment Adobe Flash Builder 4.5 Professional Flex and ActionScript development environment Flex,... CHAPTER 1: Introducing Mobile Flash To start with, the Flex template gives you the following project structure (files marked internal you should never modify directly): actionScriptProperties: [internal] Flash Builder settings file containing libraries, platforms, and application settings flexProperties: [internal] Flex server settings project: [internal] Flex Builder project settings settings: [internal]... supported by the Flash Platform, including full specifications and custom emulators NOTE: As of the time of writing, Device Central had not been updated to AIR 2.6 for Android device support www.it-ebooks.info CHAPTER 1: Introducing Mobile Flash Adobe Flash Catalyst Flash Catalyst is Adobe’s rapid application development platform It allows you to take art assets made in Photoshop, Illustrator, or Flash, and... allowing designers to use programs like Adobe InDesign, Adobe Photoshop, Adobe Illustrator, and Adobe Fireworks to move graphics into Flash Professional or Flash Builder for further development, as shown in Figure 1–3 This means there are rarely conversion issues when dealing with graphics, nor is there a lengthy process to move graphics from design to development Figure 1–3 The Flash workflow from design... enter the project name, as shown in Figure 1–6 www.it-ebooks.info 13 14 CHAPTER 1: Introducing Mobile Flash Figure 1–6 Flex mobile project creation wizard Name your project GestureCheck, and choose a folder to store the project in TIP: If you create a project name without spaces in it, Flex will create project files that match your chosen name If your name has spaces, dashes, or other characters that .
www.it-ebooks.info
CHAPTER 1: Introducing Mobile Flash
8
Adobe Flash Professional
Adobe Flash Professional provides designers and developers with a set. Mobile Flash
10
Running Applications from Flash Professional
The easiest way to get started with writing Flash applications is to use Adobe Flash
Professional.