Archiv der Kategorie: Android

Lustiger Android

Heute habe ich angefangen, mich mit CSS3 zu beschäftigen und dabei gerlernt, wie man einen kleinen Android designt. Er scheint recht gut drauf zu sein und man kann ihn sogar kitzeln ;)

Sollte in allen aktuellen Versionen der verbreiteten Browser funktionieren.

Selber ausprobieren

Im Folgenden beschreibe ich, wie ihr selbst einen Android bauen könnt. Es ist nicht sehr schwer :)

Bevor wir anfangen, müssen wir aber erst noch die Android-Farbe raussuchen: #A4C739

Zunächst wollen wir einen Android bauen, der nicht animiert ist. Wir nehmen dazu an, dass der Android in einem festgelegten Bereich mit absoluten Koordinaten positioniert wird.

Als Basis dient uns das Folgende:

.droid {
  position: absolute;
  bottom: 30px;
  right: 60px;
  height: 60px;
  width: 65px;
}

Nun folgt der Android:

.droid .torso {
  position: absolute;
  background:  #A4C739;
  width: 65px;
  height: 60px;
  border-radius: 0px 0px 10px 10px;
}
 
.droid .head {
  position: absolute;
  top: -32px;
  background:  #A4C739;
  width: 65px;
  height: 30px;
  border-radius: 65px 65px 0% 0%;
}
 
.droid .head .eye {
  height: 5px;
  width: 5px;
  border-radius: 5px;
  background: #333;
  position: absolute;
  top: 12px;
}
 
.droid .head .eye:nth-child(1) {
  left: 20px;
}
 
.droid .head .eye:nth-child(2) {
  right: 20px;
}
 
.droid .head .ear {
  height: 15px;
  width: 3px;
  border-radius: 15px;
  background: #A5C63B;
  position: absolute;
  top: -10px;
}
 
.droid .head .ear:nth-child(3) {
  left: 15px;
  transform: rotate(-30deg);
  -webkit-transform: rotate(-30deg);
  -moz-transform: rotate(-30deg);
  -o-transform: rotate(-30deg);
}
 
.droid .head .ear:nth-child(4) {
  right: 15px;
  transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  -o-transform: rotate(30deg);
}
 
.droid .leg {
  position: absolute;
  bottom: -27px;
  background:  #A5C63B;
  width: 15px;
  height: 27px;
  border-radius: 0px 0px 30px 30px;
}
 
.droid .leg:nth-child(3) {
  left: 12px;
}
 
.droid .leg:nth-child(4) {
  right: 12px;
}
 
.droid .arm1,
.droid .arm2 {
  left:68px;
  top:-3px;
  width: 15px;
  height: 40px;
  background: #A5C63B;
  position: absolute;
  border-radius: 25px;
}
 
.droid .arm1 {
  left:-18px;
  transform-origin: 54% 18%;
  -webkit-transform-origin: 54% 18%;
  -moz-transform-origin: 54% 18%;
  -o-transform-origin: 54% 18%;
}
Geschrieben von Kap. Zuletzt geändert am 20. November 2013.

Unendlich Leben in Candy Crush Saga

Einige von euch kennen es wohl, das Spiel Candy Crush Saga von King.com. Zunächst ein bei Facebook beliebtes Spiel, gibt es Candy Crush nun auch für Handys und Tablets. Nachdem ich dem Phänomen zunächst wie bei FarmVille und anderem Krams  eher beobachtend gegenüber gestanden habe, hat es mich nun auch erwischt.

