Java Reference
In-Depth Information
APPENDIX
Finding Java APIs
T hroughout this topic, I've focused on specific required and optional Java ME APIs and
how to use them. In some cases, I've pointed you to specific JSRs that document those
APIs, while in other cases I haven't. Moreover, I've only discussed a subset of the optional
Java ME APIs; many other optional APIs are available on some Java ME-enabled devices.
The plethora of JSRs about Java ME APIs is truly overwhelming, especially as you
start out. Inevitably, someone will ask you, “Can a Java ME device do X ?” Frequently,
it's somebody important, such as the product manager designing your company's next
product, which you'll spend the next six months of your life developing. Answering this
question accurately isn't as easy as it sounds, especially if you're not familiar with X right
away. You need to consult the JSRs relevant to Java ME, find the APIs that pertain to X ,
and see if they can do what you need. That's what this Appendix is for: it contains Table A-1,
which maps important mobile technologies to the relevant JSRs that describe APIs for
that technology. Armed with this information, you can go to http://www.jcp.org , look up
the relevant JSR, and form the answer to the question you've been asked.
A final word: JSRs tell you how to do something with a Java ME device. They don't tell
you if any Java ME devices actually do it that way. Mind you, I'm not knocking the JCP; it's
a great process. I'm pointing out a reality of the free market around Java ME. The APIs that
some JSRs describe are only implemented by a few device manufacturers, often because
customers of those device manufacturers (either network operators or end consumers)
don't understand the importance of the API set in the JSR. Other JSRs contain excellent
ideas, but are simply too expensive to implement. And a few are quickly superseded or
extended, so the JSR is only a fossil showing a snapshot of what happened at one moment
in the evolution of an API. For these reasons, you should look at JSRs as only the first step
in answering the question, “Can a Java ME device do X ?” The information in a JSR lets you
answer this question with the response, “Theoretically, yes,” or “Not in a standard way”
(because there may be proprietary ways to do X on some devices anyway). To provide a
complete answer to the question—which probably really means, “How many Java ME
devices can do X ?” and “Do we have a viable business case to build our application that
needs X ?”—you also need to look at devices on the market in the time frame your product
encompasses. That's more difficult in many cases; you need to take into account how your
product will be distributed, whether or not it only pertains to customers of a single net-
work operator, and so forth. Getting those answers takes legwork. Expect to spend time
539
 
Search WWH ::




Custom Search