autor: Zeppelinrox
Przede wszystkim --> dla posiadaczy Milestonów, macie tutaj ostatni kernel Froyo (2.6.32.9-g11068ed).
Uwaga: Jeśli działasz np. na Cyanogenmod 7 RC3 lub najnowszym FroyoModzie - posiadasz już ten kernel. 🙂
Oczywiście wszystkie poniższe czynności wykonujesz na własne ryzyko. Ani ja, ani Zeppelinrox ani Android.com.pl nie odpowiada za twoje poczynania.
Część 1. Jak kontrolować pamięć w systemie poprzez plik minfree.
Sprawa dotyczy wbudowanego w system automatycznego task-killera odpowiedzialnego za zamykanie aplikacji (głównie z powodu braku wolnej pamięci RAM).
W celu modyfikacji pliku minfree można użyć dwóch aplikacji:
Auto Memory Manager (AMM) lub AutoKiller Memory Optimizer (AKMO) .
Warto zaznaczyć, że nie są to tzw. "task-killery". To narzędzia służące do optymalizacji wbudowanego w system task-killera.
Edytują one plik /sys/module/lowmemorykiller/parameters/minfree
Minfree to dynamiczny plik tworzony w trakcie każdego uruchamiania systemu przy użyciu pliku /system/etc/init.d/99complete.
Więcej na ten temat znajdziecie tutaj
Android segreguje uruchomione aplikacje na podstawie sześciu priorytetów:
FOREGROUND_APP, VISIBLE_APP, SECONDARY_SERVER, HIDDEN_APP, CONTENT_PROVIDER, EMPTY_APP.
Domyślnie dla każdej kategorii przeznacza konkretną ilość pamięci:
6, 8, 16, 20, 22, 24 MB.
Ponieważ Milestone posiada tylko 256 MB pamięci RAM zauważyłem, że podane wartości są zbyt niskie. Szczególnie trzecia kategoria.
Pobawiłem się trochę ustawieniami z rezultatem:
6, 10, 30, 40, 50, 60.
Telefon zyskał na szybkości i wolnej pamięci (35-40 MB).
Launcher nigdy się nie wyłączył (nie został zabity).
Postanowiłem poeksperymentować jeszcze więcej, tym razem na podstawie ostatnich danych zaniżając jedynie wartość trzeciej kategorii.
Teraz wygląda to tak: 6, 10, 24, 40, 50, 60.
Launcher i telefon działają jeszcze lepiej. Zmalała również szansa na zabicie innych aplikacji.
Wynik dał mi całkiem komfortowe 30-35 MB wolnej pamięci.
Wolna pamięć RAM nie jest marnowana. Android używa jej do przechowywania plików tymczasowych, co
przyspiesza działanie telefonu.
Moje pozostałe ustawienia:
VM Heap Size = 48 MB* (choć już 40 powinno wystarczyć).
Home locked in memory.
JIT enabled (jeśli chcesz go wyłączyć lepiej wróć na 2.1 😉)
Overclock na 1100mhz@64 vsel.
*Kabaldan: Jeśli chcesz podnieść wartość powyżej 32 MB musisz edytować tą wartość w pliku
/data/property/persist.sys.vm.heapsize
Uwaga:
Zmiany dokonane za pomocą AMM nie wymagają restartu systemu.
Zwiększyłem tylko wartość trzeciej kategorii do 40 uzyskując 50 MB wolnej pamięci. Po powrocie do 24
natychmiast dostałem 30-35.
Oznacza to, że gracze mogą w prosty sposób podnieść wszystkie wartość, poza pierwszą, żeby uzyskać znacznie więcej RAMu potrzebnego do gier. 🙂
Gdyby coś poszło źle wybierzcie opcję "defaults" w AMM.
W razie gdyby i to nie pomogło wystarczy usunąć plik /system/etc/init.d/99complete i zrestartować telefon.
Tak jak już pisałem - plik wygeneruje się ponownie z domyślnymi ustawieniami.
Część 2. Kuloodporny Launcher.
Większość z was wie zapewne o opcji Cyanogenmoda "Lock Home In Memory"... oraz o tym, że mimo jej zastosowania Launcher nadal potrafi ginąć w akcji.
Moje sugerowane ustawienia AMM powinny wystarczyć, żeby na zawsze skończyć z problemem zamykającego się Launchera. Niestety z nieznanych mi przyczyn niektórzy ludzie NADAL z tym walczą. Może mają uruchomione jednocześnie 20 aplikacji pogodowych? Naprawdę nie mam pojęcia...
Do rzeczy!
Linijka ro.HOME_APP_ADJ=1 w /data/local.prop odpowiada za przechowywanie launchera w pamięci (działa dokładnie tak samo jak "lock home in memory" w CM).
W tym miejscu autor dokonał niezwykłego odkrycia. Android.process.acore zostało przydzielone do foreground_app z priorytetem -1... BOOYA!
Oszczędziłem sobie jednak zbędnego rozpisywania. 🙂
Trzy kroki do uzyskania kuloodpornego launchera:
1. W local.prop edytuj/dodaj linijkę: ro.HOME_APP_ADJ=0 oraz...
upewnij się, że masz pod nią jedną pustą linijkę!
2. Wyłącz w ustawieniach CM opcję "Lock Home in Memory".
3. Reboot.
W razie problemów:
Gdyby nieśmiertelny launcher sprawiał problemy włącz ponownie opcję "Lock Home In Memory" lub usuń
linijkę ro.HOME_APP_ADJ=0 z /data/local.prop.
ŁATWE DO ZASTOSOWANIA SKRYPTY:
1. rozpakuj paczkę ze skryptami do sdcard/OpenRecovery/scripts
2. przejdź do Open Recovery (zalecany jest Androidiani, choć zaraz sprawdzę jak sprawa wygląda z GOT)
3. Przejdź do Run Script Menu (w GOT w miscellaneous options)
4. zastosuj jeden ze skryptów
5. reboot
6. w przypadku recepty na kuloodporny launcher po restarcie wyłącz "Lock Home In Memory"
7. I sprawdź czy w data/local.prop znajduje się odpowiednia linijka (ta z ADJ=0)
W skryptach znajdują się jeszcze jakieś ustawienia odnośnie AMM, ale nie widzę raczej sensu ich używania. Zainteresowanych odsyłam do oryginalnego materiału.
Zaznaczam, że to luźne tłumaczenie instrukcji zawartych na XDA. Starałem się pominąć niepotrzebne rozważania trzymając się konkretów. W razie sugestii -> PW.
źródło: [script][update 9 Beta 2!] The V6 SuperCharger! The ONLY Android MEMORY FIXER! - xda-developers