If I write an application using the Android SDK or NDK, can I simply copy the APK produced onto any Android phone (with the right version of the OS running) and run it? Or do I need to root the phone before apps not bought through a marketplace can run?
The context is that I have the choice of a Galaxy S2 as an upgrade to my iPhone4 and I’d like to start writing my own stuff. I can find plenty of instructions and examples of compiling and running apps in the emulator, but nowhere explicitly states I can run the apps I compile on the S2. I’m worried that apps may need to be signed or authenticated before they can run on it (and other phones) and I’d rather not mess about with the phone too much.
You can download it and run it without root.
You can debug directly on a device even from your development environment.
Android development tools environment (ADT) in eclipse (as well as others) and the correct ADB USB drivers for your phone gives you that nice option. Much faster than using the android emulator too.
In settings you have to allow debug (a simple checkbox), that is all.