Italian [RISOLTO] Come leggere i Log Usb in B4J

Lello1964

Well-Known Member
Licensed User
Longtime User
Vorrei realizzare un applicativo B4J che mi permetta di leggere i Log di una App installata su un tablet, collegato via Usb al PC.

Esiste qualcosa, avete qualche suggerimento ?
 

Star-Dust

Expert
Licensed User
Longtime User
Mi pare che Erel abbia suggerito di creare un metodo Log2 e inviare i log via UDP e li ricevi da un altro dispositivo.

Non so se questo ti può essere utile
 

Lello1964

Well-Known Member
Licensed User
Longtime User
già visto tempo fà ma utilizza la connessione tcpip, a me serve USB per intercettare i Log di una app che gira su un tablet.
 

Star-Dust

Expert
Licensed User
Longtime User
già visto tempo fà ma utilizza la connessione tcpip, a me serve USB per intercettare i Log di una app che gira su un tablet.
Per USB devi usare le librerie che accedono a USB. Mi pare sia complicato.
Mi pare capire non puoi usare la rete. Bluetooth?
 

Lello1964

Well-Known Member
Licensed User
Longtime User
Devo usare i log di sistema di B4A che ho seminato nella App.

In qualche caso mi fa comodo poterli leggere per capire cosa succede, l'unico modo che ho trovato è ovviamente di collegare un pc via Usb, aprire B4A e fare la connessione LOG.

Vorrei fare un programma in B4J per leggere i log senza installare B4A.
 

Star-Dust

Expert
Licensed User
Longtime User
Non ho capito. Non vuoi usare la rete perchè vuoi intercettare i log nativi anziché crearne personalizzati?
 

LucaMs

Expert
Licensed User
Longtime User
Vorrei realizzare un applicativo B4J che mi permetta di leggere i Log di una App installata su un tablet, collegato via Usb al PC.

Esiste qualcosa, avete qualche suggerimento ?
Potresti creare un progettino B4J che utilizzi il server ADB (lanciandolo col comando Shell).

adb.exe logcat -v threadtime [device id] > C:\android-debug.log

Il comando qui sopra invierebbe il log ad un file di testo, che potresti visualizzare nel tuo progetto B4J.

Devi però ottenere il [device id]:

adb.exe devices

per ottenere una lista dei dispositivi connessi.
 

Star-Dust

Expert
Licensed User
Longtime User
Potresti creare un progettino B4J che utilizzi il server ADB (lanciandolo col comando Shell).

adb.exe logcat -v threadtime [device id] > C:\android-debug.log

Il comando qui sopra invierebbe il log ad un file di testo, che potresti visualizzare nel tuo progetto B4J.

Devi però ottenere il [device id]:

adb.exe devices

per ottenere una lista dei dispositivi connessi.
Erel usa adb mi pare per intercettare i log per B4A
 

Lello1964

Well-Known Member
Licensed User
Longtime User
Potresti creare un progettino B4J che utilizzi il server ADB (lanciandolo col comando Shell).

adb.exe logcat -v threadtime [device id] > C:\android-debug.log

Il comando qui sopra invierebbe il log ad un file di testo, che potresti visualizzare nel tuo progetto B4J.

Devi però ottenere il [device id]:

adb.exe devices

per ottenere una lista dei dispositivi connessi.
Funziona, è da gestire, per ADB legge
 

Lello1964

Well-Known Member
Licensed User
Longtime User
05-01 18:46:50.434 471 471 W WindowManager: Attempted to remove non-existing token: android.os.Binder@30fe8d9
05-01 18:46:50.472 221 1894 I NX_FFmpegExtractor: ffmpeg uri:
05-01 18:46:50.472 221 1894 I NX_FFmpegExtractor: android source: 0xa49ff6f8
05-01 18:46:50.472 221 1894 D FFMPEG : android source begin open
05-01 18:46:50.472 221 1894 D FFMPEG : android open, url: android-source:0xa49ff6f8
05-01 18:46:50.472 221 1894 D FFMPEG : ffmpeg open android data source success, source ptr: 0xa49ff6f8
05-01 18:46:50.473 221 1894 D FFMPEG : android source open success
05-01 18:46:50.478 3259 3259 I B4A : ~i:** Activity (main) Pause, UserClosed = false **
05-01 18:46:50.484 3259 3259 I B4A : ~l34262153:Activity_Pause chiusura forzata

