Sourcecode nach Diagramm

diogeneo schrieb:
Am Besten waere es natuerlich, wenn das Tool so viele wie moeglich von den Aufgefuehrten koennen wuerde und das waerend der Laufzeit.
Viele dieser Diagramme ändern sich nicht zur Laufzeit.
diogeneo schrieb:
Aber ich glaube, dass da meine Anforderungen doch etwas zu hoch sind.
Eben.

Es gibt paar Tools
die was abdecken. Aber nicht zur Laufzeit.

Bleibt noch die Frage für welche Programmiersprache ( -> alle?) du das brauchst. ;)
 
  • Gefällt mir
Reaktionen: CyborgBeta
Groovtama schrieb:
Willst du einen performance analyzer
Nein, an sich nicht, waere aber ein schoenes Plus.
Ergänzung ()

oicfar schrieb:
welche Programmiersprache
Fangen wir doch mal mit denen, in der Soucecode von Android 9 geschrieben ist an.
Schaetze mal C und Python (Weil ich mir ihn noch nicht anschauen konnte).

Danke fuer die Links.

Ergänzung ()

oicfar schrieb:
ändern sich nicht
Sie muessen sich ja auch nicht aendern. Moechte nur wissen, in welchem "Modul" der Kernel gerade abarbeitet.
Ergänzung ()

CyborgBeta schrieb:
Vermutlich brauchst du mehrere.
Wenn man die "gleichzeitig" laufen lassen kann, warum nicht.
 
Zuletzt bearbeitet:
diogeneo schrieb:
Fangen wir doch mal mit denen, in der Soucecode von Android 9 geschrieben ist an.
Schaetze mal C und Python (Weil ich mir ihn noch nicht anschauen konnte).
[ChatGPT] Der Quellcode von Android 9 (Pie) ist größtenteils in den folgenden Programmiersprachen geschrieben:
  1. Java: Der größte Teil der Android-Anwendungs-APIs und Frameworks ist in Java geschrieben. Dies umfasst die APIs, die von App-Entwicklern genutzt werden.
  2. C und C++: Der Kern von Android, einschließlich des Android Runtime (ART), der Hardware-Abstraction-Layer (HAL), der Systemdienste und nativen Bibliotheken, ist in C und C++ implementiert.
  3. Kotlin: Während Kotlin erst mit Android 8 (Oreo) offiziell als unterstützte Sprache eingeführt wurde, wurde es ab Android 9 verstärkt für die Entwicklung von Apps und einigen Framework-Komponenten eingesetzt.
  4. Assembly: Einige Teile des Betriebssystems, wie Low-Level-Treiber oder Prozessor-spezifischer Code, enthalten Assembly für maximale Leistung.
  5. Shell-Skripte und Python: Für Build-Systeme, Tests und Automatisierung werden oft Shell-Skripte (z. B. Bash) und Python verwendet.
Ergänzung ()

diogeneo schrieb:
Fangen wir doch mal mit denen, in der Soucecode von Android 9 geschrieben ist an.
Schaetze mal C und Python (Weil ich mir ihn noch nicht anschauen konnte).
An sich sind das Informationen, die schon im 1. Post stehen müssten.

Und dann wunderst du dich, wenn viele deiner Post gesperrt werden.

Die Frage könnte man sich selbst stellen und auch selbst beantworten. Aber wenn man laufend unspezifisch kommuniziert, dann kommt man nicht zu dem Punkt.

Wollte ich nur loswerden.

Dann zu dem, was du da "vorhast", wenn du wirklich dir sicher bist, sagt ChatGPT:

Das Erstellen von UML-Diagrammen (z. B. Klassendiagramme, Sequenzdiagramme, etc.) zur Laufzeit des Android-9-Kernels ist eine sehr spezifische Anforderung und unterscheidet sich von der Visualisierung von App-Daten. UML-Diagramme zur Laufzeit zu generieren, erfordert eine Kombination aus Laufzeitanalyse und spezieller Software. Hier sind die relevanten Möglichkeiten:


