This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Actually I use eclipse as my IDE and have the Andoid plugin. However, when I run the simple 'Hello Android' program, it takes a lot of time to compile.
Is it normal? or maybe my comuter is too slow?
Any recommendations for other good IDEs to run Android on?
You should always keep the emulator running. The first time you run your app, it will take a while, because of starting up the emulator, which is IDE independent. No matter what IDE you use you take this hit. That is why you want to keep it running, so when you redploy your app, it redeploys a lot faster.
I personally use both Eclipse and IntelliJ for Android development. The toughest part was testing, you have to have two separate projects, one for your app the other for the tests and I have only been able to get Eclipse to run my tests, which don't have any UI.
Compiles in Eclipse should be really fast, especially for the Hello, World sample application. If you're talking about the time it takes to launch the Android emulator, yes that can take a long time. The higher the OS version and the larger the screen size of the device you're emulating, the longer it will take to start up. Mark's advice is excellent; you definitely want to fire up an emulator and leave it running while you work on your app. You can deploy over and over again to the same emulator as it runs, and you won't have to wait for the emulator to start up every time.
As an aside, the Android emulator is at the hardware level of the ARM processor. Which means it's doing a ton of work to run your apps. It also does not support any graphics hardware acceleration, so you can forget about emulating anything that involves video.
Here are some extra tips regarding emulator management. When you create your Android Virtual Devices (AVDs), make sure you check the Enabled option for Snapshot. You can also edit an existing AVD to enable a snapshot. This is like hibernating a laptop. When you shutdown your emulated AVD, the emulator can save out a snapshot of the running AVD to a file (a big file!) When you startup, you can start from a saved snapshot and it goes much quicker. Of course the first time you startup a new AVD, you cannot start from a snapshot because there won't be one yet. And the first time you save to a snapshot it can take a lot longer than if you don't. But now you have some interesting options. You could start up a brand new AVD, and when it's all up and running, immediately quit it which will save it to a snapshot (you choose this option when you start it up). Now you have a clean snapshot. Next time, check the box for starting from a snapshot but don't check to save to a snapshot at the end. This keeps your snapshot file nice and clean for fast starts, and it will shut down quickly too. We cover this in chapter 2. Of course you can always play with these checkboxes to get what you want into the snapshot file. You can also move and copy snapshot files around if you like. But keep in mind they can be very big.