[Powered by Google Translate] [Seminar] [Android Apps (Sada s žele bonbona!)] [Jordan Jóźwiak] [Sveučilište Harvard] [Ovo je CS50.] [CS50.TV] Pozdrav svima i dobrodošli na Android Apps (Sada s žele bonbona!) Seminar. To se zove Sada s žele bonbona, naravno, jer je Najnovija verzija OS zove Jelly Bean. Kad sam govorio o Android prošle godine i učinio ovaj osnovi isti seminar Bio sam predstavljanja dizajn obrazaca i stilskih izbora za Gingerbread, iako Ice Cream Sandwich izišli na vrijeme, i to je nešto što ćemo govoriti o ide naprijed malo. Android, naravno, ima nekih problema s fragmentacijom, tako da najnoviji operativni sustav Google je obično stvarno ne ide kako bi postali uobičajena među korisnicima za potencijalno i do godinu dana, na žalost. No, bez obzira kako, mi ćemo govoriti o mnogo razloga zašto Android je puno bolje nego iOS. Ok, mi ćemo govoriti o Android odnosu na iOS, neki dizajn paradigme, kako ćete se postaviti u samo jedan slajd, i velika razlika između ove i prošle godine je samo želim zoom kroz neke konceptualne stvari koje rade s operativni sustav, a zatim ići u stvarno osnovni primjer. U stvari, samo primjer koji opisuje Google za izgradnju svoje prve aplikacije, a mi ćemo proći kroz njega zajedno i samo opisuju. Znam da mnogi od vas samo da su kodirane u C, tako da Java već će biti drugačije perspektive, i na taj način ćete dobiti svoje noge mokro i osjećam nešto više ugodno s njim nadamo. Kratki sažetak, u odnosu na Android iOS. U Android postoji ovaj jednokratni developer iznosu od 25 USD, nitko od ove 100 dolara godišnje stvar. Nema ograničenja, što znači da ako želim podnijeti aplikaciju, Upravo sam ga podnijeti, a nema odobrenje proces kao što je za iOS. Vi se razvijati s Java koristeći Eclipse, što je križ platforma, tako da ne smeta ako imate Mac, Windows, Linux ili neki stroj. Naravno, s iOS morate koristiti xcode na Macu, i Android koriste mnogo više ljudi, Dakle, ako želite da vaš app imati nekakvu vidljivosti ili možda napraviti nešto novca od reklama vjerojatno ste više vjerojatno da će imati koristi od Android. I jedna stvar koja je oduvijek bila poznato o Androidu je ekstremna količina prilagodbe, dok je iOS vrlo je fiksna u svojim putovima tako da oni mogu održavati sigurnost i kontrolu nad svakim aspektom malo od dizajna unutar svog OS-a i pojedinih aplikacije. Android je vrlo slobodni oblik, a tu je tako mnogo više mogućnosti. Ok, neki dizajn paradigmi. Obavijest ovdje baš kao i iOS ima tablete i iPhone i iPod dodiruje oni imaju za potporu, kažu, kao što je desetak uređaja, ako želite podržati povijesne stvari kao dobro. Uz Android morate podržavaju stotine uređaja, tako da postoje neke stvari koje je Google već pokušavali provesti kako bi korisničko iskustvo malo više dosljedan, , ali također ćemo razgovarati o tome kako to znači da postoje problemi rascjepkanosti da stalno moraju biti svjesni podržava. Fragmentacija znači da postoji mnogo različitih operativnih sustava, mnogo različitih telefone s različitim hardverom trčanje android sve u isto vrijeme, pa ovaj graf ovdje ide natrag za oko 6 mjeseci. Da, prije 6 mjeseci, i možete vidjeti kako najmračniji bend Na dnu je Jelly Bean, koji je izašao preko ljeta, i možete vidjeti upravo sada vjerojatno oko 2% od telefonima ga imati. Ice Cream Sandwich iziđe više od godinu dana, a četvrtina telefone ga imati. Ima još puno telefone koji koriste OS verzija od godina. Jedna stvar koja Google je pokušao učiniti kako bi korisničko iskustvo Puno dosljednija aplikacije počinje s Saće, što je tablet verziju, a zatim Ice Cream Sandwich, a Jelly Bean, oni zapravo pokušavaju istaknuti korištenje ove akcije baru, što je ono što možete vidjeti na vrhu ovog mjesta, sve što je upravo ovdje, uključujući i ovaj mali gumb postavki. To je dizajn izbor. Sada, kad ste vidjeli tri točkice to znači kliknite na ovaj, a tu će biti padajući izbornik, koji ima nekakvu postavkama. To samo pokazuje gore, jer sam kliknuo na ovaj gumb. To je nešto što oni pokušavaju koristiti kako bi aplikacije malo više dosljedan u cijeloj ploči i na taj način korisnik ima bolji osjećaj jedinstvenog iskustva. Ok, tako da u slučaju da niste to učinili već ili ako gledate kod kuće onda možete slijediti ove korake kako bi postavili svoje kodiranje okruženje. To će uključivati ​​odlazak na web stranici ovdje. Možete li Google Android SDK instalacije i slijediti neke opise tamo. Oni vam reći sve. Imaju li instalirati SDK, preuzimanje Eclipse Classic verzija, iako, naravno, mi smo kodiranje u Javi. Oni preporučuju ovu jednu, a zatim ovaj ADT, Android razvojnih alata, je plugin koji ste instalirali u Eclipse koji vam omogućava da imaju puno više iskustva s Android moderniji unutar Eclipse. To će vam dati neke Grafička korisnička sučelja za izradu stavove, i to će vam dati puno više podrške i sposobnost da se pokrenu s emulator i sve takve stvari. Primjena okvira. Želim govoriti o tome kako su projekti unutar Android strukturirani, , a onda ćemo ići u brzi primjer, i nadamo se možete postaviti pitanja u bilo kojem trenutku i osjećaju ugodno na kraju to. Imamo neke žargon prvi. Aktivnost poput zaslona možete vidjeti kada pokrenete aplikaciju. Cijeli doživljaj je aktivnost sama po sebi, tako da bi mogao misliti o njemu kao zaslon ili pogledom, , ali to je zapravo strana izvorni kod njega. Mi još uvijek nazivaju stvarni sučelja dio njega pogled. To je vrsta kao što su kako se u pset 7 smo imali kontroler i zatim pogled. Aktivnost je više ili manje kontroler, , a pogled je ono što mi radimo u pogledu XML koji je povezan s tom aktivnošću. Ulomci su nešto što se provodi u Ice Cream Sandwich ide naprijed. To je samo ideja uzimanja dijelova more ili djelatnost te ih dijeli u odvojenim prostorijama, tako da možemo bi naš broj više korisna za ove različite uređaje da moramo podržati, a to je samo način pokušava Također faktor iz više koda. Usluge su pozadinske stvari poput glazbe ili navigacijske pravce potencijalno. Davatelji sadržaja, to su API-ji unutar operativnog sustava koji vam omogućuju da pristup zajedničkim podacima kao što su kontakt informacije, a zatim namjera je nešto što ćemo koristiti kada želimo pokrenuti nova djelatnost iz naše trenutne aktivnosti. Pozdrav Android, ovo će biti projekt koji ćemo razgovarati o tome. Ja sam zapravo ću to učiniti za vas, a onda ćemo napraviti nešto gdje ćemo kliknuti na gumb s nekim tekstom i pokrenuti novu djelatnost. Vrlo jednostavan, ali želim ići kroz ono što će ići u projekt kao što je ovaj. Kada napravite novi projekt vidjet ćete okviru Eclipse Tu je ovaj projekt pod nazivom Pozdrav Android. Zatim tu su i cijela hrpa mapa ovdje. One koje ste stvarno bave se izvor mape, resursa mapu, res, a donekle libs mape za knjižnice. I samo da smo na istoj stranici s koje ako ste bili za stvaranje novog projekta, možete to učiniti upravo ovdje, pa ako želim ga zovu HelloAndroid, a zatim ga automatski čini cijela hrpa informacija za nas. Ime paketa je trebao biti jedinstveni identifikator koje bi inače biti povezana s web stranice, ako je jedan. Na primjer, ja ću nazvati ovu net.cs50.helloandroid. I već sam napravio ovaj projekt odjednom. Ok, ispričavam se. Nazovimo to HelloCS50. I onda će pitati stvari kao kakav ikone želimo napraviti. To je sve zbog Android Developer Tools sučelje, plugin koji smo dodan u Eclipse, tako da možemo birati stvari kao što su Ikona ono što želimo, a to će ići na toj dubini, ako želimo. Ali na kraju, samo bi projekt, i sve pokazuje se upravo ovdje. Kao što sam pokazao na drugom zaslonu, imamo izvornu mapu, a ja ću razgovarati o tome što sve to znači da je prije, ali se može vidjeti da je odmah to nas vodi do HelloCS50 zaslonu. Postoje neke tipke više ovdje za dodavanje teksta i tekst polja izgleda. To je vrsta kao što su Xcode, ali nažalost ne sasvim kao moderniji. No, isječci će biti vaš prijatelj i ADT posebno za to. Ok, izvor mapu gdje je su Java datoteka se održavaju, a to je zapravo početak vašeg programa. To je u osnovi kao kontrolora. Resource folder ili res je mjesto gdje ćemo držati zaslon izgleda, slike, zvukovi, tekst, animacije i sve ostalo, Libs, očito, knjižnice. I Manifest, to je način na koji sustav Android zna kako komunicirati s aplikacijom. Ona to govori o dozvolama i što će biti s njima zapravo pokrenuti. To je sve bitne informacije koje je potrebno pokrenuti aplikaciju. Izvor mapa-ako ga proširiti kao što možete vidjeti ovdje. A primjer koji kod bi izgledati-to je zadano broj. Kao što smo to zvali, MainActivity. Po defaultu, dobili smo onCreate, što je funkcija koja se zove kada je ova aktivnost opterećenja, kako god želite nazvati onCreate (savedInstanceState). Ovo će vratiti sve komadiće informacija u slučaju app je zastao. Tu je cijeli životni ciklus aktivnosti shema koje možete pogledati na kada se malo više u dubinu u njemu, ali najvažnija linija koda je to setContentView funkciju koji će učitati datoteku resurs za izgled. A što onCreate ovdje u osnovi radi se to govori kad sam napraviti ovu aktivnost želim učitati ovaj izgled. A mi ćemo govoriti o tome što izgleda da je u drugom. Ako smo pokrenuti da se ovdje to izgleda točno ovako, i po defaultu, jer smo to i Eclipse ADT radi za nas ovo je sve predloženi kôd koji se stvorio za nas, i možemo krenuti dalje i promijeniti stvari kao što smo željeli. Resursa mape, kao što sam rekao, ovo je mjesto gdje ćemo držati sve izgleda, drawables u smislu bilo kakve slike- oni nazivaju drawables-a onda zvučne datoteke, izbornici. To je način cijela hrpa XML-u lijepoj sortirani mode. Kao što možete vidjeti, postoje. Hdpi, ldpi, mdpi i xhdpi mapa za drawables. To su različite gustoće, tako da zaslon visoke gustoće piksela po inču, niske gustoće, srednje gustoće, iznimno visoke gustoće. To je, opet, tako da možemo podržati sve te različite uređaje, i idealno, imat ćete različite slike za svaku različite rezolucije. Izgledi smo gdje smo uključiti sve različite izglede da će se koristiti u različitim aktivnostima. Oni također mogu uključivati ​​izglede za fragmenata, što znači parcijalnih aktivnosti osnovi. Ako želite učiniti nešto cool kao i uvijek kada rotirati telefon ga želite imati drugačiji izgled možete učiniti izgled-krajolik kao drugu mapu, Android i automatski ima cijela hrpa tih pravila unutar resursa mapu, pa će znati gledati na različite mape na trenutnom postavkama telefona, kakav hardver koji koristite. Isto tako, ove vrijednosti-v11 ovdje i vrijednosti-V14 i zadane vrijednosti mapu ovo je za- dobro, vrijednost sama po sebi, to će biti zadane vrijednosti u svim verzijama operacijskog sustava. S druge strane, V11 i V14 odgovaraju Saće i Ice Cream Sandwich, odnosno. Opet, to su načini na koje-u tim mapama su različiti nizovi i stilova, tako da možete prilagoditi izgled vašeg app ili potencijalno čak i njegova funkcionalnost, iako je to vjerojatno biti loša ideja, temelji se na verziji operativnog sustava. Razgovarao sam o svemu tome ovdje. Opet, crtanja, sirovi, izgleda, vrijednosti. U defaultno, ako idemo u Hello Hello Android ili CS50 upravo sada to će izgledati baš kao što je ovaj. To će pozdraviti svijet. Kao što možete vidjeti ovdje s Android teksta Tekst u ovom tekstualnom prikazu, što je zapravo samo oznaka, je ono što bi ga zvati u iOS. Ima tu smiješno zapis @ string / hello_world. To je tako možemo-možemo pokušati izvući sve žice, sve hard-kodirane žice u Androidu u zasebnu mapu, što će se dogoditi da se u values.strings. Ako gledamo ovdje, možemo vidjeti da imamo hard-kodirani niz spasio ovdje za Pozdrav svijetu, i to se zove halo svijet, a to je vrsta zajedničko dizajn odluka u mnogim platformama koje želite- žica vrsta stvari koje želimo potencijalno moći promijeniti. Mi ne želimo kontrolirati F u našoj datoteci izvornog koda u našem XML. Želimo biti u mogućnosti da se to promijeni kad smo dobili priliku. Ovaj XML datoteke, strings.xml, je način vađenja hard-coded žice koje bi se inače u našim rasporeda sredstava ili u našem izvornom kodu. Manifest je mjesto gdje ćemo držati ovo bitne informacije o programu. To uključuje paket ime. To mora biti jedinstveni identifikator. Za razliku od App Store za iOS i nazive programa ne moraju biti jedinstveni, a zapravo može promijeniti ime vaše aplikacije nakon što ga pošaljete, pa ako sam početi s Angry ptica, a onda sam napraviti update, a ja ne želim objaviti novu verziju Mislim da sam mogao nazvati Angry Birds 2 dok sam na istoj release ciklusa. To bi samo prikazati kao update. Jedina stvar koja mora biti jedinstven je to ime paketa, što mnogi ljudi ne će vidjeti. Pa, samo bih vidjeti ako ste bili u potrazi na izvorni kod ili ako postoji neka vrsta pogreške. Komponente uključuju aktivnosti, tako da ćemo morati proglasiti bilo kakve aktivnosti koje koristimo. Ovo je dopuštenje takve stvari. Budući da Android nema ovo rigorozan proces prijave za podnošenje aplikacije, umjesto da samo učiniti sve temelji off dozvolama i proglašenja stvari u manifestu. SDK verzija je također važna. Možemo postaviti koristiti kao SDK nešto minimalnu verziju. Očito, želite stvoriti kod i dizajn za novije operativne sustave. Možda nije najnoviji, možda ne Jelly Bean. Možda želite dizajn prvenstveno za Ice Cream Sandwich, iako su prilično mnogo isto u smislu dizajna odluka i stvarne knjižnice i API-ja. Ali prije nego su ljudi od izvorne verzije Android poput krafni povratku kad- koji još uvijek dogoditi da se koriste da pokušate preuzeti Vaš zahtjev i onda reći to ne radi na mom telefonu možete postaviti minimalnu verziju i to se Gingerbread ili Ice Cream Sandwich ili što god da se osjećate ugodno podnošenja. I ovo je primjer Manifest. Možemo pogledati na aktualnom jednom u malo. Ok, samo mi ćemo ići naprijed s demo sada. To je ogledni primjerak ako Google Android izgraditi svoju prvu aplikaciju ili nešto slično. Mi ćemo proći kroz sve što se događa tamo, i ispričavam se, samo za referencu Tko ovdje zna Javu na bilo koji mjeri? Ok, tako da je novi Java kodiranje jezik za većinu ljudi dolaze iz CS50. Ukratko, ići ispočetka ono što ovdje piše, ono što želimo učiniti je umjesto podešavanje ovaj Hello World aplikacija da je sve to ipak je to pokreće i kaže halo svijet i kaže halo CS50 na vrhu, jer to je djelatnost ime idemo pokušati napraviti tekst polje i gumb tako da kad smo pritisnuti ovu tipku da će se tekst iz tekstualnog polja i pokrenuti novu djelatnost, a to će reći: što god da je tekst u aktivnosti, a to je relativno jednostavna. To nije vrlo zanimljiv. Vi ne želite objaviti bilo koju aplikaciju kao što je ovaj. Ali to pokazuje neke važne stvari dizajn. Morat ćemo komunicirati s Manifest, s izgledom datoteka, s izvornog koda, i možete vidjeti kako pokrenuti jednu aktivnost na drugu. Počet ćemo s rasporedom za naš prvi aktivnosti, za koje znam da je vrsta malih, , ali kao što možete vidjeti upravo sada, sve je to je da ima našu logotip koji smo stvorili, Naziv aktivnosti, a to govori Pozdrav svijetu u centru. Umjesto toga, sam prvi put idem napraviti ovo u linearni raspored, relativna izgleda, a to su sve stvari možete pogledati i vrijedi ide preko u nekom trenutku u pogledu izgleda. To je puno poput HTML-a. Rekli smo da to nije stvarno vrijedno znati u smislu programatski smislu, ali postoji toliko različitih izgleda možete kontrolirati, i to je baš kao i CSS u smislu stilova. Postoji mnogo događa samo u smislu estetike ovdje, i da, to je vrijedno učenje, ali to je jedna od onih stvari trebali pogledati kao što ide, a vi se osjećate kao da vam je potrebno nešto novo. Ja mogu iskoristiti neke od alata ADT ovdje barem za početak sa. Ja ću napraviti polje za unos teksta, a ja ću napraviti gumb. Stavite ih tik jedni drugima. Oni su već veličinu odgovarajući način. Žao nam je, opet, vraća se na razliku između linearnog rasporeda i relativnog izgleda, linearno izgleda daje malo više funkcionalnosti u smislu ispunjavanja prostora i pazeći mi položaj stvari vodoravno ili okomito. Velika razlika između linearne izgledu i relativnom rasporeda je relativna izgleda sve pozicije u odnosu na druge prikaze, i dobra stvar o tome je da je potrebno manje vremena za crtanje jer operativni sustav gleda na sve koda i kaže to ide u odnosu na ovo ovdje, ovdje. To znači da ima manje mjerenja nego cijela hrpa smješteno linearnih izgleda, što ću morati učiniti ako sam htjela stvari ići vertikalno ovdje. Već sam neke stvari ide vodoravno, tako da ću morati neku drugu linearnu izgled da ih gnijezdo okomito, ali ako ja radili relativnu izgled sam mogao reći imajte to na lijevoj strani, ovaj s desne strane i ispod te stvari. Ali jer želim im da ispune sada ću koristiti linearni raspored, i možete ga vidjeti već se puno toga za nas. Svi prikazi moraju imati svojstvo širine i visine, i to se događa da imaju težinu od 1, a to ima težinu od 1 tako da ispunjava cijeli prostor. No, širina i visina su najvažniji. Ovaj ID polje ovdje nije važno u aktualnom rasporedu osim ako se koristi relativnu izgled i govoreći možemo referencirati jedan pogled poziciju u odnosu na drugu. Ako smo imali relativnu izgled se može reći poziciju ovu nastavku ovoga ili iznad tog ID, ali to će biti važno ID kada smo ga koristite u našem kodu, jer smo uporedili pojedinačni prikazi na ovaj način. A onda možete vidjeti tag requestFocus, što je nešto što vjerojatno vidjeli u pset 7. Tu je oznaku auto fokus ili nešto uz one linije za jednu od polja. I jedna stvar, naravno, možemo učiniti baš kao u HTML-u, i obavijest jedna od lijepih stvari o ADT je ​​da autocompletes ovdje. Možda nije tako lijepo kao što je to u Xcode, ali to ipak ipak, i mogli bismo reći savjet i zatim mu nekakav string željeli napisati poruku, a ako sam mu dati trenutak, također primijetiti da sam se malo pogrešku ovdje rekavši da bismo trebali koristiti string resurs za to, pa ako mi neka to učini neki od teškog rada za mene Ja mogu odabrati ovaj niz, to lomljenje Android i ekstrakta Android string. Ja mogu dati to ime, napisati poruku, i što je to sada učinio je zamijeniti taj hard-kodirani niz s obzirom na niz u nizu-a. XML datoteke, što znači sada je to ovdje. I znam da se čini pomalo trivijalno, a kao dodatni posao u ovom trenutku, ali kad imate hrpu stvari, cijela hrpa žice, to je jako važno, a posebno za lokalizaciju jer kao što sam spomenuo ranije, Android je vrlo globalno koristi operativni sustav koje možete jednostavno napraviti-en vrijednosti ili vrijednosti-SP ili nešto za engleski ili španjolski ili druge jezike. A onda vjerojatno niste imali to iskustvo još jer nismo puno JavaScript u smislu web programiranja, ali možemo napraviti ovo polje s nazivom onClick za gumb, i to je način pozivom u našem izgledu da želimo određenu funkciju da se zove u našem izvornom kodu. Idem nazvati ovaj sendMessage, i kako bi ovaj posao to znači da je u glavnom aktivnost ovdje Ja ću morati napraviti funkciju koja je javnosti , tako da se može pristupiti u izgledu. To je nevažeće jer jednostavno ne žele da se vrate ništa. Zvat ćemo je sendMessage, a to traje pogled, što je svojevrstan kontekst da možemo usidriti ovu metodu na to individualno pogled kada smo ga radi. I ne znam jeste li primjetili-dobro, ne bi ni primijetio, ali u ovom trenutku ovdje ovo je pogled tipa koji još nije uključena, i naravno, što svi znamo iz CS50 o tome ne uključujući vrste. Lijepo je stvar o IDE-a poput Eclipse je da ako zaboravite uključiti tip će podcrtati s malo crvene valovite a zatim vam dati mogućnost za uvoz pogled. Brz način za to je kontrola pomak O, i to će uvesti sve datoteke koje je potrebno da. Sada kada imamo ovu funkciju sendMessage, koji će poslati poruku iz MainActivity na novu aktivnost, ćemo morati koristiti namjeru za pokretanje novih aktivnosti iz ovoga, tako da ćemo vjerojatno žele stvoriti globalni konstantan ili se također posebno javnog konstantna koji će nam pomoći da znate kako ćemo na referentni string jer kad smo stvoriti namjeru da nismo samo zove novu aktivnost, ali možemo dati mnogo podataka. Skup je zapravo pojam koji se koristi Android, i to je način da se kaže da je to dodatnih podataka, koji ne može biti na vrlo sofisticiran tip podataka, ali svakako može uključivati ​​logičke ili žice ili Ints. Takve stvari. Slobodno pitajte o bilo kojem od ovih kvalifikacija ovdje, javnosti, konačno, statična. Javna je važno. To znači da možemo pristupiti ovoj varijablu iz drugih datoteka izvornog koda kao kada smo stvorili novu aktivnost. Možemo referentne string unutar ove datoteke. Ako je privatno, to znači da je ograničen na ovom pojedinačne datoteke ovdje. No, mi ćemo nazvati ovo nešto kao dodatnu poruku. Sada smo napravili ovu funkciju, a ako kliknete na gumb, ova funkcija će biti pozvani. No, nismo učinili ništa, očito, u funkciji. Ono što želimo učiniti sada je stvoriti novu aktivnost, aktivnosti koje će zapravo biti pokrenut. U Eclipse, možemo reći, novi Android aktivnost, aktivnost prazna. Možemo mu dati ime. Nazovimo to rezultat naše aktivnosti. A onda je to hijerarhijska roditelj polje je način određivanja Kako su aktivnosti međusobno povezani. Jer ovo će biti lansiran iz druge aktivnosti treba navesti da je roditelj glavni aktivnost. A mogao sam kliknuo na sljedećem polju postoji, što bi rekli su nam neka dodatna polja koja je također, uključujući ali lijepa stvar o ADT, opet, je da ako sam se pomaknite prema dolje ovdje u manifestu zapamtite da je sve ovo stvarno bio uključen po defaultu kad smo izvorno izradili projekt, i sada, jer mi se ovo stvoriti novu aktivnost, a ne samo dodajući vlastite klase datoteku jer smo prošli kroz njihov GUI za to Već je dodao sve to na Manifest za nas, što samo znači da je sada operativni sustav neće žaliti kada pokušavamo pokrenuti ovu aktivnost. I to je također, naravno, dao mu oznaku, koja se također pojavljuje u nizovima. To čini puno stvari na stražnjem kraju za nas. U svakom slučaju, sada kada imamo ovaj rezultat aktivnosti, kao i, Stvarni izvorni kod u datoteku izvora mapu, i možete vidjeti za kratko dodiruju na to- jer mi je pričao o tom hijerarhijskom roditelja dao ovo polje android.r.ide.home u ovom odabranom onOption stvar. Što to zapravo govori je tu je gumb izbornika sada da je u gornjem lijevom kutu zaslona ako se vratim na PowerPoint, gdje smo prvi put razgovarali o akcijskom baru zbog hijerarhijske roditelja sada postoji mala strelica ovdje i to je kliknuti, tako bismo trebali biti u mogućnosti da-nakon što smo zapravo pokrenuti ovu aplikaciju- vratiti, i to je način uštede nam malo koda postoji. Sada je u njemu-i, čini se da se žale da je na trenutak. Idemo komentirati da van. Sada, kako se zapravo u interakciji s ovih dviju djelatnosti, moramo stvoriti namjeru koja uključuje svih tih podataka. U sendMessage sada idem na krstarenje kroz neke bitova koda i objasniti da kao idem. Namjera, kao što sam rekao, je način za pokretanje jedne aktivnosti na drugu. Namjera je tip. Mi smo stvaranje varijablu myIntent. A to je zapravo objekt, što je razlog zašto moramo zvati novi. To je uobičajena uporaba Java postoji, što bi moglo potrajati malo koristi za dobivanje. To znači da ćemo pomoću aktivnosti ili klase MainActivity, i namjera na taj način uzima aktivnost to ide od te aktivnosti da će, što nazivamo ResultActivity, i da je svoj razred. Uključi to. A onda, kao što sam spomenuo prije, dali smo taj ID na području uređivanje teksta i prikaz teksta, tako da bi za programsko snimanje Tekst koji postoji u editText mi koristimo ovu funkciju pod nazivom findViewByID, koji je sličan nešto što ćete koristiti prilikom pokušaja da se polja s DOM. Možda David govori o tome u predavanju. No, to je samo način dobivanja onih-to je razlog zašto smo označiti ove stvari s tim poljima. Id.editText1. To je već autocompleting za mene postoji. A onda ćemo također uključuju-ovu editText sada kada imamo na terenu u našem programu, sve što je bilo u osnovi findViewByID što bi mogao misliti o njemu kao da nam daju reference na taj editText. Sada želimo dobiti string ili poruka u tom editText što možemo učiniti pomoću- možete misliti editText kao struct- mi to zovemo objekt u Java-s cijela hrpa različitih metoda ili polja i osobine priključen na njega. Kad kažem editText. to mi daje priliku za pristup Metoda kao što Gettext, koji će se trenutni tekst u tom editText a zatim pretvaranje da je izrijekom u nizu, a mi smo spašeni poruku. Sada smo zapravo žele nešto učiniti s tom namjerom smo stvorili nekoliko trenutaka prije. Ja ću staviti dodatni kako se zove u namjeri, koji se, opet, kao što sam rekao prije, ovo je način stvaranja zamotuljak s cijelom gomilom podataka. Dodatni Poruka je naš tag tako da znamo što smo štedi ovaj pod, i onda ću uključujući poruke. I onda mi zapravo može pokrenuti aktivnosti dajući mu parametra myIntent. I to će zapravo lansirati aktivnost, tako da sada jer sam nadograditi na Windows 8 Tu bi moglo biti neke pogreške koje se pojavljuju kratko, ali pokušati ih ignorirati. A to je Android emulator. Nadam broj zapravo će se pojaviti u trenutku. Opet, ignorirajući sve one male stvari. Ali Android emulator možete natjecati bilo koju verziju operativnog sustava od najranijih one, krafna, Gingerbread. To je Jelly Bean 4.1. Ali kao što možete vidjeti upravo sada, to je nešto što smo napravili. To ima MainActivity, editText, gumb. Ja mogu upisati nešto ovdje, ali ono što nam nedostaje u ovom trenutku? Napravili smo na terenu u MainActivity da će to poslati poruku za druge aktivnosti, ali u ovom trenutku nismo učinili ništa u druge djelatnosti, tako da to neće primiti ništa. Idemo završiti taj dio prije nego što smo ići dalje. Ovaj rezultat aktivnosti, ono što trebamo napraviti je da ćemo morati učiniti je da ćemo morati- možemo upućivanje namjeru u ovom djelatnošću, tako da moramo uhvatiti nakane, što je jako jednostavno. To je funkcija uključena u klasi djelatnosti, tako da mi samo može reći "dobiti poruku od namjere." "Namjera myIntent = getIntent." I to će nam dati-myIntent sada je objekt, što je referenca na namjere koje nas je dovelo do ove aktivnosti. MainActivity naziva i daje dodatne informacije kako bi rezultirati aktivnost. Rezultat aktivnosti sada izgleda u namjeri da ga je dovela ovdje, i možemo pristupiti poruku da smo stvorili u drugu, getStringExtra, a to će autocomplete za mene. I sjeti se tada, na način na koji smo označili da je malo podataka bio dajući mu ovo područje ovdje, ovaj javni string, što je oznaka za string smo zapravo uključeni. Ako kažem MainActivity.Extra_Message to pravo postoji, a to je nešto kao parametar ime kad smo prošli kod sa kontrolerom na predlošku, kad bih rekao nešto naslov strelica. To je ista vrsta ideja postoji. Sada, ne zaboravite to. Također nam je ovaj auto stvorio ili automatski generirani kod za rezultat aktivnosti, što uključuje tekst prikaz u sredini koji kaže Hello World. Mi bi potencijalno moglo bi da veći. Idemo to učiniti prvi. Mogli bi ga 40 gustoća piksela neovisni. Da vidimo, to je super ogromna. To će biti u redu. A onda, kako bi upućivanje ovaj individualni pogled teksta u našem kodu ćemo morati dati osobnu iskaznicu, i kako bi se to kažemo @ + id, što znači da dodijeliti ID. Ako mi samo rekao @ id da bi se pretpostaviti da smo pozivom iskaznicu koja već postoji, i nazovimo ovu našu resultTextView. I obavijest da je u XML nema potrebe za zarezom ili bilo što. Sve je unutar tih oznaka. To je vrlo sličan HTML-u puno osjetila. Potrebno je malo koristi za dobivanje, ali na kraju ćete se osjećati prilično ugodno s njom. Idemo ažurirati tekst za naše more rezultata teksta, i kao što smo učinili kad smo bili uzimajući to polje uređivati ​​tekst u druge djelatnosti u MainActivity ovdje ćemo i isto- pronaći ćemo stajalište pomoću ID. I R, u slučaju da nisam spomenuo ovaj prije, je referenca na naše resurse mapu, a zatim ID je referenca za sve u mapi resursa, sve iskaznice, i resultTextView. I baš kao i prije, resultTextView je objekt, što znači da ima sve te osobine povezane s njom. Kad smo iskoristili Gettext za uređivanje teksta za ovaj tekst polje ili tekstualni prikaz zapravo možemo koristiti setText, a onda smo već pronašli poruku od namjere, pa mogu reći poruku, a to će zapravo postaviti poruku. To je uzeti trenutak za pokretanje, a onda ćemo vidjeti hoće li ili ne to ruši, , ali bilo kakva pitanja o tom procesu upravo tamo, takva vrsta interakcije? U mnogočemu je jednostavan. Razlog ću kroz nešto relativno jednostavan je, opet, jer ste dobili da biste vidjeli u interakcije između izgledu, izvorni kod, kako ste referentni stvari a možda se malo izloženost kako Java tamo radi. Ako sam zapravo nešto tipa ovdje, kao što ohai, a onda sam pritisnite gumb, to pokreće novu aktivnost, a to tekstualni prikaz kaže ohai. To je vrlo jednostavan, ali nadamo se nakon tog primjer što vrsta vidjeti kako ta interakcija djeluje, a sada da je nered datoteka Na lijevoj strani, za svih tih projekata mape, nadam se da znate gdje se mogu pogledati danas. To je tvoj izvor broj područja. Izgled je zapravo jedina stvar koju ćete nositi sa sve dok ne uključuje slike a drawables ili što god, i vrijednosti, koje će uključivati ​​žice, kao što smo spomenuli, a zatim stilovi je nešto što je vrsta kao što su CSS. Adresa ga kad želite, ali sve dok ne osjetite ugodno s dodavanjem dodatni štih na svoj zahtjev da nema potrebe brinuti o tome previše. Samo završiti jednu drugu stvar koju svakako želite uključiti- uz pretpostavku da želite integrirati cool značajke i uštedjeti neke dodatne kodiranje- će se uključiti 3rd party knjižnice. Evo malo Android momak s Sherlock Holmes šešir. To je akcija bar Sherlock knjižnica, koji u osnovi znači da je akcijski bar ste vidjeli ranije, koji je sada standard u Ice Cream Sandwich i Jelly Bean, Ako želite donijeti takvu vrstu iskustva korisnika kako bi korisnicima na starijim verzijama i spasiti od brige o tome kako korisnik će se kretati na starijim verzijama ako ta stvar nije tamo možete uključiti ovu knjižnicu i onda samo trebate da referentna umjesto default Android knjižnice za akcijskom bara, što referentno ovu knjižnicu podršku. Stvari kao Scoreloop, to je velika, ako idete uključiti igru. To vam omogućuje da dodate vođa zajednice i postignuća u igrama. AdMob je način stavljanja oglasa u svoje aplikacije u slučaju da želite napraviti malo novca od njega. Naravno, tu je Facebook i Twitter za integriranje postoji ako želite dijeliti stvari jednostavno, et cetera. Dropbox, isto tako, i Google Analytics je da shema izgleda jedan postoji. To će biti vrlo važno ako stvarno želite vidjeti tko je u interakciji s aplikacijom ili tko je to, kako su u interakciji, i tako dalje. Google, po defaultu, govori puno o statistici koja je instalirala vaš app i što oni imaju telefone, što operativni sustav verzije imaju. No, ako želite vidjeti tko ga koristi na dnevnoj bazi i kako ga koristiti onda ćete želite uključiti neku vrstu sustava za praćenje kao što je to. Kada ste spremni za distribuciju svoju aplikaciju Ne treba ulaziti u to u previše dubine. Kliknite na link ovdje, Google igrati. Nekada je to bilo Android tržište. Oni preimenovan sve što je s Google Play, pa sad ti poslati na to. To je vrlo jednostavan. Morate uključiti opis, neki screenshotovi. Kao što sam rekao, ne postoji proces odobravanja poput iOS. A gdje otići odavde? Pokazao sam vam jako jednostavan primjer. Nadam se čini užasno jednostavna pa to je vjerojatno dobar znak. Ako ste uopće osjetili malo zbunjeni ili niste sigurni o točno ono što sam tipkati to je također u redu, ali od ovog ići na Google vodiče. Ovo je dobro mjesto za početak. To će vam govoriti kroz ono što oni očekuju u smislu primjene dizajna, Kako su korisnici normalno komunicirati s njim. To je puno više nego slobodni oblik iOS, rekao bih, koji se čini kao stol pogledi-Ne znam, to je njihov kruh i maslac. Sve je stol pogled klizna gore i dolje. Uz Android oni definitivno potaknuti ljude da na to gledate iz cijela hrpa različitih perspektiva. Kada su kit za razvoj softvera u ovom ADT po defaultu imate hrpu primjera projekata u Androidu. Upravo ovdje, Android, Android Uzorak projekta. Ako sam kliknite na to, onda mogu odabrati verziju za koju uzorka projekti primjenjivati. Postoji cijela hrpa različitih stvari ovdje. Ona započinje s akcijskom bar kompatibilnosti, brzinomjer igra, backup i restore, Bluetooth, gesta graditelj. JetBoy je primjer igre su ti dali, kao što je LunarLander. Postoji cijela hrpa uzoraka aplikacija ovdje, i svi su oni usmjereni na različite aspekte Androida API, , a ideja je da kao što bi vaš zahtjev ne morate naučiti sve o Android napraviti Android aplikaciju. Vi samo morate naučiti o dijelovima koje ste zapravo ćete koristiti. Pogledajte ovih primjera knjižnicama. Slobodno kopirajte i zalijepite kod i to ponovo. To je velika stvar za pogledati u težoj koda i pokušati ga shvatiti, što je, naravno, zašto u CS50 Često smo vam dati velike količine izvornog koda. Pogledajte neke od njih, ako idete koristiti slične knjižnice , a zatim ga primijeniti na svoj vlastiti kod. I naravno, postoje tutoriali. Traži tutoriali. Našao sam puno dobrih online koji vam mogu ubaciti u brzinu s tim što stvarno fragmenti su i kako možete ih koristiti. Neki od tih novih dizajnerskih stvari, kao što su fragmenti, vi stvarno ne moraju biti zabrinuti ako ste izradu prilično velik u opsegu projekta. Ovo su riječi koje Google pokušava ukinuti u. Stackoverflow je, naravno, tvoj prijatelj. Nadam se da sam vam prodao malo na Android, shvativši da je puno lakše pristupiti u smislu samo na kodiranje jezika. Java je rekao bih da je mnogo lakše razumjeti nego Objective-C. Android raste mislim da puno više od iOS. Mislim, podaci su tamo, osim onoga što mislim. To će biti oko za neko vrijeme, i oni su nekoliko godina iza sebe u smislu njihov dizajn ciklusa, pa to je vrsta razumljivo da oni još uvijek rade kroz neke od tih konzistencije pitanja, kao što je ovoj akciji bar je nova stvar za njih još uvijek, svojevrsno stvaranje slično korisničko iskustvo na svim svojim aplikacijama. Nadam se da možete ići naprijed i sada se otvaraju Eclipse i napravite svoj vlastiti Android aplikacije. Se bilo tko imati bilo kakvih pitanja prije nego što smo završiti o bilo čemu? Mogu vam reći odgovor je 42. Pa, sretan kodiranja svima, i sretno. [CS50.TV]