Optimeringar både hos spel-tillverkare och hos t.ex. HTC och en del i Android själv och det är precis som du säger, Android har nyligen släppt 2.0 och gjort några stora steg på 3D fronten i 1.5 men det tar tid att optimera medan Iphone funnits ett bra tag, sedan har Android en sak som är både en för och nackdel, de har flera olika telefoner som måste fungera, det betyder mer utvecklare från olika håll men oxå att det ofta tar längre tid att få något att fungera på alla olika telefoner på samma sätt, t.ex. Hero och Magic e väldigt lika i Hårdvara men ändå funkar inte alla grejer exakt likadant på dem när du drar hem dem från Market även om det inte är så vanligt så förekommer det faktiskt.
Iphone finns bara "en sort" och fördelen med det är att hittar du något smart sätt så fungerar det på alla Iphones, det gör oxå att Iphone kan köra C/C++ istället för Java, Android kör faktiskt C/C++ oxå men med ett lager Java ovanpå.
Java fungerar så att det emulerar en dator ovanpå systemet som kör det, Android då kör Linux och mellan Linux och din kod ligger en JVM (Java Virtual Machine), fördelen med detta är att så länge du har en JVM för ditt system så vet du att den kan hantera Java kod likadant som alla andra system med en JVM och därmed är det väldigt lätt att byta hårdvara men ha kvar alla program även om den nya hårdvaran skulle börja köra t.ex. Windows under Android.
Nackdelen med detta är att det kostar lite kraft av systemet att låtsas vara en dator i en dator så att säga, man kan grovt räkna med ungefär 10% förlust, det finns dock en NDK (Native Development Kit) för Android som är C/C++ men iom att huvudsystemet är Java måste du iaf ha en litel koppling mellan dem men det kan bli lite bättre presanda för spel iom att man minskar det som måste gå igenom JVM men då förlorar du garantin att ditt program fungerar på alla Android telefoner nu och i framtiden.
Ett lätt sätt att se det är att faktiskt se det i vanliga språk (istället för Java, C osv)
Tänk att du bara kan Svenska (Java), du vill prata med någon som bara pratar Madarin (Maskinkod), då måste du ha någon som pratar båda som sitter mellan och tolkar, det är ungefär vad JVM gör.
Sedan tänk att då Mandarin är Maskinkod (dvs ettor och nollor) men Kantonesiska (Kinas andra stora språk, nu är det inte helt sant men låtsas att de har exakt samma skriftspråk men olika talspråk) är (C/C++), Kantonesiska fungerar då inte att tala med någon som pratar Mandarin, men skriver du ner det (kompilerar) fattar den direkt för då skriver ni samma språk, du behöver inte översätta något och det går snabbt att skriva och läsa mellan er.
Ta sedan dig som stackars Svensk, du fattar noll av allt vad kinesiska är men din tolk fattar ju så du kan prata med dem, det tar bara lite tid för tolken att översätta, sedan har din tolk ett ess i ärmen, säg att ni sedan ska jobba med en tysk, kineserna är helt lost, fattar noll men din tolk pratar tyska oxå lika bra som Mandarin och vips, du kan lätt jobba med tysken i samma "hastighet" som du jobbade med Kineserna.
blev lite vimsigt där, men hoppas du förstod iaf ^^
Click to expand...