Android - правильно ли отображать вывод ostream в журнал Android? - PullRequest
0 голосов
/ 25 февраля 2012

Я хочу использовать iostreams для входа через __android_log_print и fstream. Мой вопрос, есть ли хороший способ повернуть, например:

cout << "Hello," << " my name is : " << "Kaiser and my ID is: " << 3 << endl;

во что-то, что можно отправить в функцию регистрации Android, __android_log_print? Как правильно отформатировать?

Спасибо

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

Способ записи в произвольный пункт назначения изнутри программы - извлечь класс из std::streambuf и переопределить его overflow() и sync() функции. Затем вы можете создать std::ostream с указателем на объект этого класса. Для одновременной записи в несколько мест назначения вы должны использовать teebuf, который потоковый буфер записывает в два (или более) потоковых буфера. Поиск в Google для «teebuf» должен привести к нескольким примерам.

0 голосов
/ 25 февраля 2012

Я бы попробовал перезапустить ADB с log.redirect-stdio, установленным на true:

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

Но это будет работать только на эмуляторах или устройствах разработки, но не будет работать на рабочем устройстве (по крайней мере, без рута).

...