I'm going to restate what Dave said a little stronger -- We may decide to change an unpublished API with or without good reason, or for no reason at all. Don't use them in apps. Here are some reasons we might change remove them:
- We decide that since they're unpublished, and not used on a particular device, we might remove it for size constraints. - The unpublished API is refactored in order to implement something else better. - We want to pubilsh it, and to make it more supportable, we have to change it. - For binary code, we could change to a different ABI. - I just don't like it. Like Dave said, this goes for all java APIs that aren't explicitly in the docs, and for all native code at this point. This article by Martin Fowler is a good description of what we're trying to accomplish by defining supported public APIs. http://martinfowler.com/ieeeSoftware/published.pdf The corollary here is that we do plan on making sure that the published APIs are around as long as the Android platform is around. We do plan on doing a native development kit, but like it's already been said, there are a lot of gotchas, including instruction set differences between different devices, and before we put something out and tell people to use it, we want to make sure that we can support it. If what you're writing is intended to be shipped installed on one particular phone, then you probably have some flexibility, but even then, you could be broken by system updates, unless make sure that your app is updated too. -joe On Fri, Dec 5, 2008 at 11:43 PM, Dave Sparks <[EMAIL PROTECTED]>wrote: > > We may decide to change an unpublished API in the future if there is a > good reason for doing so. For example, the native audio API's are > going to change in a future release to facilitate some improvements we > want to make in that area. This goes as well for Java API's that > aren't public in the SDK. > > If you write a shared library (.so) that is linked against a native > API that changes, that .so is not going to load which will lead to > exceptions in the Java code for object method references that are > unresolved by the linker. > > On Dec 5, 12:55 am, Amit <[EMAIL PROTECTED]> wrote: > > Thanks for the help. > > > > I want to know what it means by breaking the code in this context. > > And can u please guide me about Android libc, what it is, what are the > > related APIs. > > > > Regards > > Amit > > > > On Dec 2, 9:34 pm, Dave Sparks <[EMAIL PROTECTED]> wrote: > > > > > We do not support using native code in SDK 1.0, and it's very likely > > > that any code you write that depends on native classes other than > > > Android libc is going to break in the future. > > > > > With that caveat in mind, you are more or less on the right track. Any > > > file with the pattern android_xxx_yyy.cpp is a JNI implementation for > > > a Java class that relies on native code (where xxx is the package name > > > and yyy is the class). In the case of android_media_MediaPlayer.cpp, > > > it relies on a native class MediaPlayer whose header file and > > > implementation are here: > > > > > > http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;.... > .. > > > > > However, this one is pretty complicated as a starting point because it > > > uses binder IPC to talk to a server process that does the actual work. > > > You might want to start with something simple like: > > > > >http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;. > .. > > > > > On Dec 2, 2:15 am, Amit <[EMAIL PROTECTED]> wrote: > > > > > > Android supports JNI at application framework level. > > > > For example, in platform/frameworks/base.git, Mediaplayer.java at: > http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;... > > > > file has got some native function calls > > > > And these native function calls must be implemented in either > > > > libmedia_jni.so or media_jni.dll > > > > but i'm unable to located either of the files in the source code. plz > > > > tell me the path if they are present in the source code. > > > > > > i found a c++ file android_media_MediaPlayer.cpp at: > http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;... > > > > that implements the corresponding native functions, > > > > but coudnt find how it calls the actual c/c++ libraries. Also, it > > > > includes files media/mediaplayer.h which i coudnt find. > > > > This must be the file generated by java file using javah. > > > > > > It also included files JNIHelp.h and android_runtime/AndroidRuntime.h > > > > which are also untraceable. > > > > Plz help me in this problem. > > > > > > Thanks > > > > Amit > > > > > > On Dec 1, 9:44 am, Amit <[EMAIL PROTECTED]> wrote: > > > > > > > Thanks for the help > > > > > > > I want to know that if i write some piece of code in any languagge > may > > > > > be C or even Java, > > > > > how can i integrate it in android SDK. How can it be called like > other > > > > > android APIs. > > > > > > > For example, if i write some framework like video playback frame > work > > > > > in any language, > > > > > how can it be integrated with android framework so that > applications > > > > > can make use of it like other APIs. > > > > > Are there any specifications for such code to be written. > > > > > > > If it cant be done this way, can u tell me if there is a way > possible > > > > > for me to integrate it with my local SDK > > > > > so that my applications can make use of it. Does eclipse provide > any > > > > > help in integratiing such source code. > > > > > > > Any Help Appreciated > > > > > > > Thanks & Regards > > > > > Amit > > > > > > > On Nov 30, 9:06 pm, "Josh Roesslein" <[EMAIL PROTECTED]> wrote: > > > > > > > > Keep in mind Android does not support JNI. So right now its not > possible to > > > > > > use C/C++ code > > > > > > in your Android applications. > > > > > > > > On Sun, Nov 30, 2008 at 4:02 AM, GnuHash <[EMAIL PROTECTED]> > wrote: > > > > > > > > > Build a shared lib out of your c code that has a JNI interface. > Load > > > > > > > the lib from your java code and then invoke your functions via > JNI. > > > > > > > > > GnuHash > > > > > > > > > Amit wrote: > > > > > > > > Hello friends, > > > > > > > > > > Can u plz tell that if i want to write some piece of code for > android > > > > > > > > in c or c++, how can i integrate the code with java code. > > > > > > > > > > Any help appreciated > > > > > > > > > > Thanks > > > > > > > > Amit- Hide quoted text - > > > > > > > > - Show quoted text -- Hide quoted text - > > > > > > > - Show quoted text -- Hide quoted text - > > > > > - Show quoted text - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "android-framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-framework?hl=en -~----------~----~----~----~------~----~------~--~---
