Programme auf Linux Compilen und auf Milestone ausführen?

D

DocMAX

Erfahrenes Mitglied
17
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?
 
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:
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:
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.
 
@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.
 
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
 
schimmel schrieb:
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
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!
 
@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.
 
@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.
 
szallah schrieb:
@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.

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!
 
szallah schrieb:
@horst777

hast du nen link zu ner kurzen anleitung wie du scala für android nutzbar in eclipse integriert hast?
auf die schnelle hab ich nur das gefunden:
chris blogs: Programming for Android with Scala
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.
 
horst777 schrieb:
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.

Das Milestone arbeitet hervorragend mit meinem Linux-System :)
 
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.
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
107
swa00
swa00
C
Antworten
8
Aufrufe
1.121
swa00
swa00
B
Antworten
4
Aufrufe
467
bb321
B
Zurück
Oben Unten