1. Debugging- und Profiler-Tools

Für das Android-System und den Kernel:

  • Systrace: Ein Tool, das die Laufzeitleistung des Systems analysiert. Es erstellt zwar keine UML-Diagramme, kann jedoch Ablaufanalysen liefern.
  • Perfetto: Für detaillierte Ablaufverfolgung von Systemprozessen.
  • Android Studio Profiler: Liefert keine UML-Diagramme, zeigt aber den Laufzeitzustand von Threads und Speicher.

2. Dynamische UML-Generierung

Es gibt Tools und Frameworks, die UML-Diagramme aus Code oder Laufzeitinformationen generieren können. Um dies auf Kernel-Ebene oder im nativen Bereich von Android anzuwenden, sind spezielle Anpassungen notwendig:

  • PlantUML mit Laufzeitdaten
    • Beschreibung: Mit PlantUML können Sequenzdiagramme oder Klassendiagramme erzeugt werden, wenn man die Laufzeitstruktur des Systems erfasst (z. B. mit Debugging-Daten).
    • Workflow:
      1. Erfasse Laufzeitdaten mit ptrace, perf oder Android Debug Bridge (ADB).
      2. Extrahiere relevante Daten (Methodenaufrufe, Speicherlayout).
      3. Automatisiere die Erstellung von PlantUML-Diagrammen.
  • Eclipse Papyrus oder ähnliche Tools (nachträglich aus Codeanalyse generiert):
    • Diese Tools können durch statische oder teilweise dynamische Codeanalysen Diagramme erzeugen.

3. Tracing-Tools für Kernel-Aktivitäten

Für den Kernel bietet Android spezifische Methoden, um den Zustand und die Abläufe zu überwachen:

  • ftrace:
    • Nutze ftrace, um Systemaufrufe und Kernel-Interaktionen zu überwachen.
    • Kombiniere diese Daten mit einer UML-Generierungssoftware, um Diagramme zu erstellen.
  • GDB/LLDB (Debugging-Tools):
    • Erfasse die Struktur und Interaktion von Klassen und Prozessen.
    • Nutze die Debugging-Ausgabe zur Erstellung von UML-Diagrammen.

4. Tools für spezielle UML-Diagramme

  • VisualVM:
    • Kann zur Analyse von Java-Prozessen (z. B. Android Runtime - ART) verwendet werden.
    • Unterstützt keine direkten UML-Diagramme, bietet aber Grundlage für Klassendiagramme.
  • Trace Compass:
    • Open-Source-Tool zur Visualisierung von Laufzeit-Traces.
    • Kann mit ftrace kombiniert werden, um Abläufe zu analysieren.

Fazit​

Es gibt keine direkte, "out-of-the-box"-Lösung für das Erstellen von UML-Diagrammen zur Laufzeit auf Android-9-Kernel-Ebene. Ein Workflow könnte so aussehen:

  1. Laufzeitdaten erfassen: Verwende Tools wie ftrace, systrace oder ADB.
  2. Daten analysieren und exportieren: Automatisiere den Export relevanter Daten (Klassen, Methodenaufrufe, Sequenzen).
  3. UML-Generierung: Verarbeite diese Daten mit Tools wie PlantUML, Papyrus oder Trace Compass.
Dies erfordert in der Regel eine Kombination aus Debugging-, Tracing- und UML-Werkzeugen sowie benutzerdefinierte Skripte.
Ergänzung ()

Wenn man sich das durchließt, dann bedeutet das VIEL -> SEHR VIEL ARBEIT, die man da noch reinstecken muss.

Wenn du ein Ziel hast, dann musst du bereit sein die Zeit zu investieren. Es wird kein Tool geben, der dir das abnimmt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: diogeneo und CyborgBeta
oicfar schrieb:
[ChatGPT] Der Quellcode
Vertraust Du dem?
Oder ist das auch nur so phantasiert, wie das, was von MetaKI kam?
 
  • Gefällt mir
