Skocz do zawartości
Tomek0000

[Tutorial] Co zrobić aby stary sprzet działał sprawnie i komfortowo mimo małego RAMu i flasha

    Rekomendowane odpowiedzi

    Napisano (edytowane)

    Ten tekst pragnę zadedykować posiadaczom starych sprzętów z androidem, które zaczęły sprawiać kłopot w normalnym użytkowaniu. Stosuję opisywane tu metody na 2 sprzętach : xperi z3 compact i galaxy tab 4 7” LTE (kupiony za 200zl). Ponieważ ten drugi przypadek jest znacznie ciekawszy, oprę tekst na galaxy, co znacznie lepiej uwypukli problem I pokaże , jak sobie z nim radzić.

    Jest to sprzęt na chwilę obecną ultra budżetowy. Obecnie na lepszy hardware google zaprojektował android go. Cóż zrobić. Na rynku ciągle pojawiają się nowe  sprzęty o specyfikacji jeszcze bardziej starożytnej.

    Wiec w czym jest problem? Kilka rzeczy : mały ram (1.5GB), mały flash (8GB), słaby procesor (4xA5), rozbudowany rom (stock).

    1.       Wersja systemu operacyjnego.

    Być może , ktoś ma to szczęście I jego sprzęt działa pod wersja android one. W tej sytuacji można na niej pozostać. W innym przypadku też trzeba mieć szczęście aby na jego sprzęt istniała wersja custom roma. Najlepszy moim zdaniem jest cyanogenmod/lineageos. Jest to sensownie rozbudowany pełen android a mimo to super lekki, podobnie jak android go. Jeśli na Twój sprzęt dostępny jest inny custom rom, na 99% będzie lepszy niż stock. Czym będzie się różnił? Bedzie pozbawiony bloatware (typu messanger) , które zapycha słaby hardware Twojego sprzętu. Jeśli nie istnieje custom rom, wtedy pozostaje  tylko rootowanie stocka. Na zrootowanym stocku można pokusić się o ręczne usunięcie lub zablokowanie bloatware, jeśli tylko potrafi się go zidentyfikować. Jeśli nie opracowano dla twojego sprzętu metody rootowania, to niestety dalsza zabawa z nim nie ma sensu I lepiej pomyśleć o zakupi nowego sprzętu.

    Wracając do tab4, mamy dla niego opracowany cyanogen 12.1 I 13. W androidzie 5.1 nie działa poprawnie nadawanie uprawnień aplikacjom. Ponieważ eliminuje to sporą część możliwego optymalizowania, wybieram android 6. Wiąże się to niedziałającym auto obracaniem obrazu. Trzeba bedzie obracać obraz za pomocą aplikacji lub skryptu (u mnie w Automagic).

    Instalujemy na tab4 custom recovery: TWRP. Za jego pomocą cyanogenmod 13 i open gapps w wersji pico. W efekcie , na ponad 2GB partycji /system zajmujemy około 0.9GB miejsca. Spore marnotrawstwo. Mamy jeszcze inne partycje (rezerwowa 250MB, cache 128MB …) które nie muszą zajmować aż tyle miejsca. Niestety dla tego sprzętu nie istnieje custom kernel, co wiąże się z tym, że kernel jest zabezpieczony dla roota i nie da się uruchomić po usb adb w recovery w celu bezpiecznego repartycjonowania. W efekcie tracimy około 1.2GB , których nie będziemy mieli na przestrzeń aplikacji użytkownika. Mając to na względzie, warto programy narzędziowe po zainstalowaniu I uruchomieniu przenieść sobie na partycje /system w celu zmniejszenia zajętości flasha wbudowanego. Piszę tu o aplikacjach , które z powodu swojej ważności nie powinny być na karcie sd.

    2.       Pamięć RAM.

    Pamięć RAM jest najbardziej ograniczającym problemem budżetowych sprzętów. W tym przypadku dodatkowe .5 GB ponad minimalne 1G jest zbawienne. Posiadamy już lekki rom, co jest pierwszą metodą na oszczędzanie RAMu. Drugą metodą jest restrykcyjne pilnowanie uprawnień aplikacji. Stosuję do tego ApsOpp ( https://play.google.com/store/apps/details?id=rikka.appops.pro ) w wersji płatnej (daje możliwość sortowania po uprawnieniach). Najważniejszym uprawnieniem do pilnowania jest auto startowanie aplikacji wraz z systemem. Można założyć , że nie ruszamy ustawień systemowych, choć w Tab4 można pokusić się o wyłączenie całej funkcjonalności związanej z połączeniami głosowymi. Nie wolno majstrować przy apkach systemowych niewiadomego przeznaczenia . Natomiast restrykcyjnie sprawdzamy to uprawnienie dla wszystkich apek zainstalowanych przez nas samych. Zakładam , ze każdy wie co instaluje I będzie potrafił zdecydować , czy apka musi cały czas działać czy nie. Jeśli nie musi, a auto startuje to obowiązkowo nie wolno  jej na to pozwolić. Jeśli mimo wszystko ignoruje uprawnienie autostartu, warto pomyśleć o jej wyinstalowaniu I rezygnacji. (Alternatywą jest zamrażanie jej na czas nieużywania). Inne uprawnienia do zabrania apkom to: prawo do uniemożliwiania przejścia systemu w stan uśpienia (bardzo pomaga baterii) , prawo do wykonywania zmian w ustawieniach systemowych .

    Jeśli restrykcyjnie  będziemy pilnowali , co mamy w systemie uruchomione, wtedy 1.5GB wystarczy do komfortowej pracy. (Może nawet 1GB wystarczy jeśli nie komfortowego to do wygodnego używania sprzętu).

    AppOps, SD Maid , …  nie potrafiły poprawnie zarządzać wspomnianymi uprawnieniami w androidzie 5.1. W 6 wygląda to dużo lepiej.

    3.       Pamięć flash.

    Jest o chyba jedyny parametr sprzętowy , który tak naprawdę nie ma wielkiego znaczenia. Oczywiście szczęćciem  jest jak ma się więcej niż 8GB , ale I z tą ilością da się żyć. Jak to wygląda w Tab4 ? Mamy 8GB , a na partycję użytkownika zostaje jakieś 4.6GB, z tego po instalacji roma mamy jakieś 3.8GB wolnego. Docelowo da się tą  ilość 3.8-3.6GB  mieć zawsze wolną , niezależnie ile rzeczy sobie zainstalujemy. Jeśli jednak chce się zainstalować soft, który do instalacji wymaga ponad 4GB (np Icewind Dale) to niestety trzeba to zrobić na innym sprzęcie z większym flashem. Zrobić apce backup za pomocą Titanium, przenieść I zainstalować go na Tab4. Pliki obb ze /storage/emulated/0/Android/obb/nazwa.apki/ trzeba skopiować ręcznie. (Ciekawe podejście producentów apek! Wiedza ze większość tabletów na rynku ma 8GB , a przygotowują własne apki w taki sposób, aby na nich nie instalowały się).

    Apki jakie będziemy instalowali dzielimy na 2 grupy, te które są bezwzględnie potrzebne I bez których nie można się obejść i te , instalowane dla przyjemności. Te z pierwszej grupy zostają w pamięci wbudowanej . Większość z nich może zostać przeniesiona na partycje /system I nie zabierać miejsca w najwartościowszej partycji użytkownika. W /system trzymamy pliki aplikacji (apk) , pliki odex (odex) I biblioteki (.so , lib) . Dane , cache i pliki dex tych aplikacji zostaną w pamięci użytkownika I je można ewentualnie podlinkować na kartę SD. Wszystkie apki z drugiej grupy trzymamy na karcie SD za pomocą aplikacji Apps2SD ( https://play.google.com/store/apps/details?id=in.co.pricealert.apps2sd.pro  polecam wersje płatną). Linkując apki przeniesione do /system trzeba zwrócić uwagę aby linkować tylko pliki danych , cache i dex !

    Stosujemy kartę Samsung evo plus ze względu , że jest najszybszą kartą pod względem zapisu/dostępu niesekwencyjnego , a do tego przechowuje w komórce pamięci 2 bity danych a nie 3. Kartę dzielimy na 2 partycje (w płatnej apps2sd): standardową fat32 na nagrania z kamery, zdjęcia, multimedia czy backup z Titanium lub nandroid backup z TWRP. Druga ext4 będzie zarządzana przez apps2sd I będziemy trzymali tu wszystkie aplikacje z drugiej grupy. W apps2sd włączamy auto przenoszenie wszystkiego na drugą partycję zaraz po zainstalowaniu. Prawdopodobieństwo utraty zawartości danych na drugiej partycji jest znacznie większe, więc trafiają tu tylko apki związane z przyjemnościami (np. gry) , a nigdy coś, bez czego nie uruchomi sie system, albo coś bez czego nie da się użyć sprzętu do podstawowych zastosowań (np. email, czy przeglądarka sieciowa). W efekcie możemy mieć 100-200 gier na sprzęcie z 8GB flasha a mimo to wciąż mieć ponad 3GB wolnego w pamięci wewnętrznej.

    Istnieją apki używające własnych katalogów niestandardowo. Np. minecraft ma taki katalog na mapy. Coś takiego możemy ręcznie podlinkować używając apps2sd w wersji płatnej. Dużo miejsca zwolni się także , jeśli podlinkujemy pliki dex wszystkich apek , również systemowych. W razie ich utraty , system odtworzy je sobie w momencie uruchamiania (zajmie na to flash użytkownika).

    4.       Procesor.

    Tab4 ma 4 rdzenie a5 , będące pierwowzorem rdzenie a53. To rozwiązanie chyba z przed 5 lat a mimo tego w najtańszym sprzęcie ciągle używane.  O dziwo jakoś to sobie radzi. Polecę w temacie procesora użycie tylko jednej aplikacji : L Speed. Za jej pomocą ustawiamy profil wydajnościowy jak chcemy wycisnąć z procka wszystko lub oszczędzający baterię , jeśli czas działania ma priorytet. Ja ustawiłem to drugie i mimo to, całość wcale nie działa tragicznie. Jak ktoś ma inne podejście , proszę ustawić profil wydajnościowy.

    5.       Akumulator.

    Na zużycie energii podczas osobistego używania sprzętu nie ma się ogromnego wpływu – jak działają ekran, wifi, lokalizacja, dane mobilne to energia musi się rozpraszać. Co innego w trybie stand by. Moje podejście do tematu jest takie, że jak ekran nie jest włączony to użytkownik  nie korzysta ze sprzętu, więc sprzęt nie ma prawa działać sam dla siebie I zużywać energii.

    Wyjątki od tej reguły to podstawowe działanie samego systemu android, działanie systemu komunikacji głosowej jeśli sprzętem jest smartfon, działanie komunikacji elektronicznej jeśli przychodzące z zewnątrz powiadomienia/emaile mają generować alarmy I reakcję użytkownika.

    Tab4 używam jako tablet, więc odpada czuwanie komunikacji głosowej a przychodzące wiadomości nie wymagają mojej natychmiastowej reakcji. Steruję wiec sprzetem za pomoca skryptu Automagica ( https://play.google.com/store/apps/details?id=ch.gridvision.ppam.androidautomagic ). Wybrałem tą apkę ze względu na graficzną reprezentację skryptów I graficzny debugger uruchomieniowy. Mam jeden główny skrypt który w skrócie działa tak:

    Jeśli ktoś zdejmuje loka z ekranu głównego lub wyłącza ekran główny, to sprawdzam czy nie jest w trybie samolotowym, jak nie to czy nie jest prowadzona rozmowa, jak nie to

    -          czy ekran jest wyłączony – ścieżka wyłączania:  , czekam 200 sekund I jeśli ekran dalej wyłączony to wyłączam mobilną transmisję danych, jeśli sprzęt to nie smartfon to, wyłączam podsystem modemu gsm, dla wszystkich przypadków wyłączam wifi, wyłączam lokalizację, wyłączam nfc, wyłączam bluetooth, wyłączam inne wynalazki, ustawiam domyślne wartości dzwonków .

    -          czy ekran jest włączony – ścieżka włączania – jeśli to smartfon – włączam mobilna transmisję danych , dalej dla wszystkich przypadków , czekam kilkanaście sekund , jeśli ekran dalej włączony włączam wifi, po kilku sekundach sprawdzam , czy dostępna jest sieć wifi, (jesli nie I nie jest to smartfon , włączam podsystem modemu gsm I mobilną transmisję danych )  dla wszystkich przypadków ręcznie inicjuję synchronizację do serwerów poczty np dla bluemail. Na koniec mozna to samo zrobic z mediami społecznoścowymi.

    W ten sposób załatwiam sterownie wbudowanymi interfejsami pod kątem oszczędzania energii.

    Stosuje także greenify ( https://play.google.com/store/apps/details?id=com.oasisfeng.greenify.pro ) w celu hibernowania aplikacji po wyłączeniu ekranu. Efekt można sprawdzić za pomocą WLD ( https://play.google.com/store/apps/details?id=com.uzumapps.wakelockdetector) u mnie 0-1% aktywności. Jak coś więcej, to sygnał aby sprawdzić co jest nie tak. Np. problem z partycja fat32 karty sd odbije sie na podbiciu aktywności do 50-60%. Inne ciekawe apki : Disk usage (https://play.google.com/store/search?q=disk+usage&c=apps)  w celu analizy co zajmuje pamięć wewnętrzną, Cool Tool (wymaga exposed https://play.google.com/store/apps/details?id=ds.cpuoverlay ) w celu pokazywania online zasobów sprzętowych, NetGuard (https://github.com/M66B/NetGuard/releases nie działa w 5.1) jako firewall, XprivacyLua ( wymaga exposed https://github.com/M66B/XPrivacyLua/releases  nie działa w 5.1) w celu podstawiania apkom fake data , jeśli wymagają niepotrzebnej funkcjonalności (ochrona prywatności) , Rom Toolbox dla jego terminala (https://play.google.com/store/apps/details?id=com.jrummy.liberty.toolboxpro) .

     

    Zapraszam do merytorycznej dyskusji.

     

    PS. W koncu przyszedl czas zastapic stary tablet nowym. Czemu? Jesli dostep do sieci jest tylko przy wlaczonym ekranie, to po jego aktywacji wszystko co ma otwartego firewalla rzuca sie synchronizowac swoje serwisy. Jesli tego troche jest, to przeciaza rdzenie a7. Zajmuje to pierwsze kilka minut w ciagu ktorych sprzet jest nieuzywalny. Na podstawie obserwacji dzialania galaxy a5 stwierdzam, ze w tej materi nie ma roznicy czy sa to rdzenie a7 czy a53. 

    Edytowane przez Tomek0000
    • Piwko! 1
    • Lubię to! 1

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jak wspomniałem wcześniej, w przypadku małego flasha sensownie jest wykorzystać wolną pamięć partycji /system. Na przestrzeni kolejnych wersji, zmieniał sie sposób instalowania aplikacji. Kiedyś apki lądowały w /system /app i /system/lib. Teraz wszystko trafia do /system/priv-app. Nie udalo mi sie znaleźć apki potrafiącej bezproblemowo to robić. Najlepszą prasę ma titanium backup, ale też za dużo ludzie piszą o problemach z nią. Jedno jest oczywiste, apka ze sklepu która ostatnią aktualizację miała w 2013 nie zrobi tego poprawnie. Dlatego skoncentrowalem się na apps2sd i przedstawię tu jego ograniczenia. 

    1. Konwersja do systemu. To jedyna opcja działająca dobrze. 

    2. Wyinstalowanie z systemu nie działa. Usunie apke ale po ponownym zainstalowaniu apka źle działa lub sie wywala. Powód: z systemu usuwane są pliki a trzeba jeszcze katalog apki z podkatalogami. Trzeba ręcznie wywalić /system/priv-app/nazwaapki i wszystko głębiej. 

    3. Po zaktualizowaniu apki systemowej źle działa integracja do systemu. Efektem jest zniknięcie apki i kolejne znikanie jej po kolejnych doinstalowywaniach. Rozwiązaniem jest usunięcie jej i jej katalogów jak w punkcie 2.

    4. Konwersja z systemu do przestrzeni użytkownika. Powoduje usunięcie danych aplikacji. Plus problem z pozostałymi katalogami (2).

    Jak sie tym posługiwać? 

    Instalujemy apke, odpalamy, konfigurujemy. Robimy konwersję do systemu. Używamy jej. Jeśli pojawia sie nowa wersja, robimy backup apki. Konwertujemy ja na apke użytkownika, odtwarzamy z backupu dane apki, robimy jej update ze sklepu play.  Robimy konwersje do systemu. (Ponieważ nie uruchamiamy jej w między czasie, nie trzeba kasować jej podkatalogów). 

    Jeśli istnieje apka radząca sobie z konwersjami do systemu w androidzie 6+, chętnie poznam jej nazwe. 

    Edytowane przez Tomek0000

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    dzidexx
    42 minuty temu, Tomek0000 napisał:

    Jeśli istnieje apka radząca sobie z konwersjami do systemu

    Nie bardzo wiem co chcesz konwertować.

    Apki google:

    Możesz co tydzień wgrać ponownie CM/LOS + Gapps Aroma i konwersja będzie zbędna - jeśli w międzyczasie nia zaktualizujesz żadnej.

    Link2sd(darmowy również) kiedyś poprawnie to robił - "zintegruj aktualizację z...".

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    _tommy_
    3 godziny temu, Tomek0000 napisał:

    4. Konwersja z systemu do przestrzeni użytkownika. Powoduje usunięcie danych aplikacji. Plus problem z pozostałymi katalogami (2).

    Jak sie tym posługiwać? 

    Instalujemy apke, odpalamy, konfigurujemy. Robimy konwersję do systemu. Używamy jej. Jeśli pojawia sie nowa wersja, robimy backup apki. Konwertujemy ja na apke użytkownika, odtwarzamy z backupu dane apki, robimy jej update ze sklepu play.  Robimy konwersje do systemu. (Ponieważ nie uruchamiamy jej w między czasie, nie trzeba kasować jej podkatalogów). 

    Czegoś nie rozumiem... Po co konwertować w nieskończoność aplikacje? Integrować z systemem aby wrócić na użytkownika i z powrotem? Jaki to mam cel? I sens? 

    Pisałem na forum coś podobnego do tego Twojego poradnika, mój wpis jest na forum Sony M4Aqua [klik] i tam opisałem metodę będącą czymś pomiędzy adoptive a przenoszeniem aplikacji na kartę. Ale dalej nie widze sensu konwertowania aplikacji żeby znowu ja przekonwertować. Laik będzie miał z tym problem.

    Wadą Androida 6 na ten przykład jest rozjazd pokazywanym MB pojemności aplikacji, bądź jego błędnych wyświetleń. Niby system zajmuje tyle a za chwile już ta wartość jest inna i tak w kółko. Problemem sa też starsze wersje systemu które nie dostają poprawek, właśnie takich mających na celu poprawić wydajność, bądź chociaż poprawność wyświetlania pojemności aplikacji. Co za tym idzie producent porzuca pracę nad urządzeniem, wydaje nowe, stare nie ma wsparcia i później kombinujemy na forum jak sobie poradzić. Koło się zamyka. Wracając do konwersji, poczytaj o integracji z systemem, jakie aplikacje można przekonwertować, bo na pewno nie każdą. Wiesz dlaczego? Znasz konsekwencje konwertowania aplikacji? ;)

    Reasumując...

    2 godziny temu, dzidexx napisał:

    Nie bardzo wiem co chcesz konwertować.

    Wybacz ale to nie do końca pewny zabieg i w sumie bezsensowny. O ile chcesz używać telefonu konwersja aplikacji jest niekoniecznie skuteczna, sam się o tym przekonałem.

    Edytowane przez _tommy_
    Drobna edycja, poprawki.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Oczywiscie nie trzeba tego robic bez konca. Raz wrzucic apke do /system i zapomniec. Szkoda jednak rezygnowac z uaktualnien. (Od razu ustalmy, ze wrzucanie apki do /system i aktualizowanie ktore bedzie trzymane w /data jest bez sensu. Wtedy lepiej zrezygnowac z uzywania /system. Jest to tez jeden z powodow uzywania gappsow piko). Oczywiscie nie wszystkie apki po przeniesieniu do /system dzialaja dobrze. Kazdy na takie trafi i bedzie wiedzial, ze nie nalezy ich ruszac. Mozna takze miec sprzet, w ktorym nie bedzie miejsca w /system, wiec nie bedzie powodu czegokolwiek z tym robic. 

    Jeszcze raz. Miejsce w /system powinny znalezc, nasze wlasne programy narzedziowe, ktore po ewentualnym uszkodzeniu sdext2 potrzebujemy do normalnej pracy i ewentualnego naprawienia sdext2. Najwiekszym bledem bylaby konfiguracja unieruchamiajaca sprzet po wyjeciu karty sd. 

     

    Edytowane przez Tomek0000

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    maxprzemo

    @Tomek0000

    Nie polecam konwertowania aplikacji ze sklepu na systemowe. Po zmianie na systemową aplikacja ma dużo większy stopień uprawnień.

    Dużo lepszym rozwiązaniem jest re-partycjonowanie kości pamięci. Gdzie zaoszczędzone miejsce na partycji /system lokujemy na partycji /data.

    Niestety na androidzie jest to bardzo trudna i niebezpieczna operacja. A szkoda bo daje najlepszy rezultat końcowy.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Wiele racji, tylko ze wiekszosc z przenoszonych apek, to te ktorym damy uprawnienia roota, aby byly zdolne do akcji, dle ktorj je sciagnelismy. 

    Co do repartycjonowania znam 2 sposoby. Jeden adb w recovery niemozliwy bez zainstalowanego custom kernela. W moim przypadku niemozliwe. Drugi to wlasna modyfikacja custom romu, aby na poczatku instalacji przeprowadzic repartycjonowanie. Tego nie potrafie. Wiec co mi poradzisz?

     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x