2014-04-22 34 views
6

Wir schreiben eine Chat-App und haben den Pubnub-Dienst im Hintergrund ausgeführt, auf Nachrichten wartend und eine Benachrichtigungsabsicht beim Empfang auslöst. Das Problem ist, dass wir eine partielle Wecksperre verwenden, wenn das Telefon schläft und das den Akku einfach abtötet (App nimmt> 20% der Batterie auf).Pubnub Push-Benachrichtigungen und Akkulaufzeit unter Android

Gibt es eine weniger CPU-intensive Art, Nachrichten zu empfangen? Ich habe auch versucht, nach Codebeispielen für Pubnub-Push-Benachrichtigungen auf Android zu suchen, habe aber keine gefunden.

Danke, Saswat

Antwort

1

According to this website:

DEMNÄCHST: GCM Push-Benachrichtigungen in der Betaphase und wird um Anfang Juni veröffentlichen werden.

Aber das Datum der Website heißt es:

PubNub Unterstützen Sie diese am 19. Juli veröffentlicht 2012 19.59

So Ihre Frage zu beantworten: Im Moment gibt es keine weniger CPU-intensive Art, auf Nachrichten zu warten, als mit einer Wake-Sperre. Tatsächlich gibt PubNub ausdrücklich an, dass Sie eine teilweise Wecksperre auf der oben verlinkten Website verwenden sollten.

Es gibt auch keine Dokumentation über die Android PubNub github. Sie sagen dort, dass PubNub besser ist als Google C2DM. Google C2DM wurde vor Jahren veraltet.

+0

Der ursprüngliche Beitrag war am 19. Juli, nicht das Update. Sie haben erst letzte Woche mit der Beta begonnen. –

5

PubNub’s Android SDK Hintergrundprozess ist durch viele Iterationen optimiert. Unsere Benchmarks zeigen so gut wie keinen Unterschied in Batterie-Drain zwischen einer partiellen Wecksperre nichts tun, und eine PWL + PubNub-Buchse.

Selbst bei der Messung des energieintensivsten Anwendungsfalles, bei dem es sich um eine 4G-Verbindung handelt, haben wir über einen Zeitraum von 4 Stunden auf einem Nexus 4 einen Benchmark ermittelt. Der Unterschied zwischen "Keine Wartezeit" und "PWL + PubNub" betrug 4% über 4 Stunden, wobei das Gerät alle 5 Minuten eine 1K-Nachricht erhält. Bei Wi-Fi ist der Unterschied viel geringer.

Während GCM hat viele Minuten Socket Timeouts (per this thread,) PubNub ist immer zuverlässig. Sie können jedoch PubNub disable PWL für Anwendungen konfigurieren, bei denen nicht immer Echtzeit erforderlich ist, sondern Zuverlässigkeit. Unserer Meinung nach macht diese Anpassbarkeit PubNub zur entwicklungsfreundlichsten Option für energieeffiziente Socket-Kommunikation.

Wenn Sie immer noch bemerkenswerten Batterieverbrauch feststellen, wenden Sie sich bitte mit einer Kopie des entsprechenden Codes an [email protected], damit wir Ihnen beim Debugging und bei der Best Practices-Beratung helfen können.

Prost!

+1

Die Frage fragt nach einer weniger CPU-intensiven Art, auf Nachrichten zu warten. Sie führen einen Vergleich zwischen PWL und PWL + PubNub durch. Der> 20% ige Batterieverbrauch kommt vom PWl. Du hast die Frage überhaupt nicht beantwortet. – navkast