Es ist ein Problem aufgetreten, bei dem die GooglePlayServices-App meinen Bewerbungsprozess für ihren Service verwendet und die Prozesse als 2. .__ angezeigt werden.
Ich habe den Screenshot für das gleiche beigefügt. Ich habe keine Ahnung, warum es passiert.
Der App-Prozess erfordert mehr Speicherplatz.
Jemand bitte kann mir dabei weiterhelfen .
Leute, die immer noch in diesem Thread nach einer Antwort suchen, habe eine Lösung gefunden und eine Antwort gepostet unter:
Was ist der Google Play-Service MeasurementBrokerService und wie kann er gestoppt werden?
Ich habe überprüft, dass auf meinem Gerät immer noch Google AppMeasurement-Dienst ausgeführt wurde.
Ich habe auf folgenden Ansatz zurückgegriffen:
Mit den folgenden Anweisungen wird die Datenerfassung nach Firebase gestoppt.
https://firebase.google.com/support/guides/disable-analytics gibt den folgenden Ansatz an
<meta-data Android:name="firebase_analytics_collection_deactivated" Android:value="true" />
Dies allein kann die AppMessung noch nicht von der Initialisierung abhalten.
Im zweiten Schritt wurde der Gradle-Datei auf App-Ebene Folgendes hinzugefügt:
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-core'
}
Dadurch wird im Wesentlichen der gesamte Code entfernt, den die Firebase-Analyse verwendet.
Wenn es immer noch nicht funktioniert, vergewissern Sie sich, dass der Gradle keine umfassende Spieldienstabhängigkeit enthält
zB: kompilieren
'com.google.Android.gms:play-services-location:10.0.1'
anstatt
'com.google.Android.gms:play-services:10.0.1'
Der schlimmste Fall und ich habe dies nicht getestet, da es für mich gelöst wurde:
https://developers.google.com/analytics/devguides/collection/Android/v4/advanced
Google sollte wirklich aufhören, unerwünschte Dinge ohne die Erlaubnis des Entwicklers zu setzen. Hoffe das hilft jemandem
Schließen Sie die Firebase-Core-Bibliotheken in Ihrer Gradle-Datei aus. Ich habe das gleiche Problem gesehen.
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-core'
}
Für weitere Details zu Firebase-Bibliotheken gehen Sie einfach auf den folgenden Link
http://blog.safedk.com/technology/mobile-sdks-firebase-or-play-services/
Wir haben gesehen, dass auch dieser Service auftaucht. Bei dem Problem stellte sich heraus, dass Google Analytics zusammen mit einem NotificationListenerService verwendet wurde.
Aus einigen Gründen funktionierten diese beiden Dinge nicht gut und führten dazu, dass der MeasurementBrokerService immer aktiv war und viel Speicher verbrauchte.
Die Lösung für uns bestand darin, Google Analytics für eine alternative Analyselösung zu entfernen.
Dies ist mir heute begegnet, nachdem ich gcm zu meiner App hinzugefügt habe und nicht herausfinden kann, was genau die Verwendung dieser MeasurementBrokerService
..__ ist.
"Ich hatte es auch und denke, es hängt mit dem Benachrichtigungs-Listener zusammen, da es den Anschein hat, dass der Zugriff durch den Zugriff auf die Makrodrogen verhindert wird.
von hier
Die Lösung, die ich gefunden habe, ist die NotificationListenerService
in ihre eigene process
zu verschieben. Während Google Play Services auf einem anderen.
Hintergrund
Zunächst einmal ist es schon eine gute Entscheidung, die NotificationListenerService
zu trennen, da dieses Ding ständig läuft, nachdem der Benutzer die BIND_NOTIFICATION_LISTENER_SERVICE
-Berechtigung erteilt hat.
Grundsätzlich verwendet Ihre App einen Prozess, sofern nichts anderes angegeben ist. Dies bedeutet, dass auf der Registerkarte "Laufende Dienste" zusätzlich zu allen in NotificationListenerService
gespeicherten Benachrichtigungsdaten der gesamte Müll angezeigt wird, der noch von GC abgerufen werden muss.
Wie man
Um einen Dienst in seinem eigenen Prozess auszuführen, müssen Sie das Android:process
-Attribut in Ihrem Manifest.xml
hinzufügen.
<service Android:name="com.mypackage.services.NotificationService"
Android:label="@string/app_name"
Android:process=":myawesomeprocess"
Android:permission="Android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
Dinge zu beachten
Sie können nicht regelmäßig zwischen Prozessen kommunizieren! Sie können nicht auf eine andere Klasse von einem Dienst zugreifen, der sich in seinem eigenen Prozess befindet .. Die einzige Lösung ist die Verwendung von Broadcasts
//Send
Intent intent = new Intent("com.mypackage.myaction");
context.sendBroadcast(intent);
//Receive
registerReceiver(broadcastReceiver, new IntentFilter("com.mypackage.myaction"));
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action!=null&&action.equals("com.mypackage.myaction")) {
//
}
}
};
//Don't forget to unregister
unregisterReceiver(broadcastReceiver);
Stellen Sie sicher, dass Sie context
und nicht LocalBroadcastManager
verwenden, da dies nicht mit Prozessen funktioniert.
Dies könnte mit Ihrer Google Analytics-Integration in Ihrer App zusammenhängen. Entfernen Sie die Google Analytics-Referenzen aus Ihren Java-Code-, Projekt- und Gradientendateien auf App-Ebene. Dieses Leck tritt nur in den neuesten Google Analytics-Versionen auf. Sie können die alten Google Play Services-Versionen wie 7.3.0 integrieren, bei denen dieses Problem nicht vorliegt, um dieses Leck zu beheben.
Ich könnte das Problem lösen, indem ich die Version 2.3.2 von Gradle auf 2.0.0 zurückstelle. Aus diesem Grund musste ich Gradle Wraper von 3.3 auf 2.14.1 setzen.
Ich habe auch wieder auf buildToolsVersion '23 .0.1 'von buildToolsVersion '25 .0.2' gesetzt.
Durch das Kompilieren des Projekts wie folgt, wurden wahrscheinlich viele Änderungen in der Build-Umgebung vorgenommen, da das Problem mit der ursprünglichen Version nicht mehr behoben wurde und kein MeasurementBrokerService mehr läuft.