Another benefit of Open Sourcing the Kernel is that we can now publicise the public APIs! (Try saying that fast three times…)
The Symbian Platform has a compatibility promise which says that applications written using the identified “Public APIs” should work on all future Symbian-based devices. To make use of that promise, you need to know which APIs are included, and that’s the information which we have now made public.
We have put the list of header files for Symbian^2 onto a wiki page, but I thought it would be interesting to try to make the content available in a convenient form, and to try to convey how the list is growing for successive releases of the Symbian platform. My solution is to put the header files into Mercurial as they are laid out in the epoc32 tree, and make that repository searchable using OpenGrok: the “history” and “annotate” options in OpenGrok will then let you find out how a header file has changed across releases and when that header file was introduced.
Here are some of the neat things that you can do with this:
- The history of e32panic.h shows that it has existed since Symbian^1
- Comparing the Symbian^2 and Symbian^3 versions of e32panic.h shows that the file has been converted to the Eclipse Public License, and that several new panic codes have been added.
- Searching for CAknTimeOffsetSettingItem finds it in epoc32/include/mw/aknsettingitemlist.h and the history shows that it was moved to this location by a reorganisation of the epoc32/include tree between Symbian^1 and Symbian^2
- e32atomics.h is new in Symbian^3
- The Symbian^2 public APIs can be downloaded as a single zip file from Mercurial
- Mercurial can show you the full diffs between Symbian^2 and Symbian^3
All of this is new, and I’d welcome your comments and feedback.
William
Publicise the public APIs
Publicise the public APIs
Publicise the public APIs
November 19, 2009 at 5:42 pm |
This is good stuff, but I question the wisdom of indefinite nature of the compatibility promise, particularly considering the proposal to drop Avkon in Symbian^4… perhaps it’s time the promise was updated too?