2012-07-29

validateTree()

Heute habe ich mal wieder einen Post aus der Kategorie unnötige Fehler. Das Ganze begann damit, dass der Auto-Updater von Java auf dem Rechner meiner Frau eine Version von Java 7 installiert hat. Moni benutzt gelegentlich mein Programm VasenBank. Und die wollte plötzlich nicht mehr starten. Das sind die Momente, in denen man sich verwundert am Kopf kratzt.
Zwinkerndes Smiley
Der Grund des Absturzes war nach dem Aktivieren des Loggings natürlich schnell gefunden.
Screenshot: Auszug aus Logdatei
Die VasenBank ruft die Methode validateTree() auf. Und deren Implementierungen unterscheiden sich zwischen Java 6 und 7 in einem wichtigen Punkt. In Java 7 lautet die erste Anweisung: checkTreeLock();.
Screenshot: die Methode checkTreeLock()
Man könnte nun natürlich auf Oracle schimpfen… Wenn die schon sonst nichts mehr an Swing verbessern, brauchen sie auch hier nicht mehr zu schrauben.
Zwinkerndes Smiley
Aber gut, erstens gehört die Klasse Container zum AWT. Und zweitens gibt es in der Doku zu Java 6 schon folgenden Hinweis: Synchronization should be provided by the method that calls this one. Der eigentliche Fehler liegt also im schlampigen Lesen der Doku. …also einer aus der Rubrik unnötig. …und wie beheben wir das Ganze nun?
synchronized(getTreeLock()) { validateTree(); }

2012-07-28

Google Now

In meinem Post über Sound Search hatte ich mich darüber beklagt, dass immer wieder Funktionen Einzug in Android halten, die außerhalb der USA nur eingeschränkt nutzbar sind. Sound Search erkennt im Hintergrund abgespielte Musik und bietet den Kauf in Google Play an. Musik und Filme kann man derzeit aber in vielen Ländern nicht über Google Play beziehen. Deshalb bietet das Widget zumindest jetzt keinen Mehrwert (außer vielleicht, Name und Interpret anzuzeigen). Zugegeben, der internationale Lizenzerwerb ist schwierig, aufwendig und teuer. Und letztlich zeigt auch der Blick rüber zu Apple und Amazon, dass man dort vor den gleichen Herausforderungen steht. Meine Frage an dieser Stelle ist: gibt es denn bei den Kernfunktionen nichts mehr zu verbessern?
Google scheint diese Frage zu bejahen, denn Jelly Bean hat mit Google Now einen (zumindest in der Theorie) mächtigen Assistenten erhalten. Die Idee ist verlockend: das Gerät kennt die Vorlieben und Gewohnheiten seines Anwenders oder seiner Anwenderin und zeigt genau die Informationen an, die gerade wichtig sind. Am Flughafen das Gate des gebuchten Fluges, an der Bushaltestelle die Abfahrtszeiten, im Restaurant die Speisekarte – Sie sehen das Muster. Lassen Sie uns einen Blick auf die Oberfläche werfen. Praktisch finde ich, dass Google Now jederzeit durch Wischen vom unteren Displayrand nach oben gestartet werden kann.
Screenshot: Google Now Übersichtsseite
Google Now arbeitet mit Karten – derzeit ist nur eine davon zu sehen. Die Einstellungen einer Karten erscheinen nach Antippen des Menüsymbols in der rechten oberen Ecke der Karte.
Screenshot Einstellungen der Wetter-Karte
Vielleicht haben Sie im ersten Screenshot bemerkt, dass man mehr Karten anzeigen kann. Unglücklicherweise passiert dann sehr oft… nichts. Das hat mit einem Kernproblem zu tun, das Google Now – Sie ahnen es – außerhalb der USA hat. Noch sind nicht alle Karten bei uns verfügbar. Welche es werden können, zeigt die App schon, in Gestalt einer Liste von Beispielkarten.
Screenshot: Liste von Karten
Über einen zentralen Einstellungsdialog kann man vorhandene Karten konfigurieren.
Screenshot Einstellungen
Außer der Wetter-Karte hatte ich schon Hinweise auf die Verkehrslage sowie Erinnerungen an Termine. Nicht eben viel, aber immerhin ein Anfang… Natürlich hat Google betont, die Liste der Karten erweitern und global verfügbar machen zu wollen. Ob sich dies als einfacher herausstellt als der weltweite Lizenzerwerb von Musik und Filmen, muss sich zeigen.
Zwinkerndes Smiley
Wenn Sie noch mehr über Neuerungen in Jelly Bean wissen möchten, kaufen Sie am besten die iX 8 August 2012. Der Artikel ab Seite 66 Auf Butterfahrt ist von mir…

2012-07-21

Sound Search

Eine der Neuerungen in Jelly Bean ist Sound Search, ein Widget für den Home Screen.
Screenshot: Sound Search
Sound Search erkennt Musikstücke, die als Hintergrundgeräusche über das Mikrofon aufgenommen werden, und tritt somit in Konkurrenz zu Shazam oder SoundHound. Nach dem Antippen des Widgets startet die Erkennung.
Screenshot: Erkennungsvorgang
Screenshot: ein Titel wurde erkannt
Da Google Play zumindest in den USA auch Zugriff auf Musik bietet, verwundert es nicht, dass man nach dem Antippen des gefundenen Titels dorthin geleitet wird. Das sieht derzeit so aus:
Screenshot: Auswahl der App
Wenn sich unter Android mehrere Apps für bestimmte Inhalte zuständig fühlen, erscheint diese Auswahl. Sie wurde in Jelly Bean geringfügig überarbeitet; frühere Versionen zeigten die Apps noch in einer Liste mit kleinen Icons. Wählt man hier den Play Store, gelangt man nur zur Startseite von Google Play. Vom erkannten Song ist nichts zu sehen. Warum das so ist, erfährt man, wenn man sich für den Browser entscheidet:
Screenshot: Hinweismeldung im Browser
Sie erinnern sich vielleicht, dass ich in meinem Posting Wenn Inhalte die Verbreitung einschränken über den Erfolg des Nexus 7-Tablets sinniert hatte. Derzeit hat Google in Bezug auf Inhalte außerhalb der USA weder gegen Amazon noch gegen Apple eine Chance. Wann Amazon sein Angebot an Musik Kunden in anderen Ländern zugänglich macht, ist noch unbekannt. Immerhin wird der Appstore im Laufe des Sommers in Europa verfügbar sein.
Egal ob man nun ein Fan des angebissenen Apfels ist oder nicht, ist anzuerkennen, dass Cupertino zumindest versucht, Features schnell in vielen Ländern zur Verfügung zu stellen. Ich finde Funktionen, die irgendwie da sind und dann doch wieder nutzlos bleiben, jedenfalls zunehmend ärgerlich. Und davon hat Jelly Bean ja noch mehr an Bord.

2012-07-14

Android File Transfer

Normalerweise schließe ich mein Galaxy Nexus mittels USB an den Rechner an, weil ich meine Apps debuggen möchte. Da sich im Laufe der Zeit etliche Fotos angesammelt haben und bald das Update auf Jelly Bean ansteht, wollte ich die Bilder kürzlich auf meinen Mac übertragen, um sie (für alle Fälle) in Sicherheit zu bringen. Kein Problem, USB-Massenspeicher ist ja sowohl für Android als auch für Mac OS X kein Fremdwort. Also, einfach die beiden Geräte verbinden und…
Screenshot: USB-Verbindung
Fällt Ihnen etwas auf? Mir zunächst auch nicht. Bis ich mich gewundert habe, warum mein treuer Mac kein Laufwerkssymbol für den USB-Massenspeicher anzeigt. Natürlich weiß ich, was Sie jetzt sagen – “Steht da was von USB-Massenspeicher?” Nein, natürlich nicht.
Smiley
Soviel zum Thema selektive Wahrnehmung. Nach kurzer Recherche war klar, dass Android (natürlich) weiterhin Unterstützung für USB-Massenspeicher bietet, nur nicht auf dem Galaxy Nexus. Dan Morrill hat Engadget erklärt, warum das so ist. Und, dass alternativ MTP genutzt wird. Was das Media Transfer Protocol genau ist und tut, entnehmen Sie bitte dem korrespondierenden Wikipedia-Eintrag. Dort wiederum ist zu lesen, dass es unter Mac OS X keinen nativen Support für dieses Protokoll gibt. Gut, das wussten wir schon.
Zwinkerndes Smiley
Glücklicherweise gibt es von Google das Programm Android File Transfer.
Screenshot der Webseite www.android.com/filetransfer/
Die Anwendung wird Mac-typisch als .dmg-Datei zur Verfügung gestellt. Nach dem Mounten des Diskimages wird das Bundle einfach in das Programme-Verzeichnis kopiert.
Screenshot: gemountetes Diskimage
Das Hauptfenster zeigt Dateien und Verzeichnisse in der üblichen Listenform an.
Screenshot: Hauptfenster vonAndroid File Transfer

2012-07-01

Wenn Inhalte die Verbreitung einschränken

Erwartungsgemäß hat Google auf seiner I/O ein eigenes Tablet, das Nexus 7, vorgestellt. Der Suchmaschinenprimus betonte, dass viele Inhalte für das Gerät vorhanden sein werden. Damit eifert Mountain View natürlich Apple und Amazon nach. Beide haben für ihre Geräte Ökosysteme etabliert, die nicht nur Apps, sondern auch Musik, Filme, Bücher und Zeitungen/Zeitschriften beinhalten. Aber nur Apple hat es bisher geschafft, sein Angebot außerhalb der Vereinigten Staaten zur Verfügung zu stellen.

Zumindest der Anwendungsladen soll Amazon-Kunden außerhalb der USA ab diesem Sommer zur Verfügung stehen. Ob weitere Angebote folgen und ob auch der Kindle Fire oder ein Nachfolger dazu gehören, muss sich noch zeigen. Google hat also am meisten Nachholbedarf. Und ein Verkauf des Nexus 7 hier bei uns ist derzeit nicht absehbar. Die eigentliche Hardware oder das zugrunde liegende Betriebssystem treten somit zunehmend in den Hintergrund. Entscheidend für den Erfolg ist die Breite des Angebots. Außerhalb Amerikas kann derzeit niemand Apple Paroli bieten.

Wie wichtig sind Ihnen Inhalte (außer Apps)? Hat Android im Tablet-Markt eine Chance? Schreiben Sie mir.