Android
Merkwürdige Geschäftsbedingungen für Android Market
Darüber berichtet Heise:
Ein Entwickler, der sein Produkt aus dem Market aus unterschiedlichen Gründen (z.B. aufgrund von Urheberrechtsverletzungen) zurückzieht, muss alle Einkünfte, die er innerhalb eines Jahres, bevor die Software entfernt wurde, an die Endverbraucher, die für das Produkt gezahlt haben, zurückerstatten.
Vielleicht ist das aber gar nicht so falsch. Wenn ich mit Nacktbildern von Angela M. richtig viel Kohle mache, dann aber wegen unsittlichen urheberrechtlich geschützten Privatfotos meine App zurückziehen muss, habe ich dann schon auf dem Rücken von Angela M. (oh, ja, welch’ Bild) viel verdient. Bin gespannt, wie sich das entwickelt.
Kommen jetzt die Androids?
Vor nicht all zu Langer Zeit kam Google mit Android 2.0 um die Ecke und nun kommt es mir vor, dass alle möglichen Hersteller Android-Geräte ankündigen. Heise gibt nun auch ein Handy von LG an. Damit wächst die Liste der Android-Handys auf 13. Einige sind jedoch nur Ankündigungen doch ich bin überzeugt, es werden mehr. Es wäre Zeit, nun ein Android-Buch zu schreiben …
iPhone-Applikationen mit Java entwickeln (XMLVM)
Ein großartiges Projekt ist http://www.xmlvm.org/. Es steht zwar erst am Anfang, aber der sieht sehr vielversprechend aus. Die Idee von XMLVM ist einfach: Man nehme den Bytecode, repräsentierte diesen als XML, transformiere den über XSLT in Objective C und kompilieren dann.
(Bilder von der Webseite)
Die Stack-Operationen vom Java-Bytecode werden über XSLT einfach in Objective C abgebildet, wobei die Stack-Operationen beibehalten werden. Die Mühe über einen internen AST oder so macht man sich nicht.
<xsl:template match=“jvm:irem“>
<xsl:text>
_op2.i = _stack[–_sp].i; // Pop operand 1
_op1.i = _stack[–_sp].i; // Pop operand 2
_stack[_sp++].i = _op1.i % _op2.i; // Push remainder
</xsl:text>
</xsl:template>
Das gibt zwar für den GCC ‘ne Menge zu optimieren, aber das ist der einfachste Weg der Transformation. Später sieht das dann so aus:
@interface org_xmlvm_test_HelloWorld : java_lang_Object
+ (void) main___java_lang_String_ARRAYTYPE :(NSMutableArray*)n1;
@end
@implementation org_xmlvm_test_HelloWorld;
+ (void) main___java_lang_String_ARRAYTYPE :(NSMutableArray*)n1
{
XMLVMElem _stack[2];
XMLVMElem _locals[1];
int _sp = 0;
XMLVMElem _op1, _op2, _op3;
int _i;
for (_i = 0; _i <1; _i++) _locals[_i].o = nil;
NSAutoreleasePool* _pool = [[NSAutoreleasePool alloc] init];
_locals[0].o = n1;
_op1.o = [java_lang_System _GET_STATIC_java_lang_System_out];
_stack[_sp++].o = _op1.o;
_stack[_sp++].o = @“Hello World“;
_sp -= 2;
[((java_io_PrintStream*) _stack[_sp].o) println___java_lang_String:_stack[_sp + 1].o];
[_pool release];
return;
}
@end
Weitere Beispiele gibt http://xmlvm.org/showcase/ und der Blog http://www.cokeandcode.com/aboidblog.
Insgesamt ein sehr spannendes Projekt, welches auch die Frage Android –> iPhone Entwicklung angeht, und .NET -> Java Cross-Compilation bietet. Mal sehen, wie sich das Entwickeln wird. MONO für iPhone ist auch bald bereit und dann wird iPhone Entwicklung wirklich einfach. (Bekommen wir dann noch mehr Schrott im Store?)
Über die Sicherheitsarchitektur von Google Android
Vom 25.-30. Juli lief in in den USA die Sicherheitsmesse Black Hat. Dort hat Jesse Burns in einem Vortrag die Sicherheitsarchitektur von Android vorgestellt. Sein Paper dazu kann man hier (alternativ unter http://www.isecpartners.com/files/iSEC_Securing_Android_Apps.pdf) runterladen.
Weiterhin lesenswert ist
Java ME Anwendungen nach Android portieren
Das schafft das J2ME Polish-Projekt Janus + Zusatzbiblitotheken. Heise hat das Produkt kurz in den News vorstellt.
Das erste Android Programm
Im Moment gibt es ein großes Rumgezampel wegen der NDA von Apple bei der Entwicklung von iPhone-Applikationen und das, was es als Applikationen in den Apple App Store darf und was nicht
- http://www.heise.de/newsticker/Programmierer-kritisieren-Apples-App-Store–/meldung/115950
- http://www.alleyinsider.com/2008/9/apple-s-iphone-developer-nda-kills-book-for-iphone-developers
Google macht das mit Android besser, da hier alles frei sind wird und auch jede Applikation in den Store kommt. Und ein erstes Programm ist schnell aufgebaut:
- Gehe auf http://code.google.com/android/download_list.html.
- Lade unter Windows zum Beispiel android-sdk-windows-1.0_r1.zip. Entpacke das Zip, etwa nach C:\Program Files\Java\android-sdk-windows-1.0_r1.
- Installiere über den Eclipse Update-Manager das Plugin unter der URL http://dl-ssl.google.com/android/eclipse/. Das dauert! Starte Eclipse neu.
- Unter Window > Preferences > Android trage das Verzeichnis C:\Program Files\Java\android-sdk-windows-1.0_r1 ein.
- Gehe auf http://code.google.com/android/intro/hello-android.html und führe die Schritte für ein neues Android-Projekt durch.
- In die generierte onCreate()-Methode setzte rein:
- Starte die Applikation wie unter http://code.google.com/android/intro/hello-android.html#run beschrieben im Emulator. Das dauert leider sehr lange!
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);