Ist das Protokollieren von Android-Systemereignissen direkt aus nativem Code möglich, ohne JNI?

Das Android-System zur Systemprotokollierung ist fantastisch, funktioniert aber nur im Java-Teil des Codes überTrace.beginSection() undTrace.endSection(). In einem (nativen) C / C ++ NDK-Teil des Codes kann er nur über JNI verwendet werden, das in Threads ohne Java-Umgebung langsam oder nicht verfügbar is

Gibt es eine Möglichkeit, Ereignisse aus nativem C-Code zum Hauptsystrace-Trace-Puffer hinzuzufügen oder sogar ein separates Protokoll zu erstellen?

Die ältere Frage erwähnt atrace / ftrace als das interne System, das das Android-System verwendet. Kann dies (leicht) angezapft werden?

BONUS TWIST: Da die Rückverfolgung von Anrufen häufig in leistungskritischen Abschnitten erfolgt, sollten die Anrufe im Idealfall ausgeführt werden könnennac die tatsächliche Ereigniszeit. d.h. ich würde es vorziehen, in der Lage zu sein, die zu protokollierenden Zeiten anzugeben, anstatt die Anrufe selbst abzufragen. Aber das wäre nur das i-Tüpfelchen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage