i have asked this question before but the answer received was not applicable in my situation. I searched the net and still unable to find anything. I have a game in flash actionscript 3.0 and i would like to put it on my htc hero - android phone. Are there any tutorials that state on how to do this please?
thanks.
You can do it using Flash CS5. There is an option to start a new "AIR for Android" project. You can use the code from your existing game. You may have to tweak parts of an existing game because mobile devices are less powerfull, and have different inputs like touchscreens, virtual keyboards and menu buttons.
Generally speaking, you want to make a standalone apk using the Adobe Air paradigm (i.e. you do not put a .swf on the device).
http://www.adobe.com/products/air/sdk/
http://www.adobe.com/devnet/devices.html
Adobe will be rolling Android support into Flash (using the Air paradigm) starting with CS5.5 to be released in Q2 2011; the public beta they released in November 2010 (for CS5) is no longer available: http://labs.adobe.com/technologies/flashpro_extensionforair/
No tutorials come to mind. If I were to search Google, my luck would probably be as good as yours.
I have been recently writing a mobile application using Adobe's Preview of Flash Builder Burrito. There is a project creation option in there to create an Action Script Mobile Application which is exactly perfect for what you are asking in your question.
I assume that the Actionscript game is written by you so you will have no problem moving it into the project created by Flash Builder Burrito.
In fact, I think Adobe just released the final version of Flash Builder Burrito, and you can download it as a fully functional free 60 day trial. That should be more than enough time to bundle up your game and deploy it to the Android app store, or just debug it on your own phone for yourself. Adobe also gives out free licenses for students, and unemployed developers.
Hope this helps. Let me know if you have any trouble it should be very straight forward to wrap up your game and get it on your Android phone.
Related
I'm looking to explore the possibilities of publishing apps in Flash cs5 although, I was concerned with a the limitations or hidden pitfalls of using flash for this purpose. I'm designer and illustrator with some coding experience.
What is the ease of deployment for Android and the app store? is there any post flash stages that I would need to know about?
Thanks,
CS5 should work fine, but there are a few caveats: You will need to update your AIR compiler to the latest version, or you will not be able to make iPhone5 compatible apps.
Hopefully you are on Windows, because in this case you can use FlashDevelop to publish your apps, and pair that with Flash CS5 for the art. I'd recommend this build process even if you are on a mac. But since Flash Develop is windows only, you'll need to run parallels or bootcamp or something to let you run the windows app. That will make development harder, but not impossible.
So: CS5 is OK. It does not support publishing apps out of the box (you need at least CS5.5 for that) But there are good (free) solutions avaiable that will pair with Flash CS5.
I'd recommend getting Flash CC. If you are doing simple programming than CC would be fine and the code editor is somewhat better than previously, but more importantly things will mostly just work rather than issues you get when trying to setup and build with old versions of the Flash software and trying to publish to new versions of device software.
I have a fairly large windows mobile app (written in NETCF 3.5). Those in power at my company are wanting to convert this app to run on Android.
What similarities are there between Android development and Windows Mobile (not Windows Phone) development? Specifically:
Window Forms (ie the UI)
P-invokes (my app has a lot of these)
WCF/SOAP web services support
C# and Visual Studio Development tools
Also, if you feel inclined, I would like a general statement on how a conversion would be from someone who has done it. (Keep in mind that I have never made an Android app.)
Background:
Someone (a non-programmer) here did a Google search and found a "tool" that converts Windows Mobile apps to Android for you (push of the button kind of thing). That person now has everyone believing that this conversion will take no time at all.
As a developer that has worked on several platforms, I just find that really hard to believe (though I would be happy to be wrong).
check out Will Google Android ever support .NET? as it might be what you're looking for. Not sure how well it works, but if the non-programmer is willing to front the money, I say give it a try
Update:
Looks like mono switched companies:
http://xamarin.com/monoforandroid
The short answer in NONE. Android is running Linux that is restricted to Java applications. If you want to port an application from .net to Android, you are looking at a total rewrite.
Sam
There is the monodroid project, which takes .NET applications and makes them run on Android's OS, but it's still very experimental and in no way ready for production applications. Otherwise, to mirror "Sam's" comment above, there are no similarities really. I've been building mobile apps for 11 years (delivered over 60 on various Windows flavors) and the Android model is very different than what you might have done in the past on Windows CE 5 or Windows Mobile 6 type systems.
Adobe AIR is pretty heavy. So is it necessary to be installed on my phone? Are there any alternatives to it..something lightweight.
Start out by reading this pdf, it will give you all the information you need. http://help.adobe.com/en_US/flex/mobileapps/developing_mobile_apps_flex.pdf
Short answer:
If a user who doesn't have Adobe AIR
on his or her Android phone tries to
install Adobe AIR application he or
she will be presented a dialog asking
the user to install AIR and would be
taken to Android Market Place from
where the user can install AIR.
Another claim in this matter:
Right now, there is no dependency
model for Android, thus users must
fulfill the dependencies of an
application manually.
Taken from this thread: http://www.quora.com/Do-Android-end-users-need-to-install-Adobe-AIR-manually-to-use-AIR-apps-on-the-platform
Yes, if you want to use Flex or Flash, you need Air.
Alternatives?
Well, you can use another cross-platform tool, like Phonegap.
But if you want small, lean apps, with maximum device compatibility, nothing compares with using Java and the stock Android SDK.
Edit:
P.S. "Heavy" is the word: requires ARMv7-A, FPU, Android 2.2
Many phones still being sold (as of 6/2011), such as LG Optimus V, do not meet these requirements.
http://www.adobe.com/products/air/systemreqs/
You may find these links useful
http://www.adobe.com/devnet/devices/android.html
See also Plastic Sturgeon's comment here: Choosing flash/openGL/other animation for an android app?
Can anyone give a comparative information between developing Android mobile applications using Eclipse SDK and Adobe AIR?
Kindly share your opinion, anyone who has already having any experience on developing Android mobile applications using Adobe AIR.
I have gone through articles on developing Adobe AIR but wanted to know if anyone found it useful. I am aware that Android mobile applications developed using Adobe AIR is supported for Android 2.1 and 2.2.
Thanks in advance.
I will do my best to answer your question, though it's a little broad (if you could provide specifics on the information you need, I'd be happy to add more detail).
Firstly, there's a ton of information both from Adobe and from the Flash/Flex community on developing for AIR for Android. You can develop for AIR for Android using Flash and the Flash IDE or using Flex and the Flash Builder IDE currently in public preview on Adobe Labs (you can do straight ActionScript as well if you like).
One of the benefits of using AIR is that you can leverage your existing skillset in Flash/Flex/ActionScript rather than having to learn a new language. Another benefit is that yu can reuse code for existing Flash/Flex/AIR applications you may have built. Another benefit, and the one Sheikh mentions above is that Adobe is working on making AIR a cross-platform mobile runtime. If you search you will already find articles from Adobe and the community about people running AIR applications on the Playbook (the simulator anyway, since the device isn't released yet) and even using the preview Packager for iPhone to compile their applications to iPhone.
Although I haven't worked with AIR, but what I feel AIR is for, is cross compatibility.
Its like you're not building for Android, you're building for AIR. and since Android supports AIR, your applications will run on Android device.
In future more Mobile OS will start supporting AIR, so if you code an app for AIR, there will be a huge possibility that your same code runs on different platforms like Android, Windows Phone 7, iPhone (perhaps :-P). Thus, it will be saving a lot of coding effort for coders.
I have discovered that the cross-platform compatibility for AIR applications is quite good except for a few caveats:
1) User input boxes. They are generally not handled well in AIR applications. The popup keyboard can hide the input box, which it generally does not do with native JAVA apps for Android.
2) Real-time games. AIR for Mobile is SLOW. You may be disappointed if you try to develop any sort of real-time software.
3) Socket communication. This is my current peeve. I created a simple chat application in Flash and did some speed tests. This is in preparation for creating multi-player games for mobile devices. On the PC, the application can run over 200 messages per second to the server and get responses. On the AIR for Mobile, both on the iPhone and Android, it is about 11 messages per second max - and the app is doing nothing BUT sending and receiving the data strings. Add a layer of game play and the speed limitations could be crippling. This means real-time games may suffer if you need faster communications. It's plenty fast enough for turn-based or games that don't require lots of updates.
Basically, the cross-platform compatibility is nice. Just think about whether your particular project might be harmed by the speed issues as well as potentially poor handling of user input boxes. Do some testing.
Has anybody blogged about this comparison, or does anyone want to give it a shot here? Would be nice to see some reasoned thoughts on Adobe AIR on Android vs. the "native" Android SDK (in Java).
Edit: Despite few views and no answers, I'm leaving this question up here since it's a topic that needs to be covered at some point... but if it gets no attention I'll delete it in a few days.
I think it's ultimately very similar to the question of whether to use AIR or Java for a desktop application. Ultimately it comes down to three points:
Does AIR do everything you need? Obviously the android SDK gives you complete access to device capabilities, but AIR purposely doesn't, in order to stay portable. For example, AIR may not support intents, at least initially (I don't think Adobe has announced yet one way or the other). Also, AIR requires Android 2.2. If those limitations are troublesome, regular android SDK may be best.
Are you looking to make something that would be well-suited to doing in Flash? If you're planning a design-heavy app with animations, video, sound, or the like, then building it in Flash may be significantly easier than using Java. On the other hand, if your app will be pure code using only standard visual components, then it might not make a lick of difference which platform you use. Or on the gripping hand, if you'd have existing Flash animations or the like, then trying to shoehorn them into a Java app will be bothersome.
Are you targeting other platforms besides Android? If so, AIR may be a big win, as the same app content should run on windows, mac, linux, and later on, other devices that plan to support AIR, like Blackberry, some TVs, blu-ray disc players, etc. If you are only targeting Android, AIR may lose some of its appeal.
I hope that helps some. Realistically, unless you're effectively locked out of using AIR because you need something it doesn't give you, or effectively locked into using AIR because you're doing design-heavy work and you need the tooling, then I think the pros and cons of the two SDKs are largely questions of convenience. Either platform will work, so it's merely which will get you to the finish line the fastest and most reliably.
One issue to consider is compatibility with Android devices. Both fancy smart phones and cheap phones run in Android, but they don't have the same capabilities. Even if you application is simple or can be done beautifully in AIR, its relevant to mention that AIR is not compatible to all Android devices.
Some very popular devices currently sold (such as Samsung ACE and other "cheap" devices) use ArmV6 chips, and AIR or Flash are not compatible to this architectures, even when running on Android 2.2 or so.
AIR is interesting because same development works in different technologies, but consider that AIR doesn't run on "old" iPhones either, its only guarantied to work on new technology with big processors.
Check this Adobe link http://www.adobe.com/flashplatform/certified_devices/
AIR should be ruled out in your decision of technology if in your requirements you are targeting as much phones as possible, including those that are not so fancy or new.
I have experience with AIR mostly and little with Android SDK when I was building a native extension to AIR. My biggest hurdle with AIR is it's immaturity, it's bugs, and it's inconsistent behavior. Yes, you can go to the shiny page at adobe.com and see how cool is the AIR... All bright with tons of features which seems to cover all your needs. Yet, once you start building your app you'll find many ugly surprises:
Stage text in not working appropriately. link besides this bug StageText has few other bugs, like behavior in Scroller for instance.
Sound() object doesn't play the stream (it does on emulator only). link
Lack of features like AEC makes AIR useless to whole list of chat applications, as you'll will hear echo and screaming noise. link
Overloaded (and immature for mobile) Flex SDK (I hope folks at Apache will rewrite it from 0 and make it more manageable).
No H264 support on iOS devices: link (yes, I know it's Apple problem, that they want to control HD delivery on their platform, still it's Adobe problem too, as they couldn't fight right to bring their technology to forefront).
Sound object doesn't take variable bidrate (only 44.1KHz is possible). Flash "second generation" Speex codec samples at 16Khz. Now, try playing this back through Sound and you'll enjoy a funny circus. At the end you will need to write your own upsample algorithm.
I'm sure people will add more to this list. So, my answer would be native SDK is more preferable for anything serious. You won't work like a QA person with it - testing countless little examples trying to understand why an AIR feature not working, shuffling internet for answers and looking at AIR bug database... only to find that critical bugs are sitting there from release to release. That is my experience with AIR. Going native SDK makes your application not really "cross-platform", but AIR SDK can't claim this title anyway for anything more serious then couple of "Employee directory" examples. And if you will need to build for the other platform, you will just use native tools for it.
GL.