Jak zrychlit Android s Dalvik Jit

Návody No Comments »

Na AllDroid fóru se objevilo HOWTO na zrychlení Androidu s Dalvik Jit (Just in time compiler) pro milestone. Podle komentářů na Světu Androida funguje i na G1, takže hůrá na to.

V prvé řadě upozornění: Vše děláte na vlastní riziko. Tento článek je zde pouze pro pomoc těm, kteří se bojí angličtiny nebo zaváhali v některém kroku, nejsem autorem tohoto vylepšení.

Nezapomeňte si udělat zálohu, ideálně přes switchrom nebo podobné.

Pro jednoduchost předpokládám, že pracujeme na Linuxovém stroji, že máte připojenou G1 (nebo milestone, ostatní nevím jak na tom jsou) do USB a že máte příkaz adb v PATH (pokud napíšete adb a vypíše se vám nápověda, pak je to ok).

Všechny příkazy provádíme přímo na počítači, na telefon přistupujeme pro pohodlnost přes adb.

Nejdříve přepneme telefon do recovery módu, buď klasicky držením home při restartu nebo přes adb

adb shell 'reboot recovery'

Jakmile se telefon přepne do recovery módu, můžeme začít:

# nejdříve připojíme adresáře, které v recovery módu nemáme
adb shell 'mount /sdcard/'
adb shell 'mount /system/'
adb shell 'mount -o remount,rw /system/'

# vytvoříme si na adresáře pro soubory, stáhneme a rozbalíme
mkdir /tmp/jit
cd /tmp/jit
wget 'http://alldroid.org/download/file.php?id=1374' -O vmlibs.zip
unzip vmlibs.zip

# nahrajeme soubory na kartu do telefonu
adb shell 'mkdir /sdcard/jit'
adb push libdvm.so /sdcard/jit/
adb push libnativehelper.so /sdcard/jit/
adb push bin/dalvikvm /sdcard/jit/

Nyní pustíme adb shell a budeme pokračovat přímo na telefonu. Nejdříve zálohujeme přepisované soubory a následně nahrajeme upravenou verzi dalviku.

# spustime shell
adb shell

# udelame zalohu
mkdir /sdcard/dalvik_backup
cp /system/build.prop /sdcard/dalvik_backup/
cp /system/bin/dalvikvm /sdcard/dalvik_backup/
cp /system/lib/libdvm.so /sdcard/dalvik_backup/
cp /system/lib/libnativehelper.so /sdcard/dalvik_backup/

# a ted uz zacneme menit soubory
echo "dalvik.vm.execution-mode=int:jit" >> /system/build.prop
cp -f /sdcard/jit/dalvikvm /system/bin/
busybox chmod 755 /system/bin/dalvikvm
cp -f /sdcard/jit/libdvm.so /system/lib/
cp -f /sdcard/jit/libnativehelper.so /system/lib/
chmod 644 /system/lib/libdvm.so
chmod 644 /system/lib/libnativehelper.so
chmod 666 /system/build.prop
sync
mount -o remount,ro /system
reboot

A pokud budete mít štěstí a telefon nabootuje, měli byste poznat jasné zrychlení.

Já chci zpátky

Pokud chcete vše vrátit do původního stavu (pokud jste postupovali dle návodu výše), opět přejděte do recovery módu a použijte následující:

# spustime shell
adb shell
mount /sdcard/
mount /system/
mount -o remount,rw /system/
sed -i "s/dalvik.vm.execution-mode=int:jit//" /system/build.prop
cp -f /sdcard/dalvik_backup/dalvikvm /system/bin/
busybox chmod 755 /system/bin/dalvikvm
cp -f /sdcard/dalvik_backup/libdvm.so /system/lib/
cp -f /sdcard/dalvik_backup/libnativehelper.so /system/lib/
chmod 644 /system/lib/libdvm.so
chmod 644 /system/lib/libnativehelper.so
chmod 666 /system/build.prop
sync
mount -o remount,ro /system
reboot
Štítky:, ,

Magnet linky, RSS a další v GNOME a Google Chrome

Krátké tipy No Comments »

Pokud jste propadli Google Chrome stejně jako já, dříve či později narazíte na potřebu otevřít některé speciální URL schémata, jako např. magnet:// nebo častější feed:// (pro RSS linky).

Google Chrome má mě velmi sympatickou filozofii, ponechat co jde na systému, na kterém běží a neřešit vše speciálně. Takže stejně jako například při přidávání nového certifikátu i tady se musíte vrhnout na nastavení někde hlouběji.

Přidání URL schématu v GNOME

Jako většina věci, i tohle se samozřejmě dělá přes GConf. Stačí přidat správné klíče do cesty /desktop/gnome/url-handlers. Pro zjednodušení jsem si napsal krátký „skriptík“ add_url_handler, který stačí přidat někam do vaší cesty pro spouštění programů.

#!/bin/sh

gconftool-2 -t string -s /desktop/gnome/url-handlers/$1/command "$2 %s"
gconftool-2 -s /desktop/gnome/url-handlers/$1/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/$1/enabled true

No a teď už jen zavoláte pro jaké schéma se má nastavit jaký program. Pro dvě již uvedené je to například u mě takto

add_url_handler feed liferea-add-feed
add_url_handler magnet /usr/bin/fatrat
Štítky:, ,

Aktuální větev gitu v příkazové řádce

Krátké tipy No Comments »

Pokud často poletujete v příkazové řádce mezi více projekty, můžete se začít ztrácet v tom, jakou že větev máte aktivní v aktuálním adresáři.

Samozřejmě je možné napsat git branch pokaždé, když si nejste jisti, ale přeci jen programátoři jsou líné kůže a tak jsem si napsal drobné vylepšení.

Upozorňuji, že kód není zrovna optimální a v podstatě po každém příkazu znovu kontroluje, zda jste v gitu a jaká je větev, určitě by vše šlo vylepšit nějakou menší cache.

gitbranch() {
  if [ `git branch 2>&1| grep 'Not a git' | wc -l` -eq 0 ]; then
    git branch | grep '^*' | sed -r 's/^\* (.*)$/ [\1]/'
  fi
}

export PS1="$PS1\$(gitbranch)"

Důležitý je hlavně backslash před voláním funkce, v opačném případě by se příkaz vykonal pouze při definici proměnné a nevolal se znovu při změnách adresáře.

Samozřejmě dál si už můžete upravit proměnnou PS1 dle libosti, místo hranatých závorek dát cokoliv vás napadne a případně i použít nějaké barvičky.

Štítky:,

© 2003-2009 Kepi.cz | Webhosting | Powered by WordPress