Android jeszcze raz :-)

Apr 21, 2011 27 Replies

Właśnie usiłuję sie tego dowiedzieć :-) Mam tylko do dyspozycji Javę. Mogę niby pisac niskopozopmowo w C++ ale to rodzi wiele problemów z kompatybilnością między urządzeniami, procesorami w środku. Nie ma mowy żeby używać czegoś innego niż Java. Tylko w tej Javie jest tak głupio zrobione że korzystanie ze sprzetu nie zawsze ma wszystkie funkcje jakie chcę.

Np mogę sobie pisać czy czytać do aparatu fotograficznego ale wszystkie funkcje akceptują wyłącznie pliki. Nie mogę sobie pisać i czytać do bufora buf[] i już. Jak można czytać i pisać do bufora "buf[]" to znowu nie ma kontroli nad innymi funkcjami kamery.

Niektóre funkcje - "metody" chcą za parametry tylko odniesienia do plików. Jako programista nie mam uprawnień aby zapisywac pliki w innym miejscu niż /SDCARD i błędne koło sie zamyka.

A mnie potrzeba kawałków tych plików do dalszej obróbki w locie.

Problemem jest komunikacja ze sprzetem tych w³asnych klas. Nie ma jak tego zrobiæ ¿eby dzia³a³o. S± gotowe funkcje do gadania ze sprzetem ale s± idiotyczne i chc± plików.

U¿ytkownik "Lelek@" snipped-for-privacy@iw.iw napisa³ w wiadomo¶ci news:ios071$dqk$ snipped-for-privacy@opal.futuro.pl...

Ja sobie najpierw pomyslalem ze skoro ten filedescriptor to obiekt, do ktorego potem te funkcje wywoluja rozne metody plikowe, to mozesz utworzyc wlasny obiekt z takimi samymi metodami i powinno zadzialac.

A potem sobie popatrzylem na te przyklady, przypomnialem unixa w ogole .. tam moze nie byc zadnych klas, nr pliku to mala liczba calkowita, wywoluje sie funkcje systemu, a system sprawdza co sie pod tym numerkiem kryje dla procesu. A dla dzielonej pamieci mamy tylko takie podobienstwo ze identyfikator tez jest liczba - reszta moze byc calkiem inna. Choc to w sumie .. jeszcze niekoniecznie pomysl z klasami wyklucza.

No to ciagle nic nie wiemy, musisz lepiej zorientowanych pytac :-) Albo jednak dojsc do wniosku ze tak sie nie da i szukac jakiegos ramdysku do systemu.

J.

W³a¶nie. Ten Android jest strasznie niedorobiony. Wiele urz±dzeñ nie daje siê nawet aktualizowaæ, a zanim zejd± z rynku to mo¿e minie kilka lat.

Chyba nie ma czego¶ takiego jak ramdysk w androidzie, przynajmniej z poziomu javy. Zreszt± strona android developer te¿ nic nie zwraca na has³o ramdisk pisane w ró¿nych kombinacjach.

U¿ytkownik "Lelek@" snipped-for-privacy@iw.iw napisa³ w wiadomo¶ci news:ios74u$svi$ snipped-for-privacy@opal.futuro.pl...

Nie myslalem o poziomie javy. W systemie zainstalowac/skonfigurowac, zamontowac gdzies, a z javy odwolywac sie normalnie jak do plikow.

ale google zna, tylko jakos inaczej - bootowalne obrazy. Czy to jest dostepne pozniej to nie wiem.

J.

To chodzi o symulator telefonu na PC-cie.

Zyczenie jest rozsadne .. ale jak znam zycie nic z tego nie wyjdzie w ten sposob. Zadeklarujesz sobie .. i co ? nadal /scdard/lol.bin bedzie na karcie. Funcja plik otworzy, zapisze, zamknie a twoj memoryfile w ogole nie bedzie uzyty.

Tak jak pisalem - moze ci sie uda ramdysk zalozyc i zamontowac, podasz pliki "/sdcard/rd/xx.bin" czy "/tmp/rd/xx.bin" i zadziala. no wlasnie - moze nie trzeba nic zakladac, tylko podac /tmp ?

Mozesz poszukac ambitnych ustawien systemowych, moze sie da jakos opoznic zapis do pliku, i usunac go zanim zostanie zapisany.

Mozesz sprawdzic czy funkcja dopusci uzycie named pipes - o ile Android je posiada.

formatting link
formatting link
Uwazaj - normalnie to ma ok 4kB, wiec trzeba odbierac dane rownolegle z zapisywaniem ich przez funkcje jesli jest ich wieksza ilosc.

Jesli natomiast ta funkcja dopuszcza podanie FileDescriptor zamiast nazwy pliku ... no, moze i owiera sie pare nowych mozliwosci. Jesli ta funkcja korzysta z mmap, chocby posrednio

formatting link
to jest podobienstwo do ashmem
formatting link
Jako ze ten fd jest tu dana podstawowa - mysle ze jest dostepny z Memoryfile.

Ale czy to zadziala - sporo tu "jesli" . Ale jesli pozwala podac fd, to moze zwykly pipe uda sie wykorzystac ?

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required