Tagged “android”

ZTE Blade: Preisgünstiger Einstieg in die Android-Welt

Published by cybso on

This is a post from my original site, which was hosted by the former blog service of the University of Osnabrück. I have moved it to the new site for archiving. Pages linked in this article may no longer work today, and the blog comments under the article no longer exist. Opinions expressed in this article reflect the point of view of the time of publication and do not necessarily reflect my opinion today.

Dies ist mein neustes Spielzeug:

zte-blade-verpackung

Ein Android-Handy namens ZTE Blade, dass von Orange in Großbritanien und in der Schweiz unter dem Namen San Francisco zum absoluten Kampfpreis angeboten wird. Zusammen mit der obligatorischen Prepaid-Karte kriegt man es zum Beispiel beim schweizer Orange-Ableger "ok,-" für 115 CHF, was derzeit nur etwa 90 EUR sind! Ein vergleichbares Gerät wie das LG P500 Optimus One ist nicht unter 200,- EUR zu bekommen.

In Deutschland vertreibt Base das Gerät als BASE Lutea zusammen mit einem 2-Jahres-Vertrag für 14 EUR monatlich - doch mal ehrlich, wer will schon im E-Plus-Netz dauerhaft ins Internet gehen ;-)?

Die Hardware

Für sein Geld krieg man dann ein 113 Gramm leichtes Multi-Touch-Smartphone mit hellem 3,5" TFT-Display (frühere Versionen hatten ein AMOLED-Display) mit einer für diese Preisklasse ungewöhnlich hohen Auflösung von 480x800 Pixeln. Eine 600 MHz-ARM-CPU, 512 MB RAM, 150 MB Speicher, 2 GB Micro-SD, WLAN, Bluetooth, GPS, Radio und eine 3,2 Megapixel-Kamera (Lutea: 5 MP) runden das ganze ab. Technisch ist es daher am ehesten mit dem erwähnten P500 vergleichbar, dass zwar mit einem schlechterem geringer aufgelöstem Display aufwartet, gefühlt jedoch ein kleines bisschen performanter scheint.

zte-blade-overview

Unterm Display befinden sich die drei Tasten "Home", "Menü" und "Zurück". An der rechten Seite finden sich Tasten für die Lautstärke, und an der Oberseite die Einschalt- und Standby-Taste. Direkt daneben eine 3,5mm-Klinkenbuchse. Die Micro-B USB-Buchse, über die das Blade auch geladen wird, liegt oben links. Die Verarbeitung ist ordentlich. Das Plasikgehäuse schließt gut ab, die Tasten lassen sich ordentlich drücken. Einzig die Lautstärketasten knarzen ein wenig, aber das ist in dieser Preisklasse zu verschmerzen. Zwar liest man in Foren von einem relativ hohen "Ausschuss", aber zumindest ich hatte Glück: Mein Display hat keinen erkennbaren Pixelfehler.

Das Blade wird in allen mir bekannten Varianten mit Simlock ausgeliefert. Nach dem Einlegen einer fremden Simkarte erscheint auf dem Display die Aufforderung, den Entsperrcode einzugeben. Netterweise scheint man sich beim Hersteller nicht viel Mühe mit dem Algorithmus gegeben zu haben; auf leicht über eine Suchmaschine auffindbaren Seiten gibt man die IMEI seines Geräts ein und erhält einen funktionierenden Freischaltcode. Selbstverständlich sollte man dann nicht mehr auf Garantie oder Gewährleistung hoffen, aber bei dem Preis ist auch ein Totalausfall zur Not noch verschmerzbar. Auch das Rooten des Phones ist mit dem Universal Androot-Tool beängstigend einfach.

Kommen wir zur Software:

Das Blade wird mit einem gebrandeten Android 2.1 ausgeliefert. Für die chinesische Variante ist offenbar ein Firmware-Upgrade auf Froyo in Arbeit, aber es ist unwahrscheinlich, dass es von Base oder Orange übernommen und angeboten wird - für einen solchen Service dürfte die Gewinnspanne zu klein sein. Aber dafür gibt's ja schließlich die Community, die aus den Alpha-Versionen der chinesichen Firmware gleich ein ganzes Bündel Custom-ROMs für jeden Geschmack gebaut hat. Hier gilt natürlich erst recht, dass das Upgrade auf eigene Gefahr geschieht und hinterher jeder Garantie- oder Gewährleistungsanspruch verwirkt sein dürfte.

zte-blade-155Meine Erfahrungen in Bezug auf die Software und die Akku-Laufzeit beziehen sich auf das Custom-ROM FLB-Froyo G2 for ZTE Blade von Fibblesan. Damit läuft das Handy sehr flüssig, nur unter Last oder in den komplexeren Leveln von Angry Birds reagiert es deutlich verzögert. Auch in diesem Bereich ist es also mit dem P500 von LG vergleichbar. Der Akku hält für mein Gefühl aber erstaunlich lange durch, zwei bis drei Tage bei normaler Nutzung mit aktiviertem UMTS, WLAN und Bluetooth dürften durchaus realistisch sein. Ein echter Test steht noch aus, denn im Moment wird das Blade jedesmal geladen, wenn ich es per USB an mein Notebook hänge.

Ärgerlich ist ein kleiner Bug in der Firmware: Nach kurzer Zeit im Standby-Modus bricht die WLAN-Verbindung ab und wird auch nicht wieder aufgebaut. Als Workaround existiert im Market eine kostenlose App namens "Blade Wifi Fix", die nach der Rückkehr aus dem Standby den Status prüft und die Verbindung ggf. neu aufbaut. Inzwischen scheint jedoch das Hilfsprogramm "wpa_supplicant" als Verursacher ausgemacht zu sein - mit einer aus einer fremden Firmware kopierten Version scheint das Problem behoben zu werden.

