Believe it or not, not all geeks do Java Programming. When it comes to language, many are happy enough to speak some Klingon already.
But this doesn't help much to create your own application for Android...
Google understood this by launching the beta program of its AppInventor: A very simple set of applications to allow people with ideas but not Java programming skills to bring their contribution to the Android software base.
Once done, some time later, you will receive an email explaining how to start. Going to http://appinventor.googlelabs.com will then also open the App Inventor application in your browser.
I just received the email today and gave the tool a quick look.
Once the screen contains some object to interact with, you need to launch the Block Editor, which is done by clicking a button on the top of the Designer interface. This will download a file called AppInventorForAndroidCodeblocks.jnlp that you should be able to execute if your have the pre-required Java Runtime Engine installed.
There you will see "your blocks" made from the objects selected earlier in the Designer. There are block for each action possible on the object. For instance, if you wan to make something happening when the Button1 is clicked, bring the block "when Button1.Click do" onto the screen. You hen can pick other blocks to define what will actually happen like set the text of the TextBox1 (set TextBox1.Text to) to text "Thanks for clicking!" and change the Background Color of the Screen (set Screen1.BackgroundColor to) to Green.
From there, you just need to press the Connection icon to send and run the application to your phone.
Here is how it appears on my Samsung Spica GT-I5700:
It's just as simple as that. So unless you were planning a high end 3D racing game, this should give you a great way to make your débuts as an "embedded system developer".
Update: this concept has evolved and made its way outside the Google Lab
Update: see Blockly