{"action":"created","issue":{"url":"https://api.github.com/repos/microg/android_packages_apps_GmsCore/issues/25","labels_url":"https://api.github.com/repos/microg/android_packages_apps_GmsCore/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/microg/android_packages_apps_GmsCore/issues/25/comments","events_url":"https://api.github.com/repos/microg/android_packages_apps_GmsCore/issues/25/events","html_url":"https://github.com/microg/android_packages_apps_GmsCore/issues/25","id":99417402,"number":25,"title":"Is the Map API implementation in progress？","user":{"login":"byronwind","id":885583,"avatar_url":"https://avatars.githubusercontent.com/u/885583?v=3","gravatar_id":"","url":"https://api.github.com/users/byronwind","html_url":"https://github.com/byronwind","followers_url":"https://api.github.com/users/byronwind/followers","following_url":"https://api.github.com/users/byronwind/following{/other_user}","gists_url":"https://api.github.com/users/byronwind/gists{/gist_id}","starred_url":"https://api.github.com/users/byronwind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/byronwind/subscriptions","organizations_url":"https://api.github.com/users/byronwind/orgs","repos_url":"https://api.github.com/users/byronwind/repos","events_url":"https://api.github.com/users/byronwind/events{/privacy}","received_events_url":"https://api.github.com/users/byronwind/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-08-06T11:43:07Z","updated_at":"2015-08-07T14:28:40Z","closed_at":null,"body":"I have studied a lot for map api in google play service. But, I have not sure how the MapFragment and MapView are transferred across processes. \r\n\r\nSo, cloud you share something about the main idea in this project ? I will look forward contributing to the map api development.\r\n\r\nThanks."},"comment":{"url":"https://api.github.com/repos/microg/android_packages_apps_GmsCore/issues/comments/128714583","html_url":"https://github.com/microg/android_packages_apps_GmsCore/issues/25#issuecomment-128714583","issue_url":"https://api.github.com/repos/microg/android_packages_apps_GmsCore/issues/25","id":128714583,"user":{"login":"mar-v-in","id":994036,"avatar_url":"https://avatars.githubusercontent.com/u/994036?v=3","gravatar_id":"","url":"https://api.github.com/users/mar-v-in","html_url":"https://github.com/mar-v-in","followers_url":"https://api.github.com/users/mar-v-in/followers","following_url":"https://api.github.com/users/mar-v-in/following{/other_user}","gists_url":"https://api.github.com/users/mar-v-in/gists{/gist_id}","starred_url":"https://api.github.com/users/mar-v-in/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mar-v-in/subscriptions","organizations_url":"https://api.github.com/users/mar-v-in/orgs","repos_url":"https://api.github.com/users/mar-v-in/repos","events_url":"https://api.github.com/users/mar-v-in/events{/privacy}","received_events_url":"https://api.github.com/users/mar-v-in/received_events","type":"User","site_admin":false},"created_at":"2015-08-07T14:28:40Z","updated_at":"2015-08-07T14:28:40Z","body":"> I have studied a lot for map api in google play service. But, I have not sure how the MapFragment and MapView are transferred across processes.\r\n\r\n`MapView` and `MapFragment` are not transferred across processes. The Maps API does not require any process from the `com.google.android.gms` package to be started.\r\n\r\nThe classes are loaded into the application using a package context classloader. See [this link](https://developer.android.com/reference/android/content/Context.html#CONTEXT_INCLUDE_CODE )for details on package context classloader. The entry point used to handle any request in the Maps API is an implementation of the [`ICreator`](https://github.com/microg/android_external_GmsApi/blob/master/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/ICreator.aidl) interface that must use the class name `com.google.android.gms.maps.internal.CreatorImpl` - this name is hard-coded into the play-services library and used on [`loadClass()`](https://developer.android.com/reference/java/lang/ClassLoader.html#loadClass(java.lang.String, boolean)).\r\n\r\n[MapView](https://developers.google.com/android/reference/com/google/android/gms/maps/MapView) and [MapFragment](https://developers.google.com/android/reference/com/google/android/gms/maps/MapFragment) provided when embedding the play-services library into an application are wrappers around [IMapViewDelegate](https://github.com/microg/android_external_GmsApi/blob/master/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapViewDelegate.aidl) and [IMapFragmentDelegate](https://github.com/microg/android_external_GmsApi/blob/master/play-services-api/src/main/aidl/com/google/android/gms/maps/internal/IMapFragmentDelegate.aidl). \r\nThe actual View is wrapped in an [`IObjectWrapper`](https://github.com/microg/android_external_GmsApi/blob/master/play-services-api/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl). See [`ObjectWrapper`](https://github.com/microg/android_external_GmsApi/blob/master/play-services-api/src/main/java/com/google/android/gms/dynamic/ObjectWrapper.java) for details how this does work.\r\n\r\n> So, cloud you share something about the main idea in this project ? I will look forward contributing to the map api development.\r\n\r\nThe main idea of the whole µg project is to build a free replacement for all proprietary parts by Google injected into the Android ecosystem. This is mainly two components these days, both called Play Services: the client library play-services, that is injected into applications by their developers and GmsCore, the service component used by this library. Play services includes more or less all newer proprietary Android features.\r\n\r\nCurrently I focus my development on GmsCore and only on those portions of play services used a lot. In my experience, this is GCM/C2DM (push), Google login (OAuth), Geolocation APIs and Maps API v2."}}