Posts Tagged: API


17
Jun 11

(English) Android Port of the CloudMade API

Leider ist der Eintrag nur auf English verfügbar.


7
Jun 11

(English) A Generic ListView and Spinner Adapter for Java Collections

Leider ist der Eintrag nur auf English verfügbar.


27
Mai 11

(English) Playing Animations in Android

Leider ist der Eintrag nur auf English verfügbar.


13
Mai 11

Selbstdefinierte Parcelable Objects während eines Android AIDL RPC / IPC Aufrufs benutzen

In meinem letzten Beitrag “Using the Android Interface Definition Language (AIDL) to make a Remote Procedure Call (RPC) in Android” habe ich die Grundlagen erläutert, wie die Kommunikation zwischen Prozessen in Android umgesetzt werden kann. Jetzt werden wir einen Blick auf ein Spezialgebiet in diesem Bereich werfen: Parcelables als Parameter einer AIDL Methode.

Wie im letzten Beitrag beschrieben, ist es möglich, entweder primitive Java Typen innerhalb einer Remote-Method Signature oder irgendeine Klasse, die das android.os.Parcelable Interface implementiert, zu benutzen. Über dies Interface ist es möglich, beliebig komplexe Datentypen zu definieren, die als Parameter oder Rückgabewerte von Methoden während eines Remote Method Aufrufs genutzt werden können.

Ich habe eine modifizierte Version des ersten Beispiel-Apps kreiert, um Ihnen ein einfaches Beispiel zu geben, das ein Parcelable Object als Methoden-Rückgabewert nutzt. Das Beispiel besteht aus einem Service, der ein Parcelable Message Object erzeugt, das die aktuelle Systemzeit sowie das Erscheinungsbild des Textes, wie Farbe, Größe und Stil, enthält. Im zweiten Teil des Beispiels finden Sie eine Activity, die mit dem AIDL IPC ein solches Message Object erzeugt, um die aktuelle Uhrzeit anzuzeigen. Die entsprechenden Projekte sind AIDLRemoteClientUsingParcelableObject für das Client-Projekt (enthält die Activity) und AIDLRemoteMessageServiceUsingParcelableObject für den Server (enthält den Service).


26
Apr 11

In Android einen Remote Procedure Call (RPC) mit der Android Interface Definition Language (AIDL) durchführen

Es gibt verschiedene Möglichkeiten, mit einem Service zu kommunizieren. Ein häufig gebrauchter Ansatz ist die Verwendung von Intents, wobei der Service entsprechend der durchgeführten Intent-Action reagieren kann. Dies ist einfach zu realisieren, aber wenn der Service viele verschiedene Operationen definiert, kann der resultierende Code sehr komplex und dadurch nur schwer wartbar werden. Wenn Intents verwendet werden, muss der Entwickler sich außerdem immer darum kümmern, die Parameter zu dem Intent hinzuzufügen; und nachdem das Ergebnis empfangen wurde, müssen die Ergebnis-Parameter aus dem Intent extrahiert werden. Dies führt zu einem erhöhten Programmier-Overhead innerhalb des Clients wann immer eine Remote-Funktionalität aufgerufen wird, was zu fehleranfälligem Code führen kann.

Zur Vermeidung dieser Nachteile kann der integrierten Remote Procedure Call (RPC) Mechanismus von Android verwendet werden. Zur Demonstration der Verwendung von RPCs in Android habe ich ein einfaches Beispiel erstellt. Dieses Beispiel besteht aus zwei Apps, wobei das erste einen Service und das zweite eine Activity enthält. Die Activity verbindet sich mit dem Service mit Hilfe des Android-RPC-Mechanismus und fordert einen string vom Service an. Continue reading →


13
Apr 11

Android Activities und Services in mehreren Projekten verwenden

Bei der Entwicklung von Anwendungen für das Android OS kommt es vor, dass allgemeine Activities oder Services mit wenig Änderungen in weiteren Anwendungen wieder verwendet werden könnten. Da Sie diese Klassen nicht in jedes einzelnen Projekt kopieren möchten – was zu einem kaum handhabbarem Code führen würde – wäre es besser, einen Weg zu finden, den Quellcode dieser Klassen aus weiteren Projekten heraus zu referenzieren. Für Nicht-Android-Anwendungen kann man das Problem lösen, indem man den Code in mehrere Bibliotheken aufteilt, so dass die gewünschte Funktionalität von mehreren Projekten referenziert werden kann. Solange keine Interaktion mit externen Ressourcen nötig ist, ist das auch in Android Projekten ohne weiteres möglich (erstellen Sie ein jar und referenzieren Sie es in den Projekten). Aber wenn Sie mit externen Ressourcen arbeiten, können diese Klassen nicht innerhalb einer Bibliothek verwendet werden, weil das Android SDK keine passenden IDs innerhalb der “R”-Klasse für externe Ressourcen erzeugt, die in einer referenzierten jar-Datei enthalten sind.

In diesem Beitrag möchte ich Ihnen verschiedene Lösungen für dieses Problem zeigen, wodurch Sie vermeiden können, den Quellcode in die Projekte zu kopieren. Continue reading →


18
Mär 11

Using custom layouts for “Spinner” or “ListView” entries in Android

Today we are going to take a look at custom entries for a Spinner or ListView. Android allows the developers to create custom layouts for the entries in a Spinner or ListView. Using this mechanism it’s possible to implement highly customized designs for the default GUI elements such as the spinner. For example it’s possible to implement a spinner with entries consisting of an image and of multiple lines of text. In this post I will explain the three steps required to implement this functionality using the Query Contacts App from my previous post. In this App I’ve implemented a Spinner with custom entries to display the contact photo together with the contact name embedded in a single entry. Furthermore each element of the ListView which is used to display the details of the contact contains two lines of text. Continue reading →


14
Mär 11

Working with the “ContactsContract” to query contacts in Android

When I was looking at the official example on the Google Android Developers site for accessing content providers in Android (http://developer.android.com/guide/topics/providers/content-providers.html) I found an outdated example to query contacts which is using deprecated fields in the Android API. As I’ve seen quite some developers who are still relying on that deprecated example to implement their functionality even when using the newer API levels I’ve decided to post an example which is using the new way suggested in the Android API.

Query Contacts AppTo demonstrate the features of the new API the example App is querying all available contacts on the phone and additionally commonly used information from the contacts content provider such as the name, phone numbers, email addresses and of course the photo.