05-01 18:46:50.485 3259 3259 I Choreographer: Skipped 32 frames! The application may be doing too much work on its main thread.
05-01 18:46:50.493 221 1894 I NX_FFmpegExtractor: FFmpegExtrator::Better2SniffFFMPEG url: android-source:0xa49ff6f8, format_name: ogg, format_long_name: Ogg
05-01 18:46:50.493 221 1894 I NX_FFmpegExtractor: Better2SniffFFMPEG() :Have no video stream for playable.!!
05-01 18:46:50.494 221 1894 D FFMPEG : android source close
05-01 18:46:50.494 221 1894 W NX_FFmpegExtractor: sniff through Better2SniffFFMPEG failed, try BetterSniffFFMPEG
05-01 18:46:50.494 221 1894 I MediaExtractor: Autodetected media content as 'application/ogg' with confidence 0.20
05-01 18:46:50.503 222 4576 D NuPlayerDriver: notifyListener_l(0xb4b2aea0), (1, 0, 0), loop setting(0, 0)
05-01 18:46:50.503 573 4575 D MediaPlayer: setSubtitleAnchor in MediaPlayer

bisogna intercettare il flusso adb e filtrare,

non è per me...

B4J non lo conosco.
 

Lello1964

Well-Known Member
Licensed User
Longtime User
Questa mi sembra sia la soluzione per B4A, ma non funziona in B4J

 

Star-Dust

Expert
Licensed User
Longtime User
Non mi pare ti sia utile, non puoi leggere i Log di altre App. Puoi leggere i tuoi... tu li devi leggere da un altro dispositivo
 

MarcoRome

Expert
Licensed User
Longtime User
Per il filtro....
1619890396066.png

B4X:
Dim Log1 As String = $"05-01 18:46:50.434 471 471 W WindowManager: Attempted to remove non-existing token: android.os.Binder@30fe8d9
05-01 18:46:50.472 221 1894 I NX_FFmpegExtractor: ffmpeg uri:
05-01 18:46:50.472 221 1894 I NX_FFmpegExtractor: android source: 0xa49ff6f8
05-01 18:46:50.472 221 1894 D FFMPEG : android source begin open
05-01 18:46:50.472 221 1894 D FFMPEG : android open, url: android-source:0xa49ff6f8
05-01 18:46:50.472 221 1894 D FFMPEG : ffmpeg open android data source success, source ptr: 0xa49ff6f8
05-01 18:46:50.473 221 1894 D FFMPEG : android source open success
05-01 18:46:50.478 3259 3259 I B4A : ~i:** Activity (main) Pause, UserClosed = false **
05-01 18:46:50.484 3259 3259 I B4A : ~l34262153:Activity_Pause chiusura forzata
05-01 18:46:50.485 3259 3259 I Choreographer: Skipped 32 frames! The application may be doing too much work on its main thread.
05-01 18:46:50.493 221 1894 I NX_FFmpegExtractor: FFmpegExtrator::Better2SniffFFMPEG url: android-source:0xa49ff6f8, format_name: ogg, format_long_name: Ogg
05-01 18:46:50.493 221 1894 I NX_FFmpegExtractor: Better2SniffFFMPEG() :Have no video stream for playable.!!
05-01 18:46:50.494 221 1894 D FFMPEG : android source close
05-01 18:46:50.494 221 1894 W NX_FFmpegExtractor: sniff through Better2SniffFFMPEG failed, try BetterSniffFFMPEG
05-01 18:46:50.494 221 1894 I MediaExtractor: Autodetected media content as 'application/ogg' with confidence 0.20
05-01 18:46:50.503 222 4576 D NuPlayerDriver: notifyListener_l(0xb4b2aea0), (1, 0, 0), loop setting(0, 0)
05-01 18:46:50.503 573 4575 D MediaPlayer: setSubtitleAnchor in MediaPlayer"$


    Dim rx As RegexBuilder
    rx.Initialize.AppendEscaped("B4A").Append(rx.CharAny).AppendAtLeastOne.AppendEscaped($"${Chr(10)}"$)
    Dim mat As Matcher = Regex.Matcher(rx.Pattern, Log1)
    Do While mat.Find
        Log(mat.Match)
        lbl_log.Text = lbl_log.Text & mat.Match
    Loop
 

Attachments

  • Log.zip
    9.6 KB · Views: 118

Lello1964

Well-Known Member
Licensed User
Longtime User
Solo che non legge il log direttamente in tempo reale.

Mentre quello mLogCat lo analizza direttamente.
 

MarcoRome

Expert
Licensed User
Longtime User
Dovresti fare come suggerito da Luca... e poi filtrare . Quindi potresti inserire un text con numero del device in modo da collegarlo con adb e poi filtrare, penso che il tool che hai trovato lavora in accoppiata con adb.
 

Lello1964

Well-Known Member
Licensed User
Longtime User
mLogCat è perfetto, ha i filtri per tag, legge in tempo reale,

ho risolto.
 
Last edited:
Top