On Oct 21, 11:10 am, tauntz <[EMAIL PROTECTED]> wrote:
> Ok, understood, these methods are non-public and reserved for Google
> applications only ;)

NO.  They are private to the SYSTEM.  They are not for application
use.  This is because they are not stable and change across releases.
There may be some applications in the source tree using them, but
these applications are only shipped as part of the system image, so
that is okay.  In other words, if you use private APIs, you can -only-
distribute the resulting app by having a carrier bundle it with a
phone.

> Would it be imaginable that (some time in the future) all non-public
> APIs are in the com.google* domain and not in the same domain as all
> the public classes (android.*)?

We have been migrating private APIs to the com.android.internal
packages, but it will NEVER be the case that everything under
android.* is public.  Never, ever.  Just link to the SDK, which is
guaranteed to only contain the supported public APIs, and you are
good.

> Currently it's a little confusing if I look at the source of some
> Google app and see that it uses (for example) the method
> lookupProviderCategoryFromId(..) from the class
> android.provider.Contacts.ContactMethods. Now the public API has a
> class with the exact same name and package but without the method that
> Google uses so I always have to manually check if a method or constant
> exists in the public API documentation when looking through the source
> code (and after that I have to check if it also exists in the real SDK
> since the SDK and the API documentation are also not the same). It
> would be much easier if public and non-public stuff is in separate
> packages (like com.sun.* in instead of java.* (J2SE)).

Yes, a lot of the bundle apps shipped with the system are using
private APIs, and this needs to be cleaned up.  This is mostly an
artifact of the apps being developed in parallel with the platform for
the last 2-3 years, and not having time to do a final cleanup of them
to switch to the public APIs.  This is something that needs to be
done.

Again, if you are doing third party app development, you really need
to be developing against the SDK.  That is what it is there for.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" 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-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to