Das Spielprinzip von Candy Crush ist süchtigmachend, bei der sonstigen Ausführung gibt es aber einiges zu bemängeln. Synchronisierung mit mehreren Devices ist nur über Facebook möglich. Das ist auch nicht so leicht zu umgehen, da die Savegames nicht auf der SD-Karte sondern im geschützen Ordner /data/data/com.king.candycrushsaga/app_storage gespeichert werden, auf den man nur auf gerooteten Geräten Zugriff hat.
Weiterer Minuspunkt sind die Nutzungsmodalitäten des Spiels. Zusätzlich zum nervenden „Feature“ der In-App-Käufe von Boni wie zusätzliche Züge, ist die Anzahl der Versuche auf 5 begrenzt. Immerhin regenerieren sich die Leben alle 30 Minuten. Alternativ kann man seinen noch-Freunden bei Facebook auf den Sack gehen und um Leben betteln. Das lässt sich jedoch recht einfach ändern. Es gibt hingegen keine Bezahlvariante des Spiels, in der man ganz Normal wie gewohnt spielen kann.

Ich übernehme keine Garantie dafür, dass das Folgende Vorgehen funktioniert. Ich übernehme keine Haftung für eventuell auftretende Schäden. Zur Durchführung muss das Gerät auf eigenes Risiko gerootet werden.

Es ist ratsam, vor dem Start eine Sicherung des Systems, zumindest von Candy Crush Saga durchzuführen (zum Beispiel mit Titanium Backup).

Manuelle Synchronisation

