2013-08-27 11 views
14

Der aktuelle Name Google GCM documentation erfordert, dass Sie Google Play-Dienste installieren und diese für GCM (Google Cloud Messaging) verwenden. Die Bibliothek ist 1.1 MB, aber meine aktuelle .apk ist halb so groß. Meine App soll GCM empfangen und einige Daten auf dem Bildschirm anzeigen. Daher benötige ich weder die Google Maps API noch die G + Anmeldung von Google Play Services. Außerdem muss ich nach dem Erhalt von GCM nicht mehr auf den Server antworten können.Google Cloud Messaging für Android-Bibliothek und Google Play-Dienste

SDK Manager ermöglicht den Download und die Installation von eigenständigen Google Cloud Messaging für Android-Paket. Es wurde vor Google I/O 2013 verwendet, als die Play Services angekündigt wurden.

Meine Frage ist: Was ist der Unterschied in der Leistung zwischen GPS GCM und Standalone GCM für Android? Muss ich wirklich zu GPS wechseln? Ist Standalone GCM entzogen? Kann ich mit eigenständigem GCM noch Daten (bis zu 4K) empfangen?

Antwort

9

Soweit ich weiß, ja, das alte ist veraltet (es sagt hier http://developer.android.com/reference/gcm-packages.html), aber immer noch funktioniert.

Ich würde jedoch empfehlen, die Play Services-Version zu verwenden, da es viel einfacher zu konfigurieren und zu verwenden ist, und wenn Sie keine G + Anmeldung oder etwas anderes benötigen, müssen Sie es nicht verwenden. Ja, deine APK wird ein bisschen größer sein, aber ich denke es ist es wert.

Außerdem werden alle neuen Funktionen oder Verbesserungen am Protokoll höchstwahrscheinlich nur für die Play Services-Bibliothek und nicht für die alte sein.

+0

Meine Frage klingt vielleicht dumm, aber bitte sagen Sie mir, wie Sie Benachrichtigungen senden? Ich habe einige Tutorials http: // techlovejump gelesen.in/2013/11/android-push-benachrichtigung-using-google-cloud-messaging-gcm-php-google-play-service-library/in dem php-dateien erstellt werden, aber wo sie zu halten? Wie wird Android App mit diesen Dateien kommunizieren? –

+0

http://rmarcejaeger.com/2015/09/18/tutorial-how-to-implement-push-notifications-using-google-cloud-messaging-for-android-part-1-client-app –

3

Die alte GCM obwohl veraltet, funktioniert immer noch. Und es gibt eine Wahrscheinlichkeit, dass es noch etwas länger funktioniert. Persönlich habe ich das neue GCM mit den Play-Diensten implementiert und es scheint fehlerhaft zu sein, da es Geräte gab, die die Registrierungs-ID nicht erhalten konnten und den SERVICE_NOT_AVAILABLE-Fehler erhalten haben. Nach einigen Recherchen war ich nicht in der Lage, eine Lösung dafür zu finden, und kehrte zu der alten GCM-Methode zurück, die GCMIntentService verwendet, und konnte die Registrierungs-IDs zurückbekommen. Bottom Line: Scheint, dass Sie die alte GCM-Methode vorläufig verwenden können.

0

die neue GCM Verfahren verwendet auch die GcmIntentService wo der Griff-Konfiguration für empfangene Nachricht bleibt und wo ich meine sendNotification konfiguriert (msg) Methode

+0

"Wenn a Der GCM-Verbindungsserver übermittelt die Nachricht an Ihre Clientanwendung, der BroadcastReceiver empfängt die Nachricht als eine Absicht Sie können die Absicht entweder im BroadcastReceiver verarbeiten oder die Verarbeitung der Absicht an einen Dienst (normalerweise IntentService) übergeben Wenn Sie einen Dienst verwenden, sollte Ihr Broadcast-Empfänger eine Instanz von WakefulBroadcastReceiver sein, um eine Wake-Sperre zu halten, während der Dienst seine Arbeit ausführt. " http://developer.android.com/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html –

+1

[Neue Google-Empfehlung] (https://developers.google.com/cloud-messaging/android/client) ist, 'WakefulBroadcastReceiver' durch 'GCMReceiver' und' GcmListenerService' zu ​​ersetzen. –

1

Sie brauchen nicht viel über Erhöhung der App Größe zu kümmern, während GCM mit Verwenden von Play Services, solange Sie Proguard verwenden.

Beschreibung von The Google Play services client library erwähnt

Die Client-Bibliothek hat einen leichten Fußabdruck, wenn Sie ProGuard als Teil Ihrer Build-Prozess verwenden, so dass es keine negativen Auswirkungen auf Ihre App Dateigröße haben.

Ich habe nicht selbst den Unterschied in apk mit den zwei verschiedenen Ansätzen gemessen. Wird aktualisiert, wenn ich es tue.

+1

Es ist nicht nur die APK-Größe. Es ist die schiere Anzahl der Methodenreferenzen in GPS (fast 11000). Wenn Sie eine große App haben (wie wir), kann dies dazu führen, dass Ihre App nicht länger in eine einzige DEX-Datei integriert wird. – dkneller

+1

Play services 6.5 löst dieses Problem. Werfen Sie einen Blick hier: http://android-developers.blogspot.in/2014/11/google-play-services-65.html –

+0

Ich bin mir nicht sicher, dass es das Problem löst. Da wir einen ANT-Build noch verwenden und es keine Updates gab, mit denen die Bibliothek in Teilbibliotheken (im SDK) aufgeteilt werden kann, treten möglicherweise weiterhin Probleme auf. Es sieht so aus, als ob die Teilbibliotheken Maven-Artefakte sind, also werde ich sehen, ob wir sie mit Maven verwalten können. In diesem Fall kann es eine Lösung sein, je nachdem, wie klein die grundlegende GCM-Implementierung ist – dkneller

-1

Überprüfen Sie das Gerät, um sicherzustellen, dass es über die Google Play Services APK verfügt. Ist dies nicht der Fall, zeigen Sie ein Dialogfeld an, über das Benutzer das APK aus dem Google Play Store herunterladen oder in den Systemeinstellungen des Geräts aktivieren können.

Es wird Sie von Projektspeichergröße speichern.

+0

Das ist für dein APK egal Größe. Wie immer wird das APK gegen eine Stub-Implementierung kompiliert, die mit der eigentlichen Bibliothek auf dem Gerät verknüpft ist (entweder bereits vorhanden oder herunterladbar). – dkneller

Verwandte Themen