Varför MeeGo är kvickare än Android

Permalänk
Medlem

Varför MeeGo är kvickare än Android

Android apps är java och körs på ett vm, dalvik virtual machine - http://en.wikipedia.org/wiki/Dalvik_%28software%29
MeeGo är linux, kompilerad kod (oftast C++) körs direkt mot operativet utan något mellanlager

En del undrar varför nya Nokia n9 är så kvick trots att det finns Android mobiler med snabbare hårdvara. Orsaken är att Android apps är java apps och de är långsammare. C++ apps gjorda för Android kör också ovanpå dalvik vm och är en slags java apps de med. Kompilerade C++ apps kräver inte alls lika mycket resurser från hårdvaran och använder den effektivare.

Applikationer utvecklade i C++ under QT kan kompileras för en mängd olika plattformar. Windows, Symbian, Linux, MeeGo mm
Applikationer utvecklade för Android kan inte köras på andra operativ annat än att man skeppar med kompatibelt VM som finns på Android. Skeppar man med ett sådant VM kan andra mobiler köra Android apps lika bra som Android självt

Permalänk
Medlem
Permalänk
Medlem

Det finns faktiskt native development kit till android också.

Visa signatur

i5 4790K, 8 GB XMS3 1600 Mhz, RX 5700XT, Gigabyte G1.Sniper M5

Permalänk
Medlem
Skrivet av Sgt. Stinger:

Det finns faktiskt native development kit till android också.

Endast teorin, tror ingen gör det för det är ett helvete. Då får man knappt något extra av det som skiljer android från Linux (det man byggt på linux)

Permalänk
Medlem

Finns det någon som kan backa upp det påståendet? Såvitt jag minns har jag läst att det skulle vara relativt enkelt att använda ndk'n för en c/c++-kodare?

Skickades från m.sweclockers.com

Visa signatur

i5 4790K, 8 GB XMS3 1600 Mhz, RX 5700XT, Gigabyte G1.Sniper M5

Permalänk
Medlem

Intressant verkligen. Tänkte jag skulle kasta min LG Optimus X2 i skön ändå för det är skräp av något. Nokia har iaf genom åren haft kvalité lurar så varför i H*vete bytte jag..

Visa signatur

CPU: I7 8086K MOBO: Asus Rog Strix Z370-F GAMING PSU: Corsair HX850i 850W GFX: ASUS eForce RTX 2080 Ti 11GB DUAL OC DISC: M.2 960 RAM: 16 Gig Corsair 2666Mhz DISP: Predator XB1 27" gaming XB271HU CASE: Fractal Design Define R6 OS: Win 10 x64

Permalänk
Medlem
Skrivet av Sgt. Stinger:

Finns det någon som kan backa upp det påståendet? Såvitt jag minns har jag läst att det skulle vara relativt enkelt att använda ndk'n för en c/c++-kodare?

Skickades från m.sweclockers.com

Det är säkert en del som kodar i c++ men C++ program kör mot dalvik virtual machine med samt de komponenterna som ligger på operativet. C++ applikationer på Android är inga "riktiga" C++ applikationer som på andra system

Här är en film; http://www.youtube.com/watch?v=5yorhsSPFG4
Google har kämpat en del för att få dit C++ utvecklare samtidigt som en programmerare borde reagera på att det INTE gick och koda C++ från början, C är vanligen det språk som de flesta operativ klarar och kompilera först. Google har gjort massa fixar för att köra C++ som någon slags java apps

Permalänk
Medlem
Permalänk

Det verkar vara en del förvirring och missförstånd på och hur Android fungerar till skillnad från Meego.

1. Kodar man C/C++-applikationer i Android genom NDK så körs de native precis som på Meego (båda använder gcc och glibc). Den enda skillnaden är att binären paketeras i en apk på Android, precis som med dalvik-bytekoden; samt att man måste ha en java-main som kickar igång ens riktiga binär.

2. Ja, Java är för det mesta långsammare än C++ (även om det är väldigt lätt att skriva kass C++kod). Däremot så tror jag de flesta syftar på flytet i gränssnittet när man jämför Android och Meego. Däri ligger skillnaden att Android (Gingerbread 2.3 eller äldre) inte hade hårdvaruaccelererad 2D-grafik (vilket nu Android 3/4 har). Vissa program, som t.ex. Opera Mobile, renderar 2D-grafiken "manuellt" (ej nativewidgets, etc) genom OpenGL ES samt att de beräkningsintesiva delarna är skrivna i C++ (t.ex. XML-parsning och DOM-generering). De är minst lika snabba som motsvarande applikationer på Nokia N9/N950.

