Wie kann eine App Android OS einfrieren?

9

Ich entwickle eine Android-App, die das Betriebssystem zum Einfrieren bringt.

Meine Frage ist ziemlich einfach, aber nach langen Suchen bin ich einer Antwort nicht näher gekommen.

Die Frage ist, wie kann eine App, die Sandboxed ist, dazu führen, dass das gesamte Android-Betriebssystem (4.0.4, 4.1.1, 4.1.2) einfriert?

Insbesondere friert das gesamte Betriebssystem ein. Kein Logcat, kein AdB, nichts! Es ist so eingefroren, wie es ein Betriebssystem kann. Das Gerät ist ein Samsung Galaxy Tab 2. Die App verwendet das UsbManager und die Bibliothek aus dem usb- Serial-für-Android-Projekt . Während die Bibliothek das NDK verwenden kann, tut dies meine App nicht. Im Wesentlichen kommuniziert die App seriell mit einem Proprietary Board, empfängt Daten und sendet serielle Befehle. Dies geschieht in einem Worker-Thread, der auf diese Weise entsorgt wird:

%Vor%

Alles funktioniert gut, das heißt bis zum Einfrieren - wenn ich das USB-Kabel abziehe oder das Bibliotheksobjekt anweist, die Verbindung zu trennen. In jedem Fall wird das gesamte Betriebssystem instabil und wird sofort oder beim erneuten Verbinden des USB (Board oder Computer) einfrieren. Ich habe dieses Freeze-Problem auf dem USB-Serial-für-Android-Projekt veröffentlicht, aber noch keine Kommentare erhalten. Ich glaube, dass ich den richtigen Protokollen folge, wenn ich den usb lösche.

Ich verstehe, dass viele Dinge schief gehen können - meine App kann abstürzen et. al. Aber noch einmal, wie eine Sandbox-App das Betriebssystem zum Absturz bringt - es scheint nicht sehr sandboxed zu sein, wenn es das kann.

AKTUALISIEREN

Ich habe nach vielen Experimenten festgestellt, dass durch das Entfernen der thread.interrupt(); -Zeile, funktioniert es ohne Absturz der App oder das Einfrieren des Betriebssystems. Es friert das Betriebssystem immer noch ein, wenn der USB-Stecker herausgezogen wird, ohne dass er zuvor demontiert wurde.

Ich möchte immer noch verstehen, wie eine Sandbox-App das gesamte Betriebssystem einfrieren kann. Es gibt Kommentare, die sich einer Antwort entziehen, aber keine Antwort allein sind.

    
Android Addict 06.09.2013, 17:16
quelle

1 Antwort

0

Wo befindet sich Ihr Codebeispiel oben?

Es sollte sich auf einem Benutzeroberflächen-Thread befinden, der möglicherweise die Benutzerinteraktion blockiert.

Erhalten Sie auch ANR Nachrichten vor dem Einfrieren?

%Vor%

wird unbegrenzt blockiert. Weitere Informationen finden Sie in der Thread.join () Dokumentation .

Auch das folgende sieht für mich wie eine geschäftige Schleife aus.

Was machst du bei dem Kommentar? Wenn nichts, dann wird die Schleife wie verrückt drehen (think while (true) { } ).

%Vor%     
stackunderflow 03.09.2013 10:15
quelle

Tags und Links