Android [zu Java wechseln, oder NDK probieren]



  • Ich wollte beginnen Apps für Android zu schreiben, aber ich stehe jetzt vor der Frage:
    - Java Kenntnisse ausbauen (Nur spärlich vorhanden)
    - NDK verwenden

    Es wäre theoretisch nicht außerordentlich problematisch Java zu lernen, aber das dauert etwas und ich werde definitv die Paradigmenfülle von C++ vermissen mit seinen Möglichkeiten.

    Auf der anderen Seite laß ich, dass das NDK außerordentlich schwer zu benutzen ist und anstrengend. Gilt das auch für (weit) fortgeschrittene C++ Programmierer?
    Braucht man viel Arbeit um in das NDK einzusteigen? (Denn dann lern ich einfach gleich Java)

    Ich befürchte auch, dass die ersten Java Anwendung nicht außerordentlich optimal sein werden, entgegensatz zu meinem C++, wo ich die Möglichkeit noch habe (der Kenntnis wegen) verschiedene Ansätze zu vergleichen und ich kann mich gleich auf die Performance etc konzentrieren, anstatt auf Sprachliches.

    Welche IDEs (oder Toolchains) stehen für Java zur Verfügung im Gegensatz zu C++?
    Eins noch: Ich kann Eclipse nicht ausstehen.



  • Das könnte dich interessieren: http://code.google.com/p/vs-android/



  • NDK ist wie auf vielen platformen, du erstellst dein projekt, baust die sourcen und startest es auf dem geraet. im ndk sind auch ein paar samples die zeigen wie es zu nutzen ist.
    ich denke die meisten die mit dem ndk probleme haben eher leute sind die es in java einbinden moechten, aber wenn du einfach nur c++ willst, kannst du eine native activity erstellen (davon gibt es auch ein beispiel) und arbeitest mit c++ von a bis z.



  • Schau doch erstmal, wie Win8 auf den Markt drücken wird. Mit dem quasi selben Kernel wie auf Win-Phones. Mit C++ für Apps.
    MS ist immer ein paar Jahre nachher dran und gewinnt immer.



  • rapso schrieb:

    und arbeitest mit c++ von a bis z.

    Ich hab gehört, das soll nicht so gut sein. *ba-dum ching*



  • Dobi schrieb:

    rapso schrieb:

    und arbeitest mit c++ von a bis z.

    Ich hab gehört, das soll nicht so gut sein. *ba-dum ching*

    da steckt der wolf im schafspelz



  • Dobi schrieb:

    rapso schrieb:

    und arbeitest mit c++ von a bis z.

    Ich hab gehört, das soll nicht so gut sein. *ba-dum ching*

    und ich dachte du bist tod, Dobi.



  • Laut Google soll man das NDK nur nutzen wenn man wirklich genau weiß warum man es braucht und nicht weil man in einer anderen Sprache entwickeln will oder denkt die Apps wären schneller. (Durch den JNI-Overhead sind sie meistens langsamer)



  • Ethon schrieb:

    ...nicht weil man in einer anderen Sprache entwickeln will oder denkt die Apps wären schneller. (Durch den JNI-Overhead sind sie meistens langsamer)

    Ja, sehr voreingenommen die Docu.



  • Hier nochmal was Google dazu sagt:

    The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. For certain types of apps, this can be helpful so you can reuse existing code libraries written in these languages, but most apps do not need the Android NDK.

    Before downloading the NDK, you should understand that the NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Notably, using native code on Android generally does not result in a noticable performance improvement, but it always increases your app complexity. In general, you should only use the NDK if it is essential to your app—never because you simply prefer to program in C/C++.

    Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on. When examining whether or not you should develop in native code, think about your requirements and see if the Android framework APIs provide the functionality that you need.

    Ansonsten ist Javaprogrammierung (vor allem mit Eclipse, Eclipse ist der einzige Grund warum ich hin und wieder Java benutze) leichter als nem Baby den Schnuller zu klauen, wenn man C++ kann. Ich würde es einfach in Java machen, geht schnell & macht wenig Ärger.



  • Diesen Teil der Docu haben Sie seit Anfang an drinnen, als java und c++ noch gemixt werden mussten und auf c++ Seite noch elementare Funktionen fehlten. Jetzt reicht eigentlich c++ vollkommen.
    Auch Kompatibilität ist kein Problem, weil du arm, x86 und mips bauen und im packet ablegen kannst. Geschwindigkeit der Apps ist auch um einiges besser, besonders wenn du XEON verwendest.
    Ich empfehle die Visual Studio integration von NVidia: https://developer.nvidia.com/tegra-android-development-pack

    VS, c++ und ein toller Profiler 😋



  • Ich probiere jetzt erstmal "vs-android" aus. Das habe ich gerade fertig installiert und es scheint so weit gut zu funktionieren.

    @volkard: Wenn MS durchstartet mit ihrem Konzept kann ich ja wieder wechseln 🙂



  • volkard schrieb:

    Schau doch erstmal, wie Win8 auf den Markt drücken wird. Mit dem quasi selben Kernel wie auf Win-Phones. Mit C++ für Apps.
    MS ist immer ein paar Jahre nachher dran und gewinnt immer.

    Hoffen wir es doch nicht, den Käse will doch niemand am Handy haben. 😃
    Und in was hat MS bis jetzt so gegen Google gewonnen? Bing vlt? 🤡



  • Ethon schrieb:

    Hoffen wir es doch nicht, den Käse will doch niemand am Handy haben. 😃

    Ich kenne viele mit einer Microsoft-Antipathie die nur etwas ablehen weil MS darauf steht. So haben viele eine sehr schlechte Meinung zu Windows Phone die maximal 1-2 Bilder vom System gesehen haben. Interessanterweise habe ich das gleiche im Bekanntenkreis gehabt, bis sie das System einmal ausprobiert haben*, also schließ von dir nicht auf Andere.

    * Das heißt weder das sie sich jetzt zwangsläufig WP zuwenden, aber mit einer Ausnahme haben es alle als gut, und einer als neutral eingestuft.



  • lustig, bei mir ist es genau andersrum, ich kenne sehr viele die alles neue ausprobieren muessen und die meisten haben Win8 probiert (ein paar auch nur das WP8 quasi) und bisher gibt es keinen der es nicht wieder mit Win7, WinXP oder android ersetzt hat.

    mir persoenlich gefaellt das VisualStudio 2012 mal ausnahmsweise von der UI und performance her, nach vielen jahren wo es immer was auszusetzen gab, ist das neue an sich ok (bis auf dass es VS2010 irgendwie zerballert, parallel arbeiten ist nicht sonderlich gut moeglich).
    c++ entwicklung auf WP8 ist auch toll aus meiner sicht, endlich kein XNA zwang. (wobei ich noch kein WP8 phone habe, nur das sdk ausprobiert, verlockt mich jedoch :D)

    fuehle mich in meinem umfeld irgendwie als einziger der WP8 ein wenig positiv gegenueber steht.

    @back on topic 🙂
    ich sehe keinen grund bei android auf java umzusteigen, mit c++ kann man alles machen und es sehr einfach auf iOS zum laufen bringen.



  • rapso schrieb:

    lustig, bei mir ist es genau andersrum, ich kenne sehr viele die alles neue ausprobieren muessen und die meisten haben Win8 probiert (ein paar auch nur das WP8 quasi) und bisher gibt es keinen der es nicht wieder mit Win7, WinXP oder android ersetzt hat.

    Windows 8 != Windows Phone



  • asc schrieb:

    rapso schrieb:

    lustig, bei mir ist es genau andersrum, ich kenne sehr viele die alles neue ausprobieren muessen und die meisten haben Win8 probiert (ein paar auch nur das WP8 quasi) und bisher gibt es keinen der es nicht wieder mit Win7, WinXP oder android ersetzt hat.

    Windows 8 != Windows Phone

    lesen!=verstehen.


Anmelden zum Antworten