1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Programme auf Linux Compilen und auf Milestone ausführen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von DocMAX, 16.01.2010.

  1. DocMAX, 16.01.2010 #1
    DocMAX

    DocMAX Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    441
    Erhaltene Danke:
    15
    Registriert seit:
    24.12.2009
    Hallo,
    ist es möglich, programme zu compilen und auf dem milestone auf USERebene zu starten (also ohne root). ich meine programme die auf shell ebene laufen, keine grafik verwenden. zb. HTOP, iftop usw. jemand ne idee?
     
  2. schimmel, 16.01.2010 #2
    schimmel

    schimmel Android-Hilfe.de Mitglied

    Beiträge:
    103
    Erhaltene Danke:
    14
    Registriert seit:
    29.11.2009
    Natürlich ist es möglich. Grundsätzlich wird aber nur Java unterstützt. Also kein C/C++ oder andere Sprachen. Ausserdem sind nicht alle Java Bibliotheken verfügbar, sondern nur jene aus dem Android SDK. Auch wenn du also ein Programm ohne GUI schreiben willst muss dieses ausschliesslich in Java geschrieben sein.

    Ich schlage dir also vor du beginnst am Besten beim Android SDK:

    Android SDK | Android Developers
     
    Zuletzt bearbeitet: 16.01.2010
  3. horst777, 16.01.2010 #3
    horst777

    horst777 Junior Mitglied

    Beiträge:
    25
    Erhaltene Danke:
    4
    Registriert seit:
    14.01.2010
    Phone:
    Motorola Milestone
    Mit Eclipse und dem dazu gehörenden Android-Plugin müßte das möglich sein. Ich habe aber bisher nur mit dem Emulator gearbeitet, weil ich erst seit ein 2 Tagen einen Milestone habe. Also mit dem Emulator geht das (auch starten). In den nächsten Tagen kann ich Dir bestimmt mehr dazu sagen. Ich möchte aber erstmal mit der Bedienung des Gerätes besser vertraut werden, bevor ich ans Programmieren gehe.
     
    Zuletzt bearbeitet: 16.01.2010
  4. schimmel, 16.01.2010 #4
    schimmel

    schimmel Android-Hilfe.de Mitglied

    Beiträge:
    103
    Erhaltene Danke:
    14
    Registriert seit:
    29.11.2009
    Ist dein Android Handy über USB mit dem Rechner verbunden, sollte anstelle des Emulators dein Handy als Spielwiese dienen.

    Sollte das nicht klappen kann man immer noch ein Paket erstellen und installieren.
     
  5. gokpog, 16.01.2010 #5
    gokpog

    gokpog Android-Ikone

    Beiträge:
    5,954
    Erhaltene Danke:
    1,386
    Registriert seit:
    12.11.2009
  6. szallah, 16.01.2010 #6
    szallah

    szallah Android-Lexikon

    Beiträge:
    1,009
    Erhaltene Danke:
    126
    Registriert seit:
    20.11.2009
    Phone:
    Motorola Razr i
    @horst777

    mit eclipse programmiert man aber kein C sondern Java, und die meisten linux-typischen programme sind ja in C usw. geschrieben...

    und:
    selbst wenn man unter nem linux für die CPU im jeweiligen handy ne anwendung kompilieren würde, so würde sie eben auch nur mit der CPU laufen.
    apps vom milestone würden dann z.b. nicht auf'm nexus one / acer liquid funktionieren, denn das sind ja verschiedene CPUs.
     
  7. garak, 16.01.2010 #7
    garak

    garak Ehrenmitglied

    Beiträge:
    8,270
    Erhaltene Danke:
    4,794
    Registriert seit:
    12.12.2009
    Da die Methode "Runtime" ja unterstützt wird, sollte es eigentlich möglich sein eigene Programme, z.B. von SD-Card auszuführen. Die entsprechenden Bibliotheken vorausgesetzt.

    Gruß
    Chris
     
  8. horst777, 16.01.2010 #8
    horst777

    horst777 Junior Mitglied

    Beiträge:
    25
    Erhaltene Danke:
    4
    Registriert seit:
    14.01.2010
    Phone:
    Motorola Milestone
    Das stimmt nicht ganz. Es gibt da noch den Android-NDK mit dem man auch C/C++ Bibliotheken in eine App einbinden kann. Aber das ist eine sehr hakelige Angelegenheit, weil man dann in 2 Progammiersprachen debuggen muss. Ich habe mal mit dem Java Native Language Interface" gearbeitet, was dazu analog ist. Die schlaflosen Nächte, die mir das bereitet hat, habe ich bis heute nicht vergessen. Also bei Neuentwicklungen sollte man sich das nicht antun und ausschließlich mit Java programmieren. Java ist auch ganz schon schnell geworden in den letzen Jahren, so dass es aus Performanz-Überlegungen heraus meistens keinen Sinn macht zu C/C++ zu greifen. Anders verhält es sich da, wenn man bereits gut getestete C/C++ Bibliotheken hat. In dem Fall ist es durchaus eine Überlegung wert zum NDK zu greifen, anstatt das ganze Zeug nach Java zu portieren.

    Es gibt aber noch eine weitere Programmiersprache mit der man Android-Apps entwickeln kann: Scala.
    Das ist eine sehr smarte Programmiersprache, die eine Weiterentwicklung von Java darstellt. Manche Leuten bezeichnen Scala als das "bessere Java". Ich habe letzte Woche eine kleine App mit Scala geschrieben. Es funktioniert!
     
  9. szallah, 16.01.2010 #9
    szallah

    szallah Android-Lexikon

    Beiträge:
    1,009
    Erhaltene Danke:
    126
    Registriert seit:
    20.11.2009
    Phone:
    Motorola Razr i
    @horst777

    scala interessiert mich auch sehr. vor allem weil ich viel lieber funktional als objektorientiert programmiere.
    ich hab's allerdings noch nicht ausprobiert, und so wie ich das verstanden habe vom gelesenen her werden die apk's von scala-programmen recht umfangreich weil lauter bibliotheken mit ins paket müssen damit auch alles funktioniert. da hat n simples "hello world" dann schon fast 1mb.
    allerdings war das vor nem monat als ich das gelesen hatte. vielleicht hat sich da ja mittlerweile was getan.
     
  10. horst777, 16.01.2010 #10
    horst777

    horst777 Junior Mitglied

    Beiträge:
    25
    Erhaltene Danke:
    4
    Registriert seit:
    14.01.2010
    Phone:
    Motorola Milestone
    @DocMAX

    Zu meinem obigen Beitrag muss ich noch eine Einschränkung machen. Ob das mit LINUX so reibungslos funktioniert, wie Du das gerne hättest wird davon abhängen, ob es einen Linux USB-Treiber für das Milestone gibt. Falls es diesen Treiber nicht gibt, kannst Du zwar unter LINUX Apps entwickeln und vermutlich auch im Emulator testen, aber weder die Apps auf den realen Milestone rüberbringen, noch sie dort debuggen.

    Also mit dem dem Treiber steht oder fällt Dein Vorhaben. Sollte es keinen Treiber geben, dann wird die Linux-Entwickler Gemeinschaft aber sicher bald einen bauen, falls der Milestone im Smartphone-Markt gute Verbreitung findet, was ich glaube und hoffe.
     
  11. horst777, 16.01.2010 #11
    horst777

    horst777 Junior Mitglied

    Beiträge:
    25
    Erhaltene Danke:
    4
    Registriert seit:
    14.01.2010
    Phone:
    Motorola Milestone
    Ja Du hast recht! Das objektorientierte Paradigma ist nicht für jeden Zweck das Non-plus-Ultra. Nach 2 Jahrzehnten OO-Hype, kommt man in Informatiker-Kreisen da auch so langsam drauf. Dennoch hat auch die OO-Programmierung ihren Sinn, aber halt nur dort, wo es zweckmäßig ist. Scala hat aber noch viel mehr zu bieten, als nur die nahtlose Integration funktionaler Programmierung in ein OO-Umfeld. Ich verweise dazu auf die zahlreichen Publikationen, die es im Web gibt.

    Die Sache mit den riesengroßen App-Files durch Scala, ist offensichtlich Schnee von gestern. Ich habe gerade nachgesehen wie groß meine Hello-App in Skala geschrieben ist: 14 kB!
     
  12. szallah, 16.01.2010 #12
    szallah

    szallah Android-Lexikon

    Beiträge:
    1,009
    Erhaltene Danke:
    126
    Registriert seit:
    20.11.2009
    Phone:
    Motorola Razr i
  13. horst777, 16.01.2010 #13
    horst777

    horst777 Junior Mitglied

    Beiträge:
    25
    Erhaltene Danke:
    4
    Registriert seit:
    14.01.2010
    Phone:
    Motorola Milestone
    Alle Anleitungen im Web zur Scala-Programmierung sind unvollständig. Ich musste mehrere kombinieren um erfolgreich zu sein.

    Gut, ich mache mal einen Thread zur Scala-Programmierung für Android. Aber ich bitte um ein paar Tage Geduld, da ich im Augenblick erstmal damit beschäftigt bin meinen Milestone richtig zu verstehen. Der Beitrag wird dann aber in der Rubrik "Programmierung" auftauchen, weil wir hier eigentlich OT sind, denn das Thema betrifft nicht nur den Milestone, sondern alle Android-Geräte.
     
  14. garak, 16.01.2010 #14
    garak

    garak Ehrenmitglied

    Beiträge:
    8,270
    Erhaltene Danke:
    4,794
    Registriert seit:
    12.12.2009
    Das Milestone arbeitet hervorragend mit meinem Linux-System :)
     
  15. jannau, 18.01.2010 #15
    jannau

    jannau Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    11
    Registriert seit:
    05.12.2009
    Linux command line programme kann man problemlos auf android systemen ausführen. Man braucht eine entsprechende armvX toolchain (compiler, binutils, libc, ...). Da das android userland sich deutlich von gnu/linux unterscheidet, sollten die Programme statisch gelinkt sein.

    Auführen lassen sie sich dann entweder mit adb shell oder einem Terminalemulator auf dem System. Das "local" protokoll in connectbot beispielsweise.

    Auf meinem Milestone läuft so unter anderem ein für armv7 compiliertes busybox und eine bessere shell.
     

Diese Seite empfehlen