Reaktionen: KitKat::new()
Was mich ein wenig "ärgert" ist die Tatsache, dass du an die Informationen selbst kommen könntest. Aber du schottest dich ab, brauchst dann Hilfe von anderen, die dann das machen sollen, wozu du nicht bereit bist.
 
  • Gefällt mir
Reaktionen: madmax2010, Bobmarleyfaruk und CyborgBeta
oicfar schrieb:
Es gibt paar Tools
Sind ja nicht unbedingt "guenstig". Unter nem Huni ist da ja nix zu haben (Bis auf das eine Open Source).
Glaube ich werde mal mit dem anfangen.
 
diogeneo schrieb:
Vertraust Du dem?
Wenn ich die KI (lokal habe ich auch was am Start oder ChatGPT) nutze, dann bewerte ich die Antworten und entscheide dann, ob ich die Antwort hinnehme oder nicht.

Heute habe ich die KI nach einem Python Skript gefragt, da ich kein Python kann und eine schnelle Lösung brauchte. Dem Ergebnis habe ich schon vertraut, da ich Python Code grob lesen kann. Und das was ich da brauchte, was kein Hexenwerk.
diogeneo schrieb:
Oder ist das auch nur so phantasiert, wie das, was von MetaKI kam?
Die obere Antwort ist schon eher passend nach meiner Erfahrung.
 
  • Gefällt mir
Reaktionen: madmax2010 und diogeneo
PlantUML ist Open-Source und kann aus Programmcode/Quelltexten automatisch Diagramme generieren.
 
  • Gefällt mir
Reaktionen: diogeneo und oicfar
diogeneo schrieb:
"nicht bereit" ist gut. Wuerde eher "bloquiert" schreiben.
Ich gehe davon aus, dass das was ich selbst gepostet habe, du ohne blockiert zu werden, rausbekommen würdest.
 
  • Gefällt mir
Reaktionen: madmax2010
oicfar schrieb:
An sich sind das Informationen, die schon im 1. Post stehen müssten.

Und dann wunderst du dich, wenn viele deiner Post gesperrt werden.

Die Frage könnte man sich selbst stellen und auch selbst beantworten. Aber wenn man laufend unspezifisch kommuniziert, dann kommt man nicht zu dem Punkt.
Ich würde sagen, da hat jemand das Prinzip eines Forums noch nicht verstanden ... (also nicht du, der TE)
 
oicfar schrieb:
rausbekommen würdest.
Bin dabei es weiter zu versuchen. Aber Deine Tipps haben sehr geholfen (Vor allem auch, weil ich keinen Zugang zu Goooo habe) Danke
Und sicher, klar werde ich da viel Zeit reinstecken.
Gott sei Dank entscheide ich ja zur Zeit noch ueber meine Zeit.
Ergänzung ()

CyborgBeta schrieb:
das Prinzip eines Forums noch nicht verstanden
Tut mir leid, wenn ich nicht dem "Standartuser" entspreche.
Ich stecke hier sehr viel Zeit ins Forum, weil es mir eben sehr viel bringt.
Also fuer mich funktioniert das "Prinzip", wenn ich nicht gerade gebannt werde, oder meine Straenge geschlossen werden, wie zuletzt der mit der Primzerlegung.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: oicfar
diogeneo schrieb:
Bin dabei es weiter zu versuchen. Aber Deine Tipps haben sehr geholfen (Vor allem auch, weil ich keinen Zugang zu Goooo habe) Danke
Gerne.

Aber eine andere Frage.

Wieso Android 9. Laut Wikipedia liefen noch im Januar 2021 21,29 % der Android-Geräte mit Pie (API 28).
 
oicfar schrieb:
Weil mein derzeitiges Handi (Nikia 2.3) noch damit laeuft und ich vor habe, das noch eine Weile weiter zu nutzen. Abgesehen davon moechte ich alle Goooo Apps rauswefen, ohne es zu rooten, also an sich meine ich damit, ich selber die Aenderungen am OS zu machen.
 
