summaryrefslogtreecommitdiffstats
path: root/location/lib/README.txt
diff options
context:
space:
mode:
authorLaurent Tu <laurentt@google.com>2012-12-11 15:45:09 -0800
committerLaurent Tu <laurentt@google.com>2012-12-11 15:45:09 -0800
commitccb4c318aa5150ba49b7e7878d20b4787d6bf723 (patch)
treeccbdee2e4cbd12352ede3277da99c6b57cb87c43 /location/lib/README.txt
parentbbb970386026ec16b3cff1be280d0b9160cacad4 (diff)
downloadframeworks_base-ccb4c318aa5150ba49b7e7878d20b4787d6bf723.zip
frameworks_base-ccb4c318aa5150ba49b7e7878d20b4787d6bf723.tar.gz
frameworks_base-ccb4c318aa5150ba49b7e7878d20b4787d6bf723.tar.bz2
Revert "Move location provider lib to frameworks/ex - 1"
This reverts commit 578081f9da7ddb056b9b98524c639acd9194ecb6.
Diffstat (limited to 'location/lib/README.txt')
-rw-r--r--location/lib/README.txt30
1 files changed, 30 insertions, 0 deletions
diff --git a/location/lib/README.txt b/location/lib/README.txt
new file mode 100644
index 0000000..400a7dd
--- /dev/null
+++ b/location/lib/README.txt
@@ -0,0 +1,30 @@
+This library (com.android.location.provider.jar) is a shared java library
+containing classes required by unbundled location providers.
+
+--- Rules of this library ---
+o This library is effectively a PUBLIC API for unbundled location providers
+ that may be distributed outside the system image. So it MUST BE API STABLE.
+ You can add but not remove. The rules are the same as for the
+ public platform SDK API.
+o This library can see and instantiate internal platform classes (such as
+ ProviderRequest.java), but it must not expose them in any public method
+ (or by extending them via inheritance). This would break clients of the
+ library because they cannot see the internal platform classes.
+
+This library is distributed in the system image, and loaded as
+a shared library. So you can change the implementation, but not
+the interface. In this way it is like framework.jar.
+
+--- Why does this library exists? ---
+
+Unbundled location providers (such as the NetworkLocationProvider)
+can not use internal platform classes.
+
+So ideally all of these classes would be part of the public platform SDK API,
+but that doesn't seem like a great idea when only applications with a special
+signature can implement this API.
+
+The compromise is this library.
+
+It wraps internal platform classes (like ProviderRequest) with a stable
+API that does not leak the internal classes.