Biblioteka dla nieograniczonej pamięci sterty dla map bitowych używających NDK na Androida [zamknięte]

Z założenia aplikacje na Androida mają bardzo ograniczoną ilość pamięci sterty, z której mogą korzystać. Ograniczenie dla aplikacji SDK wynosi zaledwie 16 MB na starych urządzeniach. Ten wybór projektu ma zwykle sens, ponieważ system operacyjny stara się obsługiwać wielozadaniowość na urządzeniach, które zwykle mają mało pamięci - więc każde zadanie ma swoją własną małą porcję.

Ograniczenie pamięci zależy od urządzenia. Na przykład w Samsung Galaxy S2 na przykład każda aplikacja osiąga od 32 MB do 64 MB. To urządzenie ma 1 GB pamięci RAM, więc jedno zadaniemoże używać tylko około 5% tego, co urządzenie może zaoferować.

Warto wspomnieć, że strategia pamięci na iOS jest bardzo różna. Według mojej najlepszej wiedzy nie ma zewnętrznego wymuszonego limitu ilości pamięci, z której może korzystać aplikacja iOS. Możesz przydzielić tyle, ile chcesz, aż systemowi zabraknie pamięci. Jeśli jesteś zbyt chciwy, inne aplikacje działające w tle zostaną zakończone.

Wyjmijmy to z drogi - to nie jest dyskusja o tym, która strategia pamięci jest lepsza.

Ograniczenie pamięci na Androida jest trudne do przełknięciapewny rodzaje aplikacji. Graficznie intensywne aplikacje (takie jak gry) potrzebują dużo pamięci do przechowywania map bitowych. Nawet przeglądarka internetowa powinna być dość trudna do wdrożenia poniżej domyślnego limitu.

Gdyoptymalizacja zasobów nie wystarczy, standardową strategią pokonywania limitu pamięci jest użycieNDK. „Natywna” sterta w Androidzie nie ma sztucznych ograniczeń i zachowuje się podobnie jak sterta na iOS. Używanie „rodzimej” sterty do przechowywania bitmap działa dobrze - tak właśnie wyglądają bitmapybyli trzymane na Androidzie 2.3.3 i niższym (JVM wciąż jednak sztucznie je ograniczało).

Szukam biblioteki NDK + JNI do przechowywania nieograniczonej liczby bitmap w „rodzimej” stercie. Interfejs Java powinien być identyczny z API bitmapy. Nie znam żadnego publicznego projektu do tego celu i będę wdzięczny za pomoc w jego znalezieniu. Jeśli już to zaimplementowałeś i chcesz udostępnić swój kod, będzie to również mile widziane.

Komentarz końcowy: Proszę, nie dyskutujcie o moralności posiadania takiej biblioteki dla ogółu społeczeństwa.

questionAnswers(1)

yourAnswerToTheQuestion