Alles klar. Gerade noch geschaut, ob es LineageOS für dieses Nokia Modell gibt. Leider nein. Und auch keine andere Alternative.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: madmax2010
oicfar schrieb:
Frueher haette ich einfach mit Anderen rumprobiert, bis Eins funktioniert.
Aber dieser Strang ist genau dafuer da, dass ich das nicht mehr so brute force machen muss (kann).
Kann doch nicht soooooooo schwierig sein, eine Aenderung im Android 9 zu machen. Andere konnten es ja auch.
 
Zuletzt bearbeitet:
diogeneo schrieb:
Kann doch nicht soooooooo schwierig sein, eine Aenderung im Android 9 zu machen. Andere konnten es ja auch.
und schon sind wir bei XY Problem, oder? Es geht dir eigentlich um dein veraltetes Handy mit einem alten Android, bei dem du Google Apps entfernen willst?
Sind wir doch mal realistisch, auf Basis deiner alten Threads kannst du wenig bis kaum programmieren, oder? Ok, du hast Informatik studiert, aber bist kein Praktiker, oder? Meinst du wirklich du kannst im Quellcode von Android agieren? Also wie willst du eigentlich vorgehen? Und was ist eigentlich dabei der Nutzen deiner urspruenglichen Anfrage in diesem Thread? Als Hilfsmittel bei der Umsetzung?

Vermutlich waere dein Eingangspost nach allem aktuell so in etwa:
"Hallo, ich besitze ein aelteres Smartphone X mit Android 9, dieses wuerde ich gerne von Google Apps befreien. Da ich schon umfassend Recherche dazu betrieben habe1 und es kein Custom ROM dazu gibt, wollte ich mich selbst daran versuchen. Zeit habe ich aktuell genug. Ich weiss allerdings nicht wie das ganze Android OS zur Laufzeit funktioniert, daher dachte ich finde ein fancy Tool was mir die ganze Zeit visualisiert wo sich das System gerade im Code befindet. Natuerlich verlangsamt, weil in Echtzeit weiss ich selbst ist Quatsch.
Hat jemand dazu einen sinnvollen Ansatz? Ich besitze folgende Erfahrungen XYZ in dem Bereich, denkt ihr das ist realistisch? Oder gibt es evtl. doch noch eine Moeglichkeit das Handy ohne Google Apps zu nutzen?"


1 (hast du natuerlich nicht, da ja dank deinem alten Tails kein Google oder andere Foren funktionieren und du alternative Suchmaschinen auch nicht kennst oder nutzen magst/kannst ...)

Passt das als bisheriger Stand?

Hast du denn schon mal nachgesehen, ob und wie andere Projekte "de-Googlen" ohne Root umsetzen falls es welche gibt?
 
  • Gefällt mir
Reaktionen: Maviapril2 und madmax2010
Um so etwas umzusetzen ist ein Laufzeitanalyseprogramm aber nicht unbedingt der richtige Weg. Da würde ich mir eher Tutorials zur App-Programmierung in Android ansehen, was damit einhergeht (technische Hintergründe z.B. Interaktion zwischen verschiedenen Apps, Sandboxing, App Lifecycle) und dann so Sachen wie AOSP und Custom ROM-Erstellung…

abcddcba schrieb:
und schon sind wir bei XY Problem
Klingt sehr stark danach
 
  • Gefällt mir
Reaktionen: CyborgBeta und madmax2010
Das ist im Endeffekt auch nur eine Fortführung von seinem alten Tails-Thread, wo er der festen Überzeugung war, er könne und müsse eine uralte Tails-Version selber sicherer machen, weil ihm der Name eines Systemprogramms in den neueren Versionen Angst macht.
 
wobei es schon witzig ist bei tails paranoid zu sein, aber Android zu vertrauen
diogeneo schrieb:
Kann doch nicht soooooooo schwierig sein, eine Aenderung im Android 9 zu machen. Andere konnten es ja a
such dir eine der offenen Sicherheitslücken raus, nutz sie, patch was du willst. Der letzte Teil dürfte der schwierigere sein
 
  • Gefällt mir
Reaktionen: abcddcba
Zurück
Oben