C / C ++ printfs – Wo wird es in einem Android nativen Code angezeigt?

Da es ziemlich schwer ist, nativen Android-Code zu debuggen, gehe ich zum "printf trace" -Ansatz.

Also, meine Frage ist, in einem nativen Code, wheres die Standards "printf (" etwas ")" erscheint beim Ausführen einer Android-Anwendung?

  • Integrieren von AndroidAnnotation mit Intellij IDEA 12
  • Android - Speichern Sie Bilder in einem bestimmten Ordner
  • Wie verbinde ich ein Lenovo IdeaPad S6000 mit Windows 7 (64-Bit)
  • Android - mit runOnUiThread, um UI-Änderungen von einem Thread zu tun
  • Starten eines Songs aus Spotify Intent
  • Warten Sie Unitl ListView's smoothScrollToPosition () beendet
  • Mit Mail und Passwort zur Authentifizierung über die REST API
  • Wo kann man BroadcastReceiver in Android MVP setzen?
  • So implementieren Sie Material Design Choreographie von Oberflächenanimationen
  • Richtig onDestroy () / So vermeiden Sie Speicherverluste
  • Wie lade ich ein ImageView per URL in Android?
  • In Android, wie man den Datenverkehr pro Schnittstelle pro Anwendung messen kann
  • 2 Solutions collect form web for “C / C ++ printfs – Wo wird es in einem Android nativen Code angezeigt?”

    Melden Sie sich bei logcat an.

    1) Um den Logger in nativem Code aufzurufen, gehören die Header und rufen _android_log_write (..) auf.

    #include <android/log.h> __android_log_write(ANDROID_LOG_INFO, "tag here", "message here"); 

    2) In deiner Android.mk-Datei enthalten die Log-lib wie diese.

     LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 

    Es sind kürzere Makros verfügbar, um sich bei logcat anzumelden.

     #define LOG_TAG "my_log_tag" #include <cutils/log.h> ALOGD("Format this %d, some_int); 

    In Android.mk füge die liblog Bibliothek zu LOCAL_SHARED_LIBRARIES wenn LOCAL_SHARED_LIBRARIES in 'mydroid' (voller Android-System-Build) baut. Im Falle von ndk build LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog kann verwendet werden.

     include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_SRC_FILES := foo.c # if mydroid LOCAL_SHARED_LIBRARIES := liblog # in ndk, use LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog instead include $(BUILD_EXECUTABLE) 

    Es gibt verschiedene andere Makros für alle Ebenen der Protokollierung definiert. Von cutils/log.h :

     #define ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__)) #define ALOGD(...) ((void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__)) ... #define ALOGE(...) ((void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__)) 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.