Zubehör

Ein Headset wird mitgeliefert, aber jede Kopfhörer-Mikrofon-Kombination mit 4-poligem Klinkenstecker dürfte in Frage kommen. Die aufgeklebte Displayschutzfolie ist dagegen leider nicht mehr als ein Transportschutz und wird sich schnell ablösen. Wer sein Blade nicht in einer Handysocke aufbewahren will und kein hundertprozentiges Vertrauen in den Inhalt seiner Hosentaschen hat sollte über den Kauf einer Displayschutzfolie nachdenken.

Ich hab mich nach diversen Recherchen zunächst für eine Vikuiti / 3M DQC160 entschieden. Mit den Folien von Vikuiti habe ich schon sehr gute Erfahrungen bei meinem Notebook und meinem alten Nokia E51 gemacht, sie sind stabil, kommen ohne Klebstoff aus und sind relativ einfach anzubringen, eine staubfreie Umgebung vorausgesetzt. Ein Badezimmer nach dem Duschen bietet sich an, und zur vorherigen Reinigung des Displays legt man sich am besten ein sauberes Mikrofasertuch bereit. Der Preis ist zwar mit knapp 10 EUR recht hoch, doch sollte sie auch ein Handyleben lang halten. Leider kann ich zur DQC160 nur eines sagen: Für Touchscreens absolut unbrauchbar! Auf der Softwaretastatur die richtigen Buchstaben zu treffen oder über das Display zu sliden wurde zum Glücksspiel, so dass ich sie nach etwa 8 Stunden noch am selben Tag wieder entfernte.

Ich informierte den Händler, Schutzfolien24.de, über das Problem und erhielt zwei Tage später kostenlos eine Vikuiti ADQC27-Folie zugesandt. Meine anfängliche Skepsis verflog schon wenige Sekunden nach der problemlosen Anbringung: Sie ist perfekt! Absolut passgenau geschnitten und ohne irgendeine spürbare Beeinträchtigung der Touch-Funktionen. Darüber hinaus ist sie kristallklar und optisch praktisch nicht wahrnehmbar. Die ADQC27 kann ich also absolut jedem Empfehlen, der eine Schutzfolie für sein Smartphone sucht. Und Schutzfolien24.de auch, kostenlosen Versand auf Rechnung bei Neukunden und dazu so ein guter Support findet man heutzutage ja leider nur noch selten im Internet :-)

Fazit

Natürlich erhält man für ca. 100 EUR kein Desire oder Galaxy, aber für die tägliche Smartphone-Arbeit mit Android ist es perfekt geeignet. Wer einen günstigen Einstieg in die Android-Welt sucht, der kann bei diesem Gerät bedenkenlos zugreifen! Die Bereitschaft das Orange bzw. Base-Netz zu nutzen oder das Handy unter Verlust der Garantie für andere Netze freizuschalten natürlich vorausgesetzt.

Danke an Ralf für den Tipp und an Yannick für die Hilfe beim Kauf!

Make Android's Pinch Zoom-Feature more Accessible

Published by cybso on

Since I'm getting older I often need to pinch zoom into web pages to make the text more readable.
However, Android (or Chrome) has the annoying "feature" to enlarge the whole viewport when zooming into a web page, forcing the user to scroll horizontally through the page to read the text:

Screenshot of an article from this blog, with pinch zoom enabled. The text is croped on the right side.

Currently it seems that there is no way to disable this behaviour from the developer's side using CSS or HTML. Although Chrome as a so-called reading mode I see this only as a workaround, since the user must know about this mode and must enable it manually for each single website – and does not work on all pages.

So I experimented a bit and found a JavaScript-based solution that is pretty simple. You need some sort of container for that you want to re-flow the text on pinch zoom (in this example the HTML element main), and it should have no margins when in mobile view. I also suggest to add overflow-wrap: break-word; to your CSS, since otherwise long URLs might break the layout.

Then insert the following JavaScript code at the end of your HTML file:

<script>
// Force Android's browsers to reflow content on pinch zoom
if (navigator.userAgent.match(/android/i) && window.visualViewport && window.visualViewport.scale) {
  let scaleTimeoutId = undefined
  window.visualViewport.addEventListener("resize", (() => {
    if (scaleTimeoutId != undefined) {
      window.clearTimeout(scaleTimeoutId)
    }

    // Apply changes if the value has not changed for more than 250ms to prevent flickering
    scaleTimeoutId = window.setTimeout(() => {
      scaleTimeoutId = undefined
      var scaleFactor = window.visualViewport.scale

      var main = document.getElementsByTagName('main')[0]
      if (scaleFactor > 1) {
        main.style.maxWidth = "" + Math.round(100/scaleFactor) + "%"
        // Add a CSS class that allows to do modifications on default styles,
        // like removing 'margin: auto'.
        main.classList.add('pinchzoom')
      } else {
        main.style.maxWidth = ''
        main.classList.remove('pinchzoom')
      }
    }, 250)
  }))
}
</script>

This uses the VisualViewport's scale property to set the maximum width of the container element to the scale factor's inverse value and thus force the browser to wrap the text along the actual viewport's size:

Screenshot of the same site as above, but now the text is wrapped on the screen borders

An issue of this method is that since the text gets rearranged it might flow out of the visual viewport. I've tried to workaround this problem by identifying the centered element of the visual viewport and scroll this into view after the 'max-width' style had been applied, but due to limitations on scrollIntoView() this is far from being perfect. See /js/reflow.js for the current full version if this code.

I don't know if this works on all Browsers, and if it does not have any other side effects, so I would be happy to get some feedback!