Mój osobisty pogląd (może nie być odpowiedzią, której szukasz):
Dlaczego Android zużywa więcej energii?
Aplikacje na Androida wykorzystują wysoce zoptymalizowaną maszynę wirtualną Java firmy Google. Jeśli więc patrzysz z zewnątrz, aplikacja na Androida działa na maszynie wirtualnej, która znajduje się na prawdziwej maszynie. Więc faktycznie masz dwie maszyny zamiast jednej.
Za każdym razem, gdy aplikacja na Androida tworzy instrukcję, należy ją przetłumaczyć na natywny kod maszynowy z kodu pośredniego, a następnie wykonać przez CPU. To dodatkowy krok, który zużywa energię.
Charakter wewnętrzny Ubuntu Touch
Ubuntu touch nie ma narzutów wirtualnej maszyny Java. Może bezpośrednio uruchamiać programy binarne skompilowane dla procesora, całkowicie eliminując potrzebę tłumaczenia. Wiemy, że zużycie energii powinno być do pewnego stopnia mniejsze w Ubuntu Touch.
Jednak większość aplikacji Ubuntu Touch do tej pory używa interpretera o nazwie qmlscene
podobnej do wirtualnej maszyny Java. Te aplikacje nie są w formacie binarnym, ale są czytelne dla człowieka. Kod jest interpretowany do instrukcji procesora w czasie wykonywania. qmlscene
wpływ na wydajność jest mniejszy niż czas działania Java, ponieważ nie jest w to zaangażowana żadna maszyna wirtualna. Nie jest to system wymagający dużej mocy, ponieważ programiści QT sprawili, że jest on wyjątkowo wydajny.
Istnieje również wiele innych powodów dodatkowego zużycia energii. Obejmuje zarządzanie użytkowaniem 3G / 4G, usługi działające w tle itp. Ignorujemy takie fakty, ponieważ różnią się one w zależności od urządzenia. Fakty te są do pewnego stopnia kontrolowane przez system operacyjny.
streszczenie
Ubuntu touch najprawdopodobniej zużyje mniej energii niż Android. W chwili pisania tego tekstu nie jest to jeszcze zoptymalizowane. Będziemy musieli poczekać, aż wyjdą telefony.