3. Applikationer utvecklade med Android NDK lider av samma problem som Qt-applikationer i C++: Nämligen att binärerna endast fungerar på en processorarkitektur. Utvecklaren som arbetar med C++-koden måste då kompilera och paketera sin applikation för flertalet processorarkitekturer. Prestandavinsten i att skriva något i C++ jämfört med Java är svårmotiverad om det inte är tyngre applikationer man sitter och utvecklar. Annars kan man likväl hålla sig till dalvikbytekod som fungerar på alla processorarkitekturer (som har en fungerande dalvikmotor).

4. En applikation skriven för t.ex. Meego går inte automatiskt att få att rulla i t.ex. Windows, men det är helt klart enklare att använda existerande kodbas för att göra en native-applikation för Windows/OSX/Linux i efterhand. Gränssnitten, storleken på skärmarna, etc, skiljer sig så markant mellan mobila enheter och en fullvärdig dator. API:erna är heller inte helt identiska mellan Qt och Qt Mobility.

Permalänk
Medlem
Skrivet av karjix:

Intressant verkligen. Tänkte jag skulle kasta min LG Optimus X2 i skön ändå för det är skräp av något. Nokia har iaf genom åren haft kvalité lurar så varför i H*vete bytte jag..

Det är du inte ensam om att vilja, har en kompis med samma telefon, och han hatar den. Däremot har jag två kompisar som är väldigt nöjda med sina SGS2, och jag gillar min HTC Desire (Sensation på ingång).

Vad jag har läst så är LG:s UI väldigt omoget. Pröva att roota telefonen, med t ex Cyanogenmod: http://www.cyanogenmod.com/devices/lg-o2x

Visa signatur

i7-10700K + Corsair H90 | ASUS Z490-F | 32GB | ASUS 3080 TUF OC | SSD 3*512GB + 500GB + 128GB | HDD 3TB | Phanteks P400S | Corsair AX850W | 34"+27"+24" | Corsair K95 RGB | Logitech G900 | Sennheiser RS 175

Permalänk
Medlem
Skrivet av kabex:

Det är du inte ensam om att vilja, har en kompis med samma telefon, och han hatar den. Däremot har jag två kompisar som är väldigt nöjda med sina SGS2, och jag gillar min HTC Desire (Sensation på ingång).

Vad jag har läst så är LG:s UI väldigt omoget. Pröva att roota telefonen, med t ex Cyanogenmod: http://www.cyanogenmod.com/devices/lg-o2x

Jag har rootad telefon nu men det är ju så nedrans ostabila roms där ute för just LGn så det blir att köpa ny telefon framöver så kan jag ha denna skräp telefonen som handhållen spel o nöjjes maskin typ som ett "psp" fast i fail format.

Visa signatur

CPU: I7 8086K MOBO: Asus Rog Strix Z370-F GAMING PSU: Corsair HX850i 850W GFX: ASUS eForce RTX 2080 Ti 11GB DUAL OC DISC: M.2 960 RAM: 16 Gig Corsair 2666Mhz DISP: Predator XB1 27" gaming XB271HU CASE: Fractal Design Define R6 OS: Win 10 x64

Permalänk
Medlem
Skrivet av Sachankara:

Det verkar vara en del förvirring och missförstånd på och hur Android fungerar till skillnad från Meego.

1. Kodar man C/C++-applikationer i Android genom NDK så körs de native precis som på Meego (båda använder gcc och glibc). Den enda skillnaden är att binären paketeras i en apk på Android, precis som med dalvik-bytekoden; samt att man måste ha en java-main som kickar igång ens riktiga binär.

Nej, C/C++ koden kompileras till Dalvik bytekod och körs på en VM, det körs alltså inte som native kod.

"If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change."

http://developer.android.com/sdk/ndk/index.html

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Skrivet av MagnusL:

Nej, C/C++ koden kompileras till Dalvik bytekod och körs på en VM, det körs alltså inte som native kod.

"If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change."

http://developer.android.com/sdk/ndk/index.html

Nej, den kompileras inte till bytekod. Det står t.o.m. i en av länkarna som finns på sidan till det du länkade in:

"The NDK provides:

* A set of tools and build files used to generate native code libraries from C and C++ sources

...

The latest release of the NDK supports these ARM instruction sets:
ARMv5TE (including Thumb-1 instructions)
ARMv7-A (including Thumb-2 and VFPv3-D16 instructions, with optional support for NEON/VFPv3-D32 instructions)
x86 instructions (see CPU-ARCH-ABIS.HTML for more information)"

Hade det varit bytekod så hade NDK:t inte haft information om vilka instruktionsuppsättningar som stöds.

Däremot är dalvik helt ansvarig för att köra igång binärerna. De packas fortfarande i apk-filer och behöver en java-main som kan dra igång binären.

Är du förresten fortfarande tveksam så är det bara att skapa en NDK-applikation, extrahera binären och sedan köra följande i en linux-terminal:

$ readelf -h namnetpåminbinär