Donnerstag, 14. Februar 2008

Android-SDK: Neuer Milestone (SDK-M5-RC14)

Auf den SDK-Milestone M3-RC37a vom 14.12.2007 folgt nun SDK-M5-RC14. Das neue Android-Upgrade beinhaltet Änderungen der Developer-Tools und der Android-API (siehe RELEASENOTES und API-Änderungen). Es gibt u.a. einige Neuerungen für Manifest-Dateien (AndroidManifest.xml). Z.B.

vorher (M3-RC37a):

<intent-filter>
  <action android:value="android.intent.action.INSERT"/>
  <category android:value=
      "android.intent.category.DEFAULT"/>
  <type android:value=
      "vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>

nachher (M5-RC14):

<intent-filter>
  <action android:name="android.intent.action.INSERT"/>
  <category android:name=
      "android.intent.category.DEFAULT"/>
  <data android:mimeType=
      "vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>

Auch wird innerhalb von XML-Layoutdateien das Attribut id durch android:id ersetzt.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id=id="@+id/layout"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <Button android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button1"/>
  
  ...
  
</LinearLayout>

Die SDK-Upgrade-Prozedur wird auf der Seite Upgrading the SDK beschrieben.

Sonntag, 10. Februar 2008

the Da Vinci Machine

Die Da Vinci Machine ist eine neue virtuelle Maschine!? Schaut man sich im Netz ein wenig um, fällt sofort der Untertitel "a multilingual renaissance for the Java Virtual Machine architecture" auf.

(Quelle: Wikipedia-Bild, public domain)

Sun Microsystems arbeitet an einer Weiterentwicklung der bekannten virtuellen Java-Maschine (JVM). Die JVM ist speziell auf die Programmiersprache Java zugeschnitten. Im Gegensatz dazu soll die Da Vinci VM sowohl Java als auch andere Sprachen besser unterstützen. Dabei sollen vor allem dynamische Sprachen mit der gleichen Effizienz wie die Programmiersprache Java selbst abgearbeitet werden können (zum derzeitigen Zeitpunkt gibt es eine Vielzahl von Programmiersprachen für die virtuelle Java-Maschine: http://robert-tolksdorf.de/vmlanguages.html).

Programmiersprachen wie z.B. Ruby, Perl oder Python werden als Skriptsprachen oder auch dynamische Sprachen bezeichnet. Stichworte sind hier "Static Typing" und "Dynamic Typing". Bei dynamischen Programmiersprachen erfolgt z.B. das Type Checking während der Laufzeit (Late Binding). Die derzeitige virtuelle Java-Maschine besitzt keine built-in-Unterstützung für "Dynamic Typing".

Fazit der JVM-Weiterentwicklung: Die Da Vinci Machine als universelle und effiziente VM, sowohl für Java als auch für zusätzliche Programmiersprachen.

Freitag, 8. Februar 2008

Applet: DroidDraw

Unter der Adresse droiddraw.org wird ein Applet zur Verfügung gestellt, mit dem online grafische Benutzeroberflächen (GUIs) für einen Android-Screen erstellt werden können.

DroidDraw ist in drei Bereich unterteilt. Auf der linken Seite ist ein Display des Android-Emulators dargestellt in dem per Drag and Drop einzelne grafische Elemente (Widgets) platziert werden können. Über der Display-Box kann das Grundlayout der Anzeige, z.B. LinearLayout, ausgewählt werden. Auf der rechten Seite im unteren Bereich kann anschließend der Button Generate betätigt werden, um das Layout im XML-Format zu erhalten. Die folgende erzeugte Beispielausgabe enthält als Grundlayout LinearLayout. Darin ist ein Button und ein ScrollView eingebettet. Innerhalb des XML-Elements ScrollView könnte z.B. ein TextView eingebettet werden. Bei entsprechend vielem Anzeigetext kann der Text dann gescrollt werden.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
id="@+id/widget27"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<Button
id="@+id/widget30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
>
</Button>
<ScrollView
id="@+id/widget29"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffffff"
xmlns:android="http://schemas.android.com/apk/res/android"
>
</ScrollView>
</LinearLayout>