Varför är tunga program för Android gjorda i C++?

Diskussion i 'Allmänt' startad av worldwide, 16 jun 2011.

  1. worldwide

    worldwide Teen Droid Medlem

    Blev medlem:
    15 nov 2010
    Inlägg:
    363
    Mottagna gillanden:
    26

    MINA ENHETER

    Som rubriken säger... varför gör utvecklare tunga program, som t.ex. spel med C++? Varför inte Java?

    Ser också att folk säger att Java är segt för spel? Varför har då Google valt Java före C++?
     
  2. OliverG

    OliverG Professional Droid Hedersmedlem

    Blev medlem:
    7 okt 2009
    Inlägg:
    2 900
    Mottagna gillanden:
    125

    MINA ENHETER

    C har bättre prestanda än java. Google har valt Java till Android för att apparna ska vara plattformsoberoende.
     
  3. McZ

    McZ Youth Droid Medlem

    Blev medlem:
    9 nov 2010
    Inlägg:
    223
    Mottagna gillanden:
    12

    MINA ENHETER

    C/C++ är mer hårdvarunära programmering eftersom det byggs för den platformen programmet/spelet ska köras på.

    Java är platforms "oberoende" (med vissa undantag, har inte så stor koll på java) men Java kräver då att en s.k. Virtual Machine körs på hårdvaran som tolkar koden som blir när man kompilerar ett java program. På Android är det Dalvik VM som sköter den biten.

    Varför Google valt att köra med Java som språk för sina appar vet jag inte.
    Men Java har bättre hantering av resurser (Garbage collection) jämfört med den näst intill obefintliga hanteringen av resurser i C++. Detta gör att programmerare som skriver appar inte behöver bry sig om minne dom allokerar i olika arrayer osv. Skriver man däremot en app i C/C++ måste man själv frigöra minne man har allokerat för att man inte ska få minnes läkage där ett program kan äta upp allt minne i hela systemet.