13 Punkte von GN⁺ 2024-09-23 | 1 Kommentare | Auf WhatsApp teilen
  • Möchten Sie C-Code auf Android ausführen?
  • Dieses Framework kann in etwa 2 Sekunden ein APK erzeugen, installieren und automatisch starten; die APK-Größe beträgt etwa 25 kB.
    • Unter API 30 (Android R+) sind es 45 kB, um ARM64 + ARM32 zu unterstützen.
  • Die Demos dieses Frameworks umfassen Folgendes:
    • Erstellen eines Fensters mit OpenGL-ES-Unterstützung
    • Beschleunigungsmesser-/Gyro-Eingabe, Multitouch
    • Android-Tastatur für Tastatureingaben
    • Speichern von Asset-Dateien im APK und Lesen mit AAssetManager
    • Unterstützung für Berechtigungen, etwa für die Nutzung von Sound
    • Direkter Zugriff auf USB-Geräte
  • Haftungsausschluss: Die Nutzung dieses Codes erfolgt auf eigenes Risiko. Bei der Erstellung kommerzieller Apps kann es zu Problemen kommen.

Why?

  • Manchmal möchte man Dinge tun, die nicht in den normalen Weg passen.
    • Alle Diskussionen online konzentrieren sich darauf, den normalen Prozess zu verwenden.
    • Diese Prozesse ändern sich und machen es schwierig, bestimmte Aufgaben auszuführen und auf dem neuesten Stand zu bleiben.
    • Mit einem Makefile können Sie genau sehen, welche Befehle ausgeführt werden, eigene Regeln hinzufügen und den Build anpassen.
  • C ist eine universelle Sprache.
    • Rawdraw läuft auf allem, vom ESP8266 über RaspberryPi, Windows und Linux bis hin zu Android.
    • Schreiben Sie den Code einmal und verwenden Sie ihn überall.
  • Wenn man den Build-Prozess nicht mit unnötigem Ballast füllt, bleibt nur das Wichtige übrig.
    • Das erleichtert Entwicklung, Deployment usw.
    • Alles benötigt deutlich weniger Zeit.
  • Es hat auch damit zu tun, den Luddite-Leuten im Internet eins auszuwischen.
    • Den Leuten, die auf Stack-Overflow-Fragen antworten: „Das ist unmöglich“ oder „Sie machen es falsch“.
    • Solche Albernheiten wie, dass das Anfordern von Berechtigungen aus JNI heraus „in Java gemacht werden muss“.
    • Mich interessieren Meinungen darüber, was möglich oder unmöglich ist, überhaupt nicht.
    • Das ist Informatik. Es gibt keine Grenzen. Man kann machen, was man will. Es sind nur Bits. Ihr besitzt mich nicht.

1 Kommentare

 
GN⁺ 2024-09-23
Hacker-News-Kommentare
  • „Ich kann tun, was ich will. Ich bin nur Bits. Du besitzt mich nicht.“ Dem stimme ich zu

  • Das Java- und Kotlin-Ökosystem in der Android-Entwicklung ist unerquicklich. Java ist eine schwer zu nutzende Sprache, und Kotlin ist weniger schlimm, aber Build-Tools, Paketverwaltung und die Nutzung der IDE sind umständlich. Danke an den Autor

  • Es scheint, als müsste man Android Studio installieren. Ich frage mich, ob es eine Möglichkeit gibt, nur das Android SDK herunterzuladen

    • Als ich kurz ins Makefile geschaut habe, wirkte es so, als würde Gradle vermieden, aber stattdessen werden andere in Java geschriebene Tools aufgerufen
    • Ich würde gern sehen, wie man eine Flutter-App ohne Gradle baut
  • Ich habe gute Erinnerungen daran, eine plattformübergreifende C++/OpenGL-ES-Engine entwickelt zu haben

  • Dieser Ansatz ist nützlich für Anwendungen, die ihre UI über OpenGL bereitstellen und nicht viel mit dem Android-System interagieren

    • Das NDK wird verwendet, um in traditionellen Java-Android-Anwendungen kleine C-Code-Stücke für mehr Geschwindigkeit zu schreiben
    • Dieser Hack ermöglicht es, eine OpenGL-App, die im Vollbild läuft, vollständig in reinem C zu schreiben
    • Er bietet begrenzten Zugriff auf Dinge wie Tastatur, ADC-Eingaben und USB
    • Das Android-Framework wird nicht in C nachimplementiert, und das NDK bietet nur begrenzten Zugriff, damit NDK-Code mit dem Framework interagieren kann
    • Der wichtigste Anwendungsfall ist ein Programm, das Echtzeit-Audio-reaktive Visualisierungen auf Basis von Chroma-Extraktion unterstützt
  • Jedes Mal, wenn ich XCode oder Android Studio benutze, werde ich daran erinnert, wie viel Glück Webentwickler dank Vite haben

    • Alles funktioniert gut. Mit dem einfachen Plugin-System kann man alles integrieren
    • Wenn das benötigte Plugin nicht vorhanden war, konnte man leicht ein eigenes Plugin erstellen
    • Wenn Vite kaputtgeht, ist man komplett aufgeschmissen. Man muss einen anderen Weg finden oder warten, bis ein Patch erscheint. Vites Innereien selbst zu reparieren ist fast unmöglich
  • Jemand mit viel Geld wie Elon sollte Linux auf Mobilgeräten zum Laufen bringen. Es gibt laufende Bemühungen, aber die Fortschritte sind langsam. Das würde das Duopol aufbrechen und solche Arbeiten viel einfacher machen

  • Wenn man Lua in dieses System einbettet, um Logik auf höherer Ebene zu schreiben, wäre das nützlich für Dinge wie Spiele oder Media-Player, die nicht viel Unterstützung bei der Barrierefreiheit brauchen

    • Für performancekritische Teile kann man leicht C-Bibliotheken anbinden oder direkt C-Code schreiben
    • (Und dann den Kern schrittweise in Zig neu schreiben)
  • Java-/Kotlin-Tools sind das Schlimmste an der mobilen Entwicklung. Ich verstehe nicht, warum man immer noch daran festhält, obwohl es so viele andere großartige Sprachen und Tools gibt. Ich kann nicht nachvollziehen, warum Google Go nicht als native Alternative für die Android-Entwicklung angeboten hat

  • Ich bin überrascht, dass Leute immer noch Make verwenden. Es wirkt, als wüssten sie nicht, dass in den letzten 20 Jahren andere Sprachen entwickelt wurden