Nutzer ohne Facebook-Account haben ein Problem, wenn sie ihre Spielstände auf mehreren Geräten synchron halten wollen. Wenn man jedoch Root-Zugriff hat, ist das ganz einfach. Mit einem geeigneten Root-Dateimanager (zum Beispiel dem Datei Manager (HD-Version für Tablets) oder dem (kostenpflichtigen) Root Explorer kann man auf die Dateien save_0.dat und save_0.bak im Verzeichnis /data/data/com.king.candycrushsaga/app_storage zugreifen und sie so zwischen den Geärten austaustauschen, zum Beispiel via DropBox oder Wuala.

Extraleben

Nur etwas schwieriger stellt sich die Sache mit den Leben heraus. Als Voraussetzung benötigt man ein installiertes Candy Crush Saga. Wenn man seinen Spielstand behalten möchte, sichert man zunächst wie oben beschrieben die Spielstände. Zur Durchführung der Änderung wird einige Software benötigt:

  1. 7zip (oder vergleichbares Tool)
  2. ein Java JDK
  3. den apk-signer
  4. das Tool zipalign, das zum Beispiel im Android SDK enthalten ist

Nun muss man folgendes machen:

  1. Die Datei com.king.candycrushsaga.apk dem Verzeichnis /data/app/ auf den PC kopieren. Sie kann dabei zum Beispiel auf der SD-Karte zwischengespeichert werden.
  2. Das Spiel löschen.
  3. Die Datei mit 7zip als zip öffnen und aus dem Ordner assets/res die Datei tweakdata.prop extrahieren (zum Beispiel in ein Explorerfenster ziehen.
  4. Die Datei mit einem Editor öffnen und den Wert für lives.base.max auf 1337 ändern und speichern.
  5. Die geänderte Datei wieder in das 7zip-Fenster ziehen und die bestehende Datei ersetzen.
  6. Im Hauptverzeichnis in der .apk-Datei muss das Verzeichnis META-INF gelöscht werden. Hier ist die Signatur der unveränderten Datei gespeichert.
  7. den apk-signer öffnen und einen Schlüssel generieren. Dazu muss zunächst der Speicherort des Schlüssels gewählt werden, Passwörter und Aliase festgelegt werden. Da wir diese Änderung nur für uns selbst durchführen und die .apk-Datei nicht veröffentlichen, können wir hier irgendwas eintragen, solange das Passwort 8 Zeichen lang ist. Ein Name muss auch eingetragen werden. Ein Klick auf „Generate Keyfile“ erzeugt den Schlüssel.
  8. Mit diesem Schlüssel wird nun die geänderte .apk des Spiels signiert. Falls die Datei jarsigner.exe nicht im Suchpfad enthalten ist, muss der Pfad zum JDK-bin-Ordner gesetzt werden. (Das ist unter Windows bei Standardinstallationen der Fall). Die Schlüsseldatei muss ausgewählt werden, Passwörter und Aliase wie oben eingegeben und die unsignierte, veränderte .apk-Datei gewählt werden. Ein Klick auf „Sign!“ signiert dann die Datei. Falls der Pfad zur jarsigner.exe falsch ist, erscheint eine entsprechende Fehlermeldung.
  9. Die .apk-Datei muss nun noch ausgerichtet werden. Dafür muss auf der Kommandozeile das tool zipalign.exe aufgerufen werden. Der Aufruf sieht zum Beispiel so aus: D:adt-bundle-windows-x86_64sdktoolszipalign.exe -v 4 com.king.candycrushsaga.apk com.king.candycrushsaga-signed.apk. Der Pfad zum Android-SDK muss natürlich angepasst werden. Der zweite Dateiname ist die Ausgabedatei.
  10. Nun muss die signierte .apk auf das Android-Gerät zurückgespielt und installiert werden.
  11. Vorher erstellte Sicherheitskopieen können nach einem ersten Start in den alten Ordner zurückgespielt werden.

Mit 1337 Versuchen gibt es keinen Grund mehr, das Spiel aus der Hand zu legen.

Das Ergebnis: Viele Leben in Candy Crush

Bei diesem Vorgehen ist zu beachten, dass ab diesem Zeitpunkt keine Updates des Spiels mehr installiert werden. Nach einem manuellen Update muss man das Ganze nochmal durchführen.

Geschrieben von Kap. Zuletzt geändert am 20. November 2013.

Die Tastatur-Diktatur in Android

Schonmal gefragt, warum man mit Jelly Beans manche Sachen nicht schreiben kann? Zum Beispiel das harmlose Wort „kommen“. Swipe erkennt das Wort nicht, man kann es aber auch nicht zum Wörterbuch hinzufügen, weil es da schon drin ist (wie es sein sollte).

Nun, was ist der Grund? Es gibt eine Liste „Android LatinIME Profanity List for German (de)“ mit Wörtern, die nicht benutzt werden sollen. Im Sourcecode einer älteren Version konnte man schon sehen, dass diese Wörter nicht für das Lernen benutzt werden.

Bei genauer Betrachtung sieht die Liste ziemlich lächerlich aus. Man könnte annehmen, irgendein Trottel hat einfach eine amerikanische Liste genommen und auf Deutsch übersetzt. Anders ist nicht zu erklären, wie Wörter wie „kommen“ da drin stehen. Wenn man annimmt, dass im Original „cum“ stünde, würde es wenigstens ein marginales bisschen Sinn machen.  Aber auch der Großteil der Liste macht keinen Sinn, weil die Wörter hauptsächlich anders genutzt werden. Beispiele sind angekettet, ausgezogen, mist, reif, sandwich. Man denkt nur WTF??? Und was hat proxy da zu suchen?

Aber auch andere Wörter wie geil oder scheiße, die man ja normalerweise benutzt kommen mir Zweifel an der Sinnhaftigkeit der Liste, insbesondere da alle diese Wörter im Wörterbuch enthalten sind.

Bis hierhin ist es noch ganz lustig. Das Problem aber ist: wie kann man die Liste deaktivieren? Bisher gibt es dazu keine Einstellungsmöglichkeit. Man kann dieser Diktatur aber entgegenwirken: Für Wörter, die man öfter braucht und somit nicht immer manuell tippen will, hilft folgender Workaround:

  1. Einstellungen | Sprache & Eingabe | Persönliche Wörterbücher die gewünschte Sprache auswählen
  2. Auf das + oben rechts drücken
  3. Das gewünschte Wort eingeben
  4. Oben links auf „Ins Wörterbuch“ klicken
  5. Wort benutzen.

Noch krasser wird es übrigens, wenn man in betracht zieht, was man schreiben kann. Nunja, „Neger ficken“ ist ja auch nicht so schlimm wie „rüber kommen, das gemachte Sandwich abholen“ oder „eine Latte trinken gehen“ :facepalm:

 

Geschrieben von Kap. Zuletzt geändert am 12. Februar 2013.