Google pokazał Androida!
- Dodano: 12 listopada 2007
- Wprowadził: kocio
- Komentarze: 87
Google szybko przeszło od słów do czynów. Tydzień po ogłoszeniu projektu Android ukazało się SDK oraz masa prezentacji pokazujących nowy system operacyjny Google w akcji!

W skład systemu wchodzi między innymi jądro Linux, freetype, sqlite, webkit, natomiast podsystem aplikacji działa w wirtualnej maszynie Javy dla urządzeń mobilnych o nazwie Dalvik. SDK dla Linuksa, Maca i Windows zawiera też emulator telefonu do testowania aplikacji.
Również serwis ONLamp przygotował spory artykuł na temat Androida, w sieci znajdują się też związane z tematem filmy: wprowadzenie do tematu, trzyczęściowe omówienie architektury i demonstracja SDK dla programistów.
Główna prezentacja Google w wykonaniu Sergieja Brina i Steve’a Horowitza to klip wideo, w którym ten pierwszy zapowiada pulę nagród w wysokości 10 mln dolarów za najlepsze aplikacje Open Source stworzone dla Androida, a drugi przedstawia programy, które już stworzył lub zintegrował Google, m.in. androidowe wersje Google Maps i Google Earth, przeglądarkę WWW, klient Jabbera, grę Quake czy prezentujący możliwości 3D systemu globus pokazujący temperaturę na świecie.
Więcej informacji: http://www.osnews.com/story.php/18907/Go...-Emulator/
Znalazłeś literówkę? Zgłoś ją używając formularza!
Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.
Niusy na podobny temat:
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.
87 komentarzy
Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.


O żesz ty w morde!
Warto dodać, iż Google w Stanach walczy także o wartą grube miliardy dolarów częstotliwość GSM. I znów – jak to u Google – wszystko ładnie układa się w jedną całość.
Jestem w szoku. Google niedawno to ogłosiło, a mają już niemal gotową aplikację dorównującą niejednemu zamkniętemu rozwiązaniu ale oczywiście jej nie wypuszczą. Niech powstanie jeszcze trochę softu, niech ludzie poznają architekturę, poprawimy to co się da.
A co dla programistów? SDK, plugin do eclipse aby ułatwić pracę oraz dokumentacja.
Wszystko to czego brakuje iPhoneowi (IMHO). Otwartość jest bardziej niż kusząca.
Wygląda to na bardziej dopracowane niż neo1973 (nigdy nie pamiętam numerków, chyba dobrze?) z openmoko czy qtopią.
Obawiam się, że Android to krok do trumny OpenMoko. Ale może też stać się tak, że projekty takie jak OpenMoko czy Qtopia po prostu zostaną zintegrowane z wynalazkiem Gugla i będą rozwijać się podobnie jak dystrybucje w Linuksie.
I nic z tego, co powoduje, ze iPhone stal sie przebojem rynkowym.
nie ma to jak komentarz najwiekszego trolla osnews.pl
nie ma to jak miec jabłeczne klapki na oczach…
Co maja klapki do dostrzegania ilosci sprzedanych egzemplarzy? To, ze iPhone ma szanse stac sie w ciagu najblizszego pol roku najlepiej sprzedajacym sie telefonem jasno pokazuje, ze "otwartosc" wiekszosc klientow ma gdzies.
Otwartość, zamkniętość, półotwartość – wszystko to większość klientów ma gdzieś. To co piszesz o iPhone można odnieść do iPoda i innych iProduktów ze stajni Apple. Większość ludzi idzie za reklamą, modą, i tym co mają znajomi. Większość z nich ma głęboko gdzieś co siedzi w środku, byle by działało i ładnie wyglądało. Działać, działa, a że ładnie wygląda – o tym chyba nie muszę nikogo przekonywać, bo produkty Apple'a mają niezły "dizajn".
@rjc: Ano maja. I funkcjonalnosc tez maja fajna – nie maja bajerow w rodzaju obslugi niszowych formatow zapisu, ale to, co ma robic odtwarzacz MP3 – od sposobu wyszukiwania muzyki i zarzadzania nia, az po czas pracy miedzy ladowaniami akumulatora – robia lepiej od konkurencji. Podobnie z iPhonem. A iPhone to ich pierwsze podejscie, wiec nalezaloby go oceniac z pewna rezerwa.
Jesli otwartosc naprawde okaze sie istotna zaleta, to Apple po prostu otworzy iPhona. Co za problem wypuscic SDK, ktore dotychczas bylo uzywane tylko wewnatrz firmy?
Tak naprawde Android moze przebic sie na dwa sposoby. Po pierwsze, cena – jesli Chinczycy zaczna produkowac badziewne, ale tanie telefony, to swoj kawalek rynku ugryza, tak jak w odtwarzaczach MP3. Po drugie, Google ma sile i pewne rzeczy moze metodami zwykle kojarzonymi z Microsoftem przepchnac.
Microsoft zwykle nie kojarzy się mi się z Open Source. :]
A czemu nie Android na Neo1973?
Ściągnąłem emulator i pobawiłem się tym trochę. Przyjemne, nie powiem. Trudno powiedzieć coś więcej o tym, ale tak na moje przeczucie będzie to poważny konkurent iPhone, OpenMoko, Symbiana no i Windy Mobile…
I z tego co Sergiey mówił w filmiku na tubie to na dodatek nagrodę wyznaczyli. Zrób superzajefajny programik pod Androida, nam się spodoba, a dostaniesz kasę. Hmm… Nice… Oby to było otwarte…
Będzie otwarte. Linux, google zwolennicy otwartości. Konsorcjum od androida ma open w nazwie. Programy pisane (ubiegające się o nagrodę) mają być otwarte.
@michuk: Hmm. To jest kwestia sporna i nadaje się na niezłego flame'a. Czy lepiej się rozdrabniać, postawić na dystrybucje, a może po prostu OpenMoko na Neo a Android swoją drogą.
IMHO OpenMoko będzie się rozwijał (chociaż z recenzji jakie miałem okazję czytać do rozmów to się nie nadaje a na Qtopi, Neo to po prostu maszynka do jedzenia baterii).
Mnie szczerze mówiąc kusi najbardziej Android. Rozwiązanie jest niemal gotowe, otwarte i w dodatku integruje się z usługami gugla z których korzystam.
Otwartość zapobiega totalnemu monopolowi, ale działa google to temat na jeszcze jednego flame'a.
SCO OpenServer też
z jednej strony przyklad bardzo zabawny, z drugiej…
Microsoft Office Open XML też
Przeglądarka na Webkit! Hurrrrra!
10 melonów
… Zabieram się za projekt, którym zgarnę całą kasę. xD
Konkurencja to jest również dla CLDC/MIDP.
Przedstawiono nie google Earth a zegarek,
API jest ubogie. W CLDC/MIDP jest więcej.
To tylko początek. Google wpompuje w to trochę kasy. Oczywistym zyskiem będą reklamy. Już można znaleźć dość sporo wodotrysków, które idealnie pasują do reklam.
Ważne, że idzie promocja Linuksa. Może to przynieść dużo dobrego, np. popularyzację OpenGL ES w MIDP
OpenMoko jest spokojne o przyszłość. Oni bazują na C/C++ a google na Java-ie.
W mordę cały podsystem w Java.
Toż to do bani jest!!!
Za chiny nie ruszam gierek na Java, a co dopiero jak ma być cała reszta.
"Ble ble blah,
Poszło google na dach,
A tam patrzy to nic nie znaczy,
Gdy nas ktoś Javą raczy,
Toż to bełkot nie kumaty
Co to google dało graty
Poszło spać
I już nie kraczy,
Zaraz koniec
On nam nie wybaczy"
Pozdrawiam.
Tak, jasne. Java to zło, bo to zło i Java:-) Fakt, nie jestem sympatykiem Javy, ale bez przesady !
P.S. Proponuję douczyć się trochę języka przed zabieraniem się za poezję
To tak przyszło od razu jak to przeczytałem.
A co do języka to tak ma być
, ponieważ Java właśnie nie zmusza człowieka do myślenia (to tak jakby jakaś przenośnia).
Ale z tą przesadą to nie wiem.
na prawdę nie chciałbym aby mój system, bądź aplikacje były napisane w Java. Jedyny racjonalny i szybszy z zarządzanych to jak już coś to .NET.
Pozdrawiam.
Ale bredzisz to Ty dziś 3-po-3
Wez sobie wsadz w d…ten swoj dotNet. Java rzadzi i jest pomocnym narzedziem ludzi myslacych.
Zaadaptowanie Javy do tego projektu to genialny ruch ze strony GG. Tak trzymac!!!
.NET to kopia Javy więc nie wiem dlaczego miał by być szybszy, a już na pewno nie jest bardziej przenośny (kompilacja programów do EXE-PE o przenośności bynajmniej nie świadczy).
Java to o wiele bardziej poważne rozwiązanie, jej przenośność została sprawdzona i na przestrzeni lat wiele błędów zostało poprawionych. Koledzy którzy używają .NET mówią, że jest tam bardzo dużo bugów i tracą sporo czasu na głupie ich obchodzenie (może i aplikacje pisze się szybko, ale żeby jeszcze działały tak jak powinny…)
"Java właśnie nie zmusza człowieka do myślenia"
Każdy język programowania zmusza człowieka do myślenia. Nie ważne czy to LOGO, Basic, Java, C, Asm, Prolog – każdy z nich, tylko w niektórych dodatkowo musisz się skupiać na technikaliach nie związanych z logiką działania Twojego programu. Java ma tę zaletę, że w niewielkim stopniu trzeba się skupiać na technikaliach i kwestiach nie związanych z logiką programu, który piszesz – ale wcale to nie oznacza, że nad tą logiką nie musisz myśleć.
Co do prędkości, to telefonik z androidem może mieć jakiegoś procka, który 90% kodu Javy wykonuje sprzętowo. Są wersje procesorów ARM, które to potrafią – instrukcją maszynową o mnemoniku bj skacze się do kodu Javy
.
@mario: Jesli .NET jest kopia Javy, to Java jest kopia Smalltalka. Srednio udana. ;-P
Odnosnie powagi rozwiazan – znam kilkanascie osob, ktore w ciagu ostatnich paru lat przeszly z pisania pod J2EE na .NET. Nie znam zadnej, ktora przeszla w druga strone. Z owych kilkunastu raptem dwie nie uwazaja (jeszcze
, ze pod .NET pisze im sie lepiej.
Widac mamy diametralnie rozne odczucia.
Pamietam jak gdzies w okolicach roku 2000, rowniez na linuxnews.pl wychodzily rozne trole wieszczace upadek javy i sukces .net w 3 lata. Mamy rok 2007, java ma sie swietnie, a ja nie zauwazam obecnosci .netu przynajmniej na rynku aplikacji webowych. Nie jest to autosugestia bo ja nie jestem zawodowym developerem i jesli o mnie chodzi to moga sabie te tiery pisac nawet w pythonie. Cieszy jednak fakt ze malo kto dal sie zlapac na ten badziew z m$.
I tu (niestety) się mylisz. Dużo instycucji, firm (i to bardzo poważnych) migruje na .NET-a. Niestety ale .NET jest dla nich po prostu tańszy.
I właśnie dzięki .NET MS w serwerach(szczególnie www) ma coraz szybszy wzrost.
A co do javy i C# to w zasadzie są dość podobne oczywiście jeż też J#
@mzobniow: Jakbys byl zawodowym developerem, to bys zauwazyl.
Upadek COBOL-a tez wieszczyli dawno temu. I tez w sumie COBOL ma sie swietnie, dwadziescia lat pozniej. Ciekawe, gdzie bedzie Java za dwadziescia lat?
Nie jestem developerem ale tez czasem developuje i pracuje z developerami. Jesli zapytacie ktory jezyk jest najwiekszym wygranym w segmencie web aplikacji to powiem ze php. Jest znacznie tanszy od javy i .netu niestety i dlatego robi tu furore. dotNetu, jak juz pisalem, prawie w ogle nie tu nie wiedze (Niemcy) no ale moze u was sa inne mody.
@mzobniow: Bardziej chodzi o segment rynku niz o kraj. PHP to "klasa ekonomiczna", .NET – nie.
Ja oczywioscie pisze o segmencie ASP i innych firm ktorych modele biznesowe bezposrednio zaleza od technologi. Mysle ze ten segment jest najbardziej miarodajny – tu zreszta najwiecej sie dzieje w tej materi. W tym wlsnie segmencie php rzadzi, a potem java.
Inee segmenty: np. banki i korporacje maja czasem .net na swoich wewnetrznych systemach, ale gdy potrzebuja niezawodnej aplikacji wystawionej na Swiat, to oczywiscie siegaja po outsourcing lub consulting i tak wracamy do php i javy.
w takim przypadku wraca sie do javy, ale juz nie do php…
trash: .net to wlasnie klasa ekonomiczna. moze i w .necie latwiej/szybciej cos napisac ale kto w powaznej firmie zdecyduje sie na serwer oparty o ms? niby z .net mozna sie polaczyc do normalnych baz, ale "programisci" .netowi dosc mocno sa przywiazani do mssql, a kto to w powaznym zastosowaniu ustawi jak baze danych?
jak takie rozwiazania sie skaluja?
w przypadku javy – mimo ze wydaje sie bardziej ociezala niz .nety, dosc latwo mozna zaplanowac rozwoj srodowiska serwerowego, w przypadku wzrastajacego zapotrzebowania na moc obliczeniowa. j2ee zarowno w przypadku suna, ibma, oracla – jest jak najbardziej do tego przygotowana/sprawdzone/wdrazane z wieloletnim doswiadczeniem.
podobnie w przypadku baz danych – oracle@hpux, oracle@aix, db2@aix – tu masz jasne plany rozwoju, np. poprzez zwielokratnianie ilosci prockow (np. hp superdome – gdyby tylko orakiel pod tym tak czesto nie sral ora-00600
).
Uwierz ze nader czesto niestety do php. Przyznam ze ostanio czesto spotyka sie rowniez model: interface w php+middleware w javie. Poprostu czysty rachunek ekonomiczny. Za wyplate jednego dobrego programisty javy zatrudnia conajmniej dwoch stikaczy php i czesto nie wazna jest tu jakos produktu koncowego.
Dodaj jeszcze ze ci stukacze od PHP są każdy 2x bardziej wydajnego od tego wydajnego programisty Javy …
Póki on napisze te 50 linii na każdy drobiazg, poki skompiluje, zdeplojuje i zrobi masę innych rzeczy to
minie godzina …
Tymczasem gostek od PHP poprawi ten drobny babol w 45 sekund ….
Sorry ale 90% zastosowań na rynku to są proste rzeczy do których PHP (+pewnie Zend) spokojnie wystarczy …
Byle mieć dobrą bazkę pod spodem która sobie poradzi z masą prostych zapytań …
@trasz: "Jesli .NET jest kopia Javy, to Java jest kopia Smalltalka. Srednio udana. ;-P"
Java to nie tylko język + API, ale też środowisko uruchomieniowe – maszyna wirtualna. Popatrz na rozkazy bytecodeu Javy i wirtualnej maszyny CLR (.NET) – podobieństwo jest ogromne, praktycznie ponad 90% rozkazów jest takich samych, albo bardzo podobnych. Warto dodać że MS zdecydował się na własną maszynę wirtualną po tym jak przegrał proces z Sun Microsystems o Javę – dokładniej o wprowadzenie niezgodnej ze standardem VM Javy, wiadomo jakie to miało by skutki dla rynku podczas gdy ta Java była by standardem w Windowsach – zresztą swego czasu czat onet'u działał tylko na MSJavie. .NET to kopia Javy + odwet za przegrany proces i tyle.
Przesadzacie z tą javą… Jeśli będzie dobrze zoptymalizowane i będzie płynnie chodzić to kogo obchodzi w czym to pisane?
MIDP ma parę ładnych latek… Po drugie można to zintegrować i będziemy mieli jeszcze fajniej.
P.S.:
Macie już pomysł jak zgarnąć nagrodę
to wszysto w javie? bez sensu. to ja dziękuję. Wole open Moko. ale jak beda telefony to sobie po prostu wgram i tyle.
a co ma do rzeczy to czy java, czy co innego? skoro ma natywne interfejsy (jni) do opengl_es to przeciez i tak bedzie bardzo ladnie toto dzialalo. jesli maszynka wirtualna bedzie miala jit to aplikacje i tak moga dzialac szybciej niz 80% dostepnego kodu w c++, marnie napisanego (wbrew pozorom automat potrafi obecnie bardzo duzo jesli chodzi o optymalizacje)
Widzę, że FUD, że JAVA jest ociężała i wolna ciągle żywy. 10 lat temu może na starych komputerach może i była ociężała, ze względu na zbyt dużą zachłanność na pamięć.
W tych czasach dobrze napisana aplikacja serwerowa potrafi być szybsza od C++. A na pewno łatwiej się oprogramowuje w Javie wielowątkowość. W C++ też można owszem, ale wsparcie wielowątkowości przez podstawowe biblioteki jest marne i to droga przez mękę…
>W tych czasach dobrze napisana aplikacja serwerowa >potrafi być szybsza od C++.
Sorry, ale do aplikacji serwerowych napisanych w Javie to podchodzę z 3m kijem. A to że Java jest wolna i ociężała to nie FUD tylko rzeczywistość.
Jesteś w błędzie… też tak uważałem, aż nie sprawdziłem "na sobie". Może nie nadaje się do sekcji krytycznych, gdzie naprawdę trzeba pojechać low-level, ale gwarantuje Ci, mechanizmy języka są już znacznie szybsze niż kiedyś. Najważniejsze jest to, że 2 największe zmory programistów C i C++ są ubite: Memory Leak i Core Dumped…
Memory Leak ? I Core Dump ?
ha, znam dużą aplikację Java od jednej z największych polskich firm developerskich i….
Od memory Leak aż się roi … nie na najniższym poziomie ale na wyższym poziomie – masy powiązanych obiektów z którymi GC sobie nie radzi … po 3h aplikację należy restartować na maszynach z
@IRo
Kompletna bzdura. Żeby zrobić wyciek pamięci w Javie, wystarczy (trywialny przykład) napisać stos i zapomnieć o ustawianiu na null referencji w metodzie pop (do zdejmowania ze stosu obiektów). Odśmiecacz pomaga w zarządzaniu pamięcią, ale nie jest panaceum na wszystkie problemy związane z zarządzaniem pamięcią w Javie.
public Object pop() {
if (size==0) throw new EmptyStackException();
Object result = elements[--size];
elements[size] = null; //bez tej linijki wystąpi wyciek pamięci
return result;
}
Pełny kod w książce pt. Efektywne programowanie w języku Java, str. 24, Helion.
Z tym kodziem t_ziel to nie do końca prawda. Tzn ten "wyciek" (jak to nazywasz) to po prostu obiekt, do którego nadal istnieją odnośniki w systemie, więc nie może być poddany działaniu garbage collectora. W momencie gdy ostatni odnośnik do result zniknie (np przez wyjście z bloku w którym ten obiekt był stworzony), pamięć zostanie odzyskana.
To się ma nijak to prawdziwych wycieków z C, gdzie nie zdekonstruowany obiekt do którego nie ma się już jak odwołać wisi w próżni.
Co oczywiście nie zmienia faktu że w Javie jak w innych językach programować należy z głową.
Jeśli trzymamy tysiące odnośników do dużych obiektów to nie ma się co dziwić że nasza aplikacje powoduje swapowanie
a jesli zrobimy cos takiego:
obiekt A z referencja na obiekt B, obiekt B z referencja na obiekt A a nastepnie porzucimy posiadane referencje do obiektow A i B
GC poradzi sobie z tym? w koncu na obiekt A i na B wskazuja jakies referencje.
tradycyjny przyklad… garbage collector nie ma szans sobie z tym poradzic…
jesli czlowiek popelni dostatecznie duzy blad – automat tego nie naprawi.
gc jest udogodnieniem, ale nie panaceum.
przyklad t_ziela wlasnie pokazuje typowy blad programistyczny przez ktory dochodzi do wycieku pamieci (tak michuk, to jest wyciek – spowodowany blednym algorytmem/niedopatrzeniem programisty).
@michuk
Oczywiście nie chodziło o result, tylko o elements. Rzecz w tym, że bez linijki elements[size] = null, obiekty będą zdejmowane, ale nadal będziemy trzymali do nich referencje. Innymi słowy chodzi o to, że stos najpierw rośnie a potem zmniejsza się, natomiast po zrzuceniu obiektów, nadal przechowujemy do nich referencje, co uniemożliwia odśmiecaczowi zwolnienie pamięci.
Javowy GC sobie z tym poradzi. Oczywiście jeśli rzeczywiście do A i B nie mamy referencji żadnych w innych obiektach w nieumarłych wątkach.
Analogiczna sytuacja: tablica z referencjami do obiektów — jak tracimy referencję do tablicy, GC ją pożera.
Tak, mi też oczywiście chodziło o elements.
Dla wszystkich narzekających na Javę w Android. Porównywałem wczoraj zaraz jak wyszło SDK szybkość działania Eclipse + emulator android i Visual Studio 2005 + emulator windows mobile. Tak na oko emulator androida działał 3 razy szybciej. Także dajcie spokój z tą szybkością javy.
Java jest szybka, ale na maszynach, które nie mają wsparcia do sprzętowego wykonywania jej kodu (np. na PCtach) jest zasobożerna, ze względu na kompilowanie byte-codu przez kompilator JIT w czasie działania programu. Przez to w RAMie są 2 kopie klasy, jedna w byte-code Javy, a druga skompilowana – oczywiście struktury, które to obsługują też sporo zajmują. Problemem Javy na PC jest zajętość w pamięci a nie prędkość – oczywiście prędkość staje się problemem w momencie gdy pamięć musi być swapowana, ale wynika to też z dużej zajętości programu w RAMie.
wierz mi ze to nie dublowanie postaci kodu klas jest problemem, a bardziej podejscie programistyczne (zarzadzanie pamiecia przez GC jest wygodne i zazwyczaj przynosi bardzo dobre efekty, ale w niektorych przypadkach o wiele lepiej jest moc samemu kontrolowac kiedy okreslone fragmenty pamieci powinny byc zwolnione)
Potencjalnie można prawie kontrolować poprzez wpisywanie null do nieużywanych odnośników.
Kiedyś implementowałem prosty GC dla C++. Najbardziej czasochłonne jest poszukiwanie wzajemnych referencji dwóch obiektów i czy żadna referencja programu nie wskazuje na którykolwiek z tych obiektów.
Rozwiązaniem jest więc wpisywanie null do referencji w porzucanych obiektach. Bardzo pomaga to GC.
Cały czas nie to. Tj. GC daje pewien narzut pamięciowy nad ręcznie zarządzaną pamięcią (teoria kolejek, jakby się kto pytał). Ale problem Javy to java.lang.Object z którego dziedziczy wszystko i który jest ,,tłusty'' do przesady.
sporo racji…
co do GC to ztcp w javie kiedys byla mozliwosc recznego jego wywolania (moze jest dalej?), po czym chyba zlikwidowali ja… moge bredzic – za trzezwy jestem :/
Jellonek jest nadal: System.gc();
Bies: "Ale problem Javy to java.lang.Object z którego dziedziczy wszystko i który jest ,,tłusty” do przesady."
Nie zgadzam się z tym, klasa Object ma pola: referencję do obiektu klasy jekiej jest, sygnalizer, mutex. Pamięć w zaalokowanym obiekcie zajmują tylko pola klasy, nie metody, więc Object praktycznie nie zajmuje NIC. Metody to:
clone() – zwraca kopię
equals(Object obj) – zwraca true jeśli referencja jest taka sama
finalize() – handler wywoływany przez GC
getClass() – zwraca referencję do klasy jakiej jest ten obiekt
hashCode() – zwraca hash code – domyślnie jest to adres obiektu
notify() – sygnalizuje oczekujący wątek przez sygnalizer (metoda wait())
notifyAll() – sygnalizuje wyszystkie oczekujące wątki
toString() – domyślnie zwraca hashCode@nazwa_klasy, więc też nie jest to pole
wait() i warianty – czeka na sygnał
To są metody, które w pamięci są w jednej kopii (występują w kontekście klasy nie obiektu), w postaci kodu bajtowego Javie i ew. skompilowane przez JIT, a sama klasa ma niewiele pól (pola występują w kontekście obiektu i zajmują pamięć proporcjonalnie do ilości obiektów).
@dna: zgadzam się w 100% wpisywanie null do nieużywanych referencji to dobra praktyka. Wpisanie null i wywołanie System.gc() daje taki sam efekt jak free w C, albo delete w C++, tylko niepotrzebnie odpala się dealokacja, podczas gdy program może potrzebować czasu procesora – lepiej aby GC zrobił to inteligentnie – wtedy gdy aplikacja nie ma dużych potrzeb, lub gdy naprawdę brakuje pamięci.
o, dzieki za przypomnienie
System.gc() to nie tyle jak free w C, tylko przeszukanie wszelkich zmiennych pod katem mozliwosci zwolnienia pamieci, po czym na kazdej z nich free…
tak wiec roznica jest bardzo duza…
jellonek napisałem, że wpisanie do referencji null I ZARAZ PO TYM wywołanie System.gc() daje taki sam efekt jak jawna dealokacja w C/C++. Tylko po co to robić, skoro GC powstał właśnie po to aby w najbardziej krytycznych momentach nie bawić się w zwalnianie pamięci? Z drugiej strony algorytmy wymagające dużej mocy obliczeniowej powinny mieć pamięć przygotowaną wcześniej, ale nie zawsze się tak da.
Oczywiście wiem jak działa System.gc(), zresztą gdybym nie wiedział to nie odpowiedział bym na Twoje pytanie
.
wiesz (co widac) ale i tak sie plunczesz w zeznaniach
taki sam efekt – jesli chodzi o zajetosc pamieci, ale nie taki sam, jesli chodzi o wywolanie free na konkretnej danej. wywolanie system.gc, to wywolanie kobyly w porownaniu do mrowki w postaci free
@ris: Wedlug ciebie porownanie predkosci pod emulacja jest w jakis sposob przekladalne na porownanie predkosci na faktycznym sprzecie? ROTFL.
Hint: jak myslisz, co bedzie dzialalo szybciej na sprzecie (telefonie): bytecode Javy czy kod maszynowy skompilowany na procesor? Co bedzie dzialalo szybciej w emulacji (w sensie, na maszynie developerskiej) i czemu na odwrot?
trasz: makowkowy trollu – poczytaj o tym jak dziala program w C++ skompilowany do bytecode llvm i uruchamiany na jit, a jak dziala ten sam program skompilowany (z optymalizacja do konkretnego sprzetu) pod gcc 4.3 (czyli z najlepszym obecnie w gcc optymalizerem).
raz jeszcze poprosze – poczytaj i nie trolluj…
@jellonek: Przeczytaj jeszcze raz moj komentarz powyzej.
Nie mowie o porownaniu predkosci wykonywania kodu kodu natywnego na kazdej z maszyn. Mowie o porownaniu predkosci emulacji kodu na inna architekture _procesora_ z predkoscia wykonywania bytecodu.
Inaczej – w skomplikowany sposob probuje dac wam do zrozumienia, ze bytecode wykonuje sie szybciej niz emuluje sie inna achitekture procesora.
przeczytaj jeszcze raz moj komentarz powyzej.
dosc jasno i wyraznie pisze o tym co Ty. tj. o wykonywaniu BYTECODE przez MASZYNE WIRTUALNA LLVM.
przeciez jestes oratorem apple – powinienes wiec slyszec o zaletach llvm bardzo mocno wspieranym ostatnio przez apple…
Są procesory ze wsparciem sprzętowym dla Javy, np. ARM gęsto stosowany w urządzeniach mobilnych. ARM potrafi ok 90% instrukcji byte-codeu Javy wykonać sprzętowo, więc strata w prędkości będzie niewielka.
Zastosowanie Javy ma sens, bo:
1. Prędkość nie jest problemem w przypadku wsparcia sprzętowego.
2. Programy będą niezależne od sprzętu
3. Java pozwala na o wiele łatwiejsze pisanie aplikacji – nie skupiasz się na problemach natury technicznej tylko na logice aplikacji
4. Będzie można zrobić implementacje tego środowiska na inne platformy mobilne i niemobilne, bez stosowania emulacji procesorów (które emuluje się ciężko).
5. Java jako jedyne rozwiązanie na świecie ma wydajność najbardziej zbliżoną do analogicznego kodu w C/C++ przy zachowaniu maksymalnej niezależności od sprzętu i platformy programowej.
Jedyną wadą Javy jest problem implementacji w sprzęcie, jest to po prostu trudniejsze.
jesli chodzi o p. 5 – troche za bardzo uprosciles
java nie zapewnia ci ani wydajnosci, ani niezaleznosci od sprzetu, a tym bardziej od platformy programowej (bo narzuca swoja wlasna). to o czym piszesz zapewnia forth – dobre implementacje sa na o wiele wiekszej liczbie platform zarowno sprzetowych, jak i programowoch – niz java. tak wiec masz zarowno wiecej platform (wspomniana wieksza niezaleznosc) a i znacznie lepsza wydajnosc.
btw. sa tez specjalizowane pod fortha procesory
no to kiedy telefony dla developerów?
poogladaj filmiki – developerzy juz maja
tak na serio – tez bym sie chetnie skusil. poki co trzeba sie zapoznac z emuglatorem…
Mam tylko nadzieję, że gugle nie zjedzą openmoko. Najlepszym faktycznie scenariuszem byłoby gdyby android, openmoko, qtopia były jak dystrybucje w Linuksie.
Co do otwartości Androida – Motorola też do smartphonów ładuje Linuksa ale ZAMKNIĘTEGO. Nie dają SDK do wytwarzania softu chałupniczym sposobem, opierają się na Javie – IMHO pisanie softu na smartphona w Javie to lamerskie podejście (oczywiście Michuk się wnerwi
)
Nie ma co się michuk wnerwiać. Proponuję jednak uzasadniać swoje twierdzenia, bo argument, że "pisanie softu na smartphona w Javie to lamerskie podejście" jest mało przekonujący
Ponieważ bo
Nie wiem dokładnie jak wygląda sprawa frameworku do openmoko OpenMokoFramework, ale widzę tam gtk+, glibc … Pisanie softu na smartphona bezpośrednio na niego vs pisanie softu na javę pracującą na smartphonie … sprawa prędkości działanie, wydajności, portowanie GNU -> openmoko
Dlatego właśnie java nie jest tu tym, co geeki lubią najbardziej.
btw. obecnie męczę mojego cpv c500 -> trudno znaleźć rom + sdk pasujące do siebie wersjami. Tu wm2005 a .net compact framework 2.0 ssie. Interesuje mnie sprawa openmoko na motorolkach – ludzie już toto robili (ten Linux od motoroli ssie)
Ciekawi mnie tylko dlaczego wybrali libc z BSD a nie uClibc który jest dobrze przystosowany do urządzeń przenośnych.
mialbys od reki mozliwosc pisania aplikacji w C na ta platforme, a to staraja sie jak tylko moga w tej chwili zablokowac. poki co staraja sie by natywny kod wychodzil tylko od nich (wiecej mozna na psuc – dzieki czemu staraja sie miec nad tym kontrole), podczas gdy szarym userom daja "namiastke" mozliwosci tworzenia aplikacji (cos jak narzedzie do tworzenia themes pod nokie, choc tu masz duzo wieksze mozliwosci – bo masz jezyk).
od paru godzin sa juz przyklady jak uruchomic wlasny kod C na googlowym emulatorze, ale opiera sie toto na czystym jadrze + statycznej binarce, tak wiec poki co nie skorzystasz z dobrodziejstw googleapi.
bardzo latwo mozna dojsc do tego jakie abi jest tam stosowane, co jest uzywane jako crt0.o, ale plikow naglowkowych juz nie odtworzy sie tak latwo…
ps. prosze mi nie pisac o tym ze na symbiany przeciez jest mozliwosc kodowania w C. srodowisko mam/znam… narzedzie do tworzenia themes bylo tylko przykladem.
tylko żeby telefony pod to nie kosztowały ~1300zł…
jak bedzie kosztowal i 2k to i tak kupie
hehehe to może zrobić petycję do operatorów – Polscy Geecy Chcą OpenMoko
chętnie podpiszę!
takie petycje sa bez sensu. jak chcesz – mozesz sie zglosic do polskiego przedstawicielstwa googli, ale nie spodziewaj sie za wiele
poki co masz srodowisko w ktorym mozesz tworzyc oprogramowanie.
przypomina mi to sytuacje z procesorami amd64, na ktore linux powstal ztcp pol roku wczesniej niz procesory pojawily sie w sprzedazy
procesory te byly dostepne wczesniej w postaci… emulatora
amd odnioslo dzieki temu spory sukces – czy uda sie to rowniez googlom?
A kto tu mówił o sprzęcie od gugli? Ja chcę openmoko
a to przeprasza, niedoslyszalem pytania
Chyba pierwszy raz przeczytałem wszystkie komentarze…
Powiem szczerze, gdy spojrzałem w SDK ugryzła mnie ta java, bo to na pewno utrudnia portowanie gotowych aplikacji spod linuxa na androida. Ale java ma też swoje zalety (i wady jak wszystko z resztą). To wiemy zapewne bardzo dobrze. Co do wydajności – nie ma sensu się spierać co jest szybsze – bardzo wiele tu zależy od samej platformy sprzętowej. Emulator – nie ma co kryć – tanie rozwiązanie – tanie niemniej nie znaczy że źle. Lepiej mieć emulator i mieć na czym testować soft niż mieć obiecany smartfon i go nigdy nie dostać.
W głębi ducha wierze że 10 baniek to dobra mobilizacja i ta otwarta platforma przejdzie próbę rynku. Z resztą czy w innym razie google by się za to zabierał?
Co do OpenMoko. W dalszym ciągu czekam na platformę i liczę, że czas kiedy będzie można to kupić w Polsce nadejdzie (prędzej czy później).
Ja to się trochę zawiodłem. Co prawda przez swoją pomyłkę ale jednak. Myślałem że Google ma stworzyć system który będzie można zainstalować na telefonach teraz obsługiwanych przez Windows Mobile i Symbiana.
Dla mnie najbardziej denerwujące w systemach na telefony komórkowe jest brak kompatybilności. Dobrze by było gdyby nie producent sprzętu decydował o systemie na nim używanym lecz użytkownik. Podobnie jak to dzieje się na komputerach osobistych.
Android nawet mi się podoba ale jeśli do jego używania musiałbym kupić specjalny telefon to musieli by mi dopłacić. Podobne zdanie ma co do OpenMoko.
Głównie dla tego że zarówno OpenMoko jak i z tego co widzę Android ma padaczne telefony, Cegłowate, brzydkie i w dodatku o słabych osiągach najważniejszych w telefonach (zasieg oraz wytrzymałość baterii).
To już ym wolał iPhona. Przynajmniej jakoś wygląda (no i pare funkcji nie stety zastrzeżonych ma np. ekran "wielo" dotykowy). Ale podobnie jak iPod jest przereklamowany. Może jakość jest dobra, wygląda fajnie oraz łatwo i przyjemnie się obsługuje ale co on obsługuje? Co z .avi (nie wspominam o .rmvb który jest chyba nierealnym marzeniem).
Jestem wielkim zwolennikiem otwartości ale już wole płacić i coś mieć a nie samą niemożliwą do wykorzystania wolność.
Myślę że do wolności telefonów jeszcze daleko.
Puki co chyba jedynym sposobem by mieć komfortowy system na przenośnym urządzeniu jest laptop z modemem GSM. Jedyny minus gabaryty.
UMPC z GSM były już mniejszy i poręczniejszy…
Ja osobiście właśnie poluje na małego laptopa… 10"-11" max.
Można tam jakoś wjechać z pythonem?
sa plany. google niezle naciska na rozwoj zarowno jythona jak i jruby.
na grupie androdida juz o tym nawet wspominano – rowniez trzymam kciuki.
Thanks for these pointers. One thing I also believe is that often credit cards offering a 0% rate of interest often bait consumers along with zero rate of interest, instant endorsement and easy over-the-internet balance transfers, nonetheless beware of the main factor that will certainly void that 0% easy streets annual percentage rate and also throw you out into the poor house in no time.