You are faced with the usual main problem of mobile development: targeting as many phones as possible using only one programming language means using J2ME, which does not quite give you access to all the phone's functions.
Most open phones will support J2ME, but different phone manufacturers implement it differently, and fragmentation is excessive on board. Unfortunately, most open phones (those where you can install third-party applications) allow you to develop only in J2ME
The only good news is that your intention to write only small applications will greatly ease fragmentation issues.
J2ME also has huge restrictions on access to the file system, the complete lack of a telephony API, and very poor interaction with managing system applications ...
To get the full features, you always need to use your own open platform technology that you are aiming for, be it Android, iPhone, several variants of Symbian OS, Brew, Windows Mobile or Palm OS. Each of them has its own technology.
Writing your application many times in many different languages ββat an expensive price for the fact that you need both a large number of target phones and access to the full functions of each of them.
I myself am a Symbian / J2ME veteran, and given your stated background and goals, I suspect you are trying to learn about mobile technology. Therefore, I will shamelessly connect my book, which is meant as an introduction to the Symbian development ecosystem:
http://www.amazon.com/Quick-Recipes-Symbian-Smartphone-Development/dp/0470997834/
Good luck.
source share