Programmierung unter Android mit C++ und NDK



  • Ist ja auch super .. Gut dann werde ich es mit der Android Entwicklung wohl lassen & lieber Windows Mobile nehmen. Mir ist das ganze mit Java und der schlecht übersichtlichen Dokumentation von Android zu blöd. Gut das immer mehr Leute auch jetzt ein Windows Smartphone haben und es sicher noch mehr wird. Scheiß Linux & Android.



  • AndroidDeveloper4234 schrieb:

    Ist ja auch super .. Gut dann werde ich es mit der Android Entwicklung wohl lassen & lieber Windows Mobile nehmen. Mir ist das ganze mit Java und der schlecht übersichtlichen Dokumentation von Android zu blöd. Gut das immer mehr Leute auch jetzt ein Windows Smartphone haben und es sicher noch mehr wird. Scheiß Linux & Android.

    man verwendet in der Regel die Standardsprache für eine Plattform.
    Nicht weil Java cool oder uncool ist, sondern weil die API eben dafür ausgelegt ist und man sich keine unnötigen Steine in den Weg legen möchte.
    Wenn es dann wirklich zu der (seltenen) Situation kommt, dass Java zu lahm ist, dann kann man ja einen Teil in C++ schreiben.
    Aber damit du einen Performance Boost erhältst, musst du mit C++ auch gut umgehen können. Irgendein Drecks C++ Code kann gar langsamer sein als ein gut geschriebener Java Code.

    Und von Linux hast du offensichtlich nicht viel Ahnung, sonst wüsstest du dass GNU Linux (Kernel+Anwenderprogramme) hauptsächlich in C und C++ verfasst sind.

    Viel Spaß mit Windows Phone.



  • Keine der grossen Plattformen unterstützt die Entwicklung regulärer Apps mit reinem C++. Es gilt: iOS -> Objective-C, Android -> Java, Windows Phone -> .NET. Die Shell (was der User sieht) kannst du in der Regel nicht direkt mit C++ programmieren.

    iOS und Windows Phone bieten jeweils zusätzlich zum normalen Programmiermodell Mischformen von C++ an (Objective-C++ und C++/CLI), womit praktisch alles möglich ist - für erfahrene Entwickler (will heissen, du kennst dich mit Objective-C bzw. .NET und C++ sehr gut aus) und spezielle Anwendungen. In der Regel möchte man das nicht und es wird auch nicht empfohlen oder gut dokumentiert. Es ist aber durchaus üblich, dass man einen Teil in C++ programmiert und dann das GUI mit C# oder Objective-C baut.

    Mit dem NDK auf Android hast du im übrigen eine harte Grenze und das ist der Übergang zwischen dem Java Interpreter (egal ob JIT oder nicht, das Verhalten bleibt gleich) und dem nativen Code. Du kannst nicht einfach irgendwelche Java Libraries mit C++ anprogrammieren, und die einzigen Schnittstellen sind die vom NDK selbst. Es reicht für viele spannende Sachen, aber für vieles eben doch noch nicht. Und die Übergänge von Java zu C++ und umgekehrt sind sehr umständlich und hässlich.



  • C++ ist eine aussterbende Sprache.



  • ICh find das Android SDK in Java eigentlich ziemlich hübsch und einfach gemacht. Man kommt recht schnell zu passablen ergebnissen. Zur Doku kann ich da jetzt nix wirklich sagen, aber zumindest im Web findet man viel und ich glaube es sind beim SDK auch recht viele Beispiele dabei.



  • /rant/ schrieb:

    Windows Phone -> .NET

    Das sollte sich mit Windows Phone 8 aber doch geändert haben. Nicht?



  • hustbaer schrieb:

    /rant/ schrieb:

    Windows Phone -> .NET

    Das sollte sich mit Windows Phone 8 aber doch geändert haben. Nicht?

    d.h. man kann jetzt sogar auf Telefonen richtige, anständige Zugriffsverletzungen produzieren?



  • ich programmiere fast nur c++ auf android, ios und WP8. hab bisher keine limits entdeckt, noch musste ich grossartig mit anderen sprachen arbeiten, in iOS musste ich zwar einen kleinen objective-c layer machen, aber das ist abaendern von zwei dateien die von xcode vorgegeben wurden.

    fuer den android einstieg empfehle ich:
    http://software.intel.com/en-us/vcsource/tools/beaconmountain
    oder
    https://developer.nvidia.com/tegra-android-development-pack



  • Fragender_ schrieb:

    hustbaer schrieb:

    /rant/ schrieb:

    Windows Phone -> .NET

    Das sollte sich mit Windows Phone 8 aber doch geändert haben. Nicht?

    d.h. man kann jetzt sogar auf Telefonen richtige, anständige Zugriffsverletzungen produzieren?

    das bekommst du doch mit java/c# auch hin, einfach ein array ueberindizieren -> access violation aka aegmentation fault aka null-pointer-exception (je nach gewaehlter platform).

    du musst dich ueber wilde pointer aufregen damit wir annehmen, dass du eventuell ahnung haben koenntest worueber du trollst, sonst ist es langweilig dich schon auf der troll startlinie krepieren zu sehen.



  • hustbaer schrieb:

    /rant/ schrieb:

    Windows Phone -> .NET

    Das sollte sich mit Windows Phone 8 aber doch geändert haben. Nicht?

    .Net ist nicht mehr zwangsweise nötig, aber möglich. Das heißt aber nicht das, man mit "reinem" C++ programmiert, in der Regel wird man wohl C++/CL [oder wie das heißt] nutzen.



  • AndroidDeveloper4234 schrieb:

    man verwendet in der Regel die Standardsprache für eine Plattform.

    In der Regel versucht man die Codebasis, wenn man für mehrere Plattformen entwickelt, möglichst einheitlich zu halten. Sprich: Normalerweise arbeitet man mit Frameworks die dies wrappen. Für .Net wäre es z.B. Xamarin, bei Delphi ist es glaube ich FireMonkey...



  • asc schrieb:

    Das heißt aber nicht das, man mit "reinem" C++ programmiert, in der Regel wird man wohl C++/CL [oder wie das heißt] nutzen.

    Ich glaube du meinst C++/CX. Das ist aber nur syntactic sugar für COM-Interfaces, wenn man es nicht mag gibt es die WRL als normale C++ Alternative, ganz zu Fuss ohne Lib geht auch.
    http://blogs.msdn.com/b/vcblog/archive/2012/08/29/cxxcxpart00anintroduction.aspx



  • schonlange schrieb:

    C++ ist eine aussterbende Sprache.

    Das war ja wohl der größte Witz 😉



  • schonlange schrieb:

    C++ ist eine aussterbende Sprache.

    Eine aussterbende Sprache nicht, nur oft einfach fehl am Platze in der heutigen Zeit. Wirklich hochperformant ist man nur auf CPU-Ebene, sprich Assembler und der Rest wird mit angenehmeren Sprachen erledigt. Die gibt es nicht umsonst.

    C++ ist wie ein Schweizer-Taschenmesser, man kann alles mit machen, aber deswegen greift man doch zu spezialisierten Werkzeugen, so man diese hat und diese auch anwenden kann. Alles in C++ machen zeugt nicht gerade von einem wachen Geist.



  • danke Mr Gump, jetzt zurueck zu deiner pralinenschachtel und bump nicht threads nach einer woch nur um dein troll post loszulassen.


Anmelden zum Antworten