[Powered by Google Translate] [Seminaar] [Android Apps (Nou met Jelly Beans!)] [Jordan Jozwiak] [Harvard Universiteit] [Hierdie is CS50.] [CS50.TV] Hallo almal, en welkom by die Android Apps (Nou met Jelly Beans!) Seminaar. Dit is nou bekend met Jelly Beans, natuurlik, want die jongste weergawe van die bedryfstelsel genoem Jelly Bean. Toe ek gepraat oor Android verlede jaar en het dit basies dieselfde seminaar Ek was die aanbieding van die ontwerp van patrone en stilistiese keuses vir peperkoek, selfs al Ice Cream Sandwich uitgekom het by die tyd, en dit is iets wat ons sal praat oor die pad vorentoe 'n bietjie. Android, natuurlik, het 'n paar probleme met die versnippering sodat die nuutste Google-bedryfstelsel is gewoonlik nie regtig gaan word algemeen onder die gebruikers vir potensieel tot 'n jaar, ongelukkig. Maar verontagsaam wat, sal ons praat oor baie van die redes waarom Android is baie beter as IOS. Goed, sal ons praat oor Android versus IOS, sommige ontwerp paradigmas, hoe sal jy stel in net een skyfie raak, en die groot verskil tussen hierdie en verlede jaar is ek wil net Klik op die deur 'n paar konseptuele dinge werk met die bedryfstelsel en dan in 'n baie basiese voorbeeld. Trouens, net die voorbeeld wat Google beskryf vir die bou van jou eerste artikels, en ons gaan deur dit saam en net beskryf. Ek weet baie van julle het net gekodeer in C, so Java is reeds gaan wees 'n ander perspektief, en op hierdie manier sal jy kry jou voete nat en voel 'n bietjie meer gemaklik met dit hopelik. 'N vinnige opsomming, Android versus IOS. In Android daar is dit one-time ontwikkelaar fooi van $ 25 nie een van die $ 100 per jaar ding. Daar is geen beperkings nie, wat beteken dat as ek wil 'n artikels in te dien, Ek het net dit inhandig, en daar is geen goedkeuring-proses soos daar is vir IOS. Jy kry om te ontwikkel met Java gebruik van Eclipse, Dit is kruis-platform, so dit maak nie saak of jy 'n Mac, Windows, of 'n Linux masjien. Natuurlik, met IOS jy Xcode te gebruik op 'n Mac, en Android is gebruik deur baie meer mense, so as jy wil jou artikels 'n soort van sigbaarheid of dalk te hê maak 'n bietjie geld uit advertensies is jy waarskynlik meer geneig om voordeel te trek uit Android. En een ding wat altyd oor Android bekend is is die uiterste bedrag van aanpassing, terwyl IOS is baie vas in hul maniere sodat hulle kan handhaaf sekuriteit en beheer oor elke klein aspek van die ontwerp binne hul bedryfstelsel en die individuele programme. Android is 'n baie vrye vorm, en daar is soveel meer moontlikhede. Goed, 'n ontwerp te verstaan. Let hier net soos IOS het tablette en iPhones en iPod raak hulle te ondersteun, sê, soos 'n dosyn toestelle as jy wil te ondersteun historiese dinge so goed. Met Android jy honderde toestelle te ondersteun, So daar is 'n paar dinge wat Google het probeer om te implementeer te maak die gebruiker ervaar 'n bietjie meer konsekwent, maar ons sal ook praat oor hoe dit beteken dat daar is kwessies van die versnippering dat jy voortdurend bewus te wees van die ondersteuning. Fragmentasie beteken dat daar is baie verskillende bedryfstelsels, baie verskillende fone met verskillende hardeware loop Android almal op dieselfde tyd, so hierdie grafiek gaan hier terug vir ongeveer 6 maande. Ja, 6 maande, en jy kan sien hoe die donkerste orkes op die bodem is Jelly Bean, wat uit oor die somer, en jy kan nou waarskynlik ongeveer 2% van die fone het dit sien. Ice Cream Sandwich gekom het oor 'n jaar gelede, en 'n kwart van die selfone het nie. Daar is nog steeds 'n baie selfone wat gebruik OS weergawe van jare gelede. Een ding wat Google het probeer om te doen om die gebruikers se ervaring te maak 'n baie meer konsekwent oor programme is begin met Honingraat, wat is die tablet weergawe, dan Ice Cream Sandwich en Jelly Bean, Hulle is regtig probeer om die gebruik van hierdie aksie bar te beklemtoon, en dit is wat jy kan sien op die top hier, alles reg hier, insluitend hierdie klein instellings knoppie. Dit is die ontwerp keuse. Nou, wanneer jy sien die 3 punte beteken dit op hierdie, en daar sal 'n drop-down menu, wat 'n soort van instellings wees. Dit wys net, want ek het op hierdie knoppie. Dit is iets wat hulle probeer om te gebruik om programme te 'n bietjie meer konsekwent maak oor die raad en sodat die gebruiker het 'n beter begrip van eenvormige ervaring. Goed, so in die geval wat jy nie gedoen het nie hierdie reeds of as jy kyk by die huis dan kan jy die volgende stappe om jou kodering omgewing. Dit sal behels gaan na die webwerf hier. Jy kan Google installering van Android SDK en volg 'n paar beskrywings daar. Hulle vertel jou alles. Hulle het jy die installering van die SDK, aflaai Eclipse Classic weergawe, selfs al is, natuurlik, ons kodering in Java. Hulle beveel aan hierdie een, en dan is dit ADT, die Android Development Tools, is 'n plugin wat jy installeer in Eclipse wat dit moontlik maak om jou te het 'n veel meer vaartbelyn ervaring met Android binne Eclipse. Dit gee jou 'n paar grafiese gebruikerskoppelvlakke vir die ontwerp van die uitsig, en sal dit gee jou baie meer ondersteuning en die vermoë om te loods met die emulator en al wat soort van ding. Aansoek raamwerk. Ek wil om te praat oor hoe die projekte binne Android gestruktureer is, en dan sal ons gaan in 'n vinnige voorbeeld, en hopelik jy kan vrae vra op 'n punt en gemaklik voel teen die einde van dit. Ons het 'n paar jargon eerste. 'N aktiwiteit is soos die skerm wat jy sien wanneer jy die bekendstelling van 'n jeug. Die hele ervaring is die aktiwiteit self, sodat jy kan dink dat dit as 'n skerm of 'n oog, maar dit is eintlik die bron-kode kant van dit. Ons het nog noem die werklike koppelvlak deel van dit 'n uitsig. Dit is soort van soos hoe om in pset 7 het ons die kontroles en dan is die oog. Die aktiwiteit is meer of minder die kontroles, en die uitsig is wat ons doen in terme van die XML wat verband hou met daardie aktiwiteit. Fragmente is iets wat in Ice Cream Sandwich vorentoe geïmplementeer is. Dit is net 'n idee van die neem van dele van die oog of die aktiwiteit en hulle verdeel in aparte areas, sodat ons kan maak ons ​​kode bruikbaar vir hierdie baie verskillende toestelle dat ons te ondersteun, en dit is net 'n manier om te probeer ook faktor meer uit code. Dienste agtergrond dinge soos die speel van musiek of navigasie rigtings moontlik. Voorsieners van inhoud, dit is APIs binne die bedryfstelsel wat u toelaat om gedeelde data soos kontak inligting te bekom, en dan 'n voorneme is iets wat ons sal gebruik wanneer ons wil om te begin 'n nuwe aktiwiteit van ons huidige aktiwiteit. Hallo Android, gaan dit 'n projek wat sal ons praat oor wees. Ek sal eintlik doen dit vir jou, en dan sal ons 'n ding doen waar ons op 'n knoppie met 'n paar teks en die bekendstelling van 'n nuwe aktiwiteit. Baie eenvoudig, maar ek wil om te gaan deur wat gaan in 'n projek soos hierdie. Wanneer jy die nuwe projek sal jy sien binne Eclipse is daar hierdie projek genaamd Hallo Android. Dan is daar 'n hele klomp van die dopgehou hier. Die mense wat jy regtig betrokke by die bron gids, die hulpbron gids, die res, en tot 'n mate die libs gids vir biblioteke. En net so ons is op dieselfde bladsy met daardie as jy 'n nuwe projek te skep, jy kan hierdie reg hier doen, so as ek wil om dit te noem HelloAndroid, en dan is dit nie outomaties 'n hele klomp van die inligting vir ons. Die pakket naam is veronderstel om 'n unieke identifikasie wees wat normaalweg geassosieer word met die webwerf, as jy een het. Byvoorbeeld, sal ek noem dit net.cs50.helloandroid. En ek het reeds gemaak hierdie projek 'n keer. Goed, jammer. Kom ons noem dit HelloCS50. En dan sal dit vra dinge soos watter soort ikoon wil ons te maak. Dit is alles as gevolg van die Android Developer Tools koppelvlak, die prop dat ons by Eclipse, sodat ons kan kies om dinge soos watter ikoon ons wil hê, en dit sou gaan in daardie diepte as ons wil. Maar in die einde, maak net die projek, en alles toon hier. Soos ek het op die ander skerm, ons het die bron gids, en ek sal praat oor wat dit alles beteken gou, maar jy kan sien dat dit onmiddellik neem ons na die HelloCS50 skerm. Daar is 'n paar knoppies hier vir die toevoeging van teks en teks veld uitlegte. Dit is soort van soos Xcode maar ongelukkig nie heeltemal so vaartbelyn. Maar die snitte sal jou vriend en ADT in die besonder om dit te doen. Goed, die bron gids is waar die Java lêers gehou word, en dit is eintlik die bekendstelling van die program. Dit is basies soos die leiers. Die hulpbron gids of die res is waar ons sal aanhou skerm layouts, beelde, klanke, teks, animasie en alles anders, libs, natuurlik, biblioteke. En die Kenne, dit is die manier waarop die Android-stelsel weet hoe om met jou inligting. Dit vertel dit oor die regte en watter aktiwiteite sal werklik uitgevoer word. Dit is al die noodsaaklike inligting wat nodig is om jou inligting te hardloop. Die bron gids is-as ons dit uit te brei as wat jy kan hier sien. En 'n voorbeeld wat 'n kode sal kyk-dit is die standaard-kode. Soos ons dit genoem het, MainActivity. By verstek, kry ons OnCreate, wat is 'n funksie wat genoem word wanneer hierdie aktiwiteit vragte, so jy wil OnCreate (savedInstanceState) te bel. Dit sal die herstel van enige stukkies inligting in die geval van die inligting is gestop. Daar is 'n hele aktiwiteit lewensiklus grafiek wat jy kan kyk na wanneer jy 'n bietjie meer in-diepte in dit, maar die belangrikste reël van die kode is daar hierdie setContentView funksie wat die hulpbron lêer laai vir die uitleg. Dan wat OnCreate hier is basies doen, is dit gesê toe ek skep hierdie aktiwiteit Ek wil hierdie uitleg te laai. En ons sal praat oor wat dit uitleg is in 'n sekonde. As ons van stapel te stuur wat hier is dit presies lyk soos hierdie, en by verstek, want ons het Eclipse om dit te doen en ADT doen dit vir ons dit is alles boiler kode wat vir ons geskep is, en ons kan beweeg en dinge verander as ons wil. Die hulpbron gids, soos ek gesê het, dit is waar ons hou al layouts, drawables in terme van enige aard van die beelde- Hulle is geroep drawables-en klank lêers, spyskaarte. Dit is 'n manier om 'n hele klomp van XML in 'n mooi gesorteer mode. Soos jy kan sien, is daar. HDPI, ldpi, MDPI en xhdpi dopgehou vir die drawables. Dit is twee verskillende skerm digthede, so 'n hoë digtheid pixel per duim, lae digtheid, medium-digtheid, ekstra hoë digtheid. Dit is, weer, sodat ons kan ondersteun al hierdie verskillende toestelle, en ideaal, sal jy verskillende beelde vir elke verskillende resolusie. Uitleg is waar ons sluit al die verskillende uitlegte wat in verskillende aktiwiteite gebruik word. Hulle kon ook uitlegte vir fragmente, wat beteken gedeeltelike aktiwiteite basies. As jy iets cool om te doen soos wanneer jy draai die telefoon jy wil dit 'n ander uitleg kan jy uitleg-landskap te doen as 'n ander gids te hê, en Android het outomaties 'n hele klomp van hierdie reëls binne die hulpbron gids, so dit sal weet om te kyk na verskillende dopgehou wat gebaseer is op die huidige opset van die telefoon, watter soort hardeware wat jy gebruik. Net so, is hierdie waardes-V11 hier en waardes-V14 en die standaard waardes gids nie dit is vir- Wel, waardes op sigself, sal dit die standaard waardes in alle weergawes van die bedryfstelsel. Aan die ander kant, V11 en V14 ooreenstem met Honingraat en roomys Sandwich, onderskeidelik. Weereens, hierdie is maniere wat-binne hierdie dopgehou is verskillende snare en style, so kan jy die voorkoms van jou artikels of moontlik selfs sy funksies, hoewel dit waarskynlik sou wees om 'n slegte idee nie, gebaseer op die weergawe van die bedryfstelsel. En ek het gepraat oor al hierdie dinge hier. Weereens, drawable, rou, uitleg, waardes. Die verstek, as ons gaan by Hello Android of Hallo CS50 nou dit lyk net soos hierdie. Dit sal sê hallo wêreld. Soos jy kan hier sien met die Android teks die teks vir hierdie teks sien, wat is basies net 'n etiket, is wat dit ons sou noem in IOS. Dit het hierdie funny notasie @ string / hello_world. Dit is sodat ons kan-ons probeer om al die snare te onttrek, al die harde-gekodeerde snare in Android in 'n aparte gids, wat gebeur om te wees in values.strings. As ons kyk hier, kan ons sien dat ons 'n hard-gekodeerde string gered hier vir hallo wêreld, en dit genoem hallo wêreld, en dit is 'n soort van 'n algemene ontwerp besluit oor baie platforms wat jy wil- snare is die soort van dinge wat ons wil potensieel in staat wees om te verander. Ons wil nie F in ons bron-kode lêer te beheer in ons XML. Ons wil in staat wees om dit te verander wanneer ons die kans kry. Dit XML lêer, Strings.xml, is 'n manier om te onttrek hard-gekodeerde snare wat andersins sou wees in ons uitleg hulpbronne of in ons bron-kode. Die openbaar word, is waar ons hierdie noodsaaklike inligting oor die aansoek. Dit sluit in die pakket naam. Dit moet 'n unieke identifikasie wees. In teenstelling met die App Store vir IOS die name van die aansoeke hoef nie te wees unieke, en jy kan in die feit dat die naam van jou aansoek nadat jy dit inhandig, so as ek begin met 'Angry Birds, en dan maak ek 'n werk, en ek wil nie 'n nuwe weergawe vry te stel Ek dink ek kan noem dit Angry Birds 2, terwyl ek op dieselfde vrylating siklus. Dit sou net opdaag as 'n werk. Die enigste ding wat uniek is hierdie pakket naam, wat nie baie mense sal sien. Wel, jy wil net sien as jy is op soek na die bron kode, of indien daar is 'n soort van fout. Die komponente aktiwiteite in te sluit, so ons het om te verklaar enige soort aktiwiteit wat ons gebruik. Dit is 'n toestemming soort van ding. Omdat Android nie hierdie streng toepassing proses vir die indiening van aansoeke plaas hulle net alles wat gebaseer is af van die regte en verklaar dat dinge in die openbaar geword het. Die SDK weergawe is ook belangrik. Ons kan stel gebruik as SDK minimum weergawe iets. Natuurlik, jy wil code te skep en ontwerp vir die nuwe bedryfstelsels. Miskien nie die nuutste, miskien nie Jelly Bean. Miskien wil jy te ontwerp hoofsaaklik vir roomys Sandwich, hoewel hulle is nogal baie dieselfde in terme van die ontwerp besluite en die werklike biblioteke en API's. Maar eerder as wat mense van die oorspronklike Android weergawe-agtige donut pad terug toe- wat nog gebeur te wees met wat probeer om jou aansoek te laai en dan sê dit werk nie op my selfoon wat jy kan die minimum weergawe stel en dit het peperkoek of Ice Cream Sandwich of wat ook al jy gemaklik voel indien. En dit is 'n voorbeeld van die Kenne. Ons kan kyk na die werklike een in 'n bietjie. Goed, ons sal net voort te gaan met die demo nou. Dit is die demo as jy Google Android bou jou eerste artikels of iets soos dit. Ons gaan deur alles wat gaan aan daar in, en jammer, net vir 'n verwysing wat hier Java weet tot enige mate? Goed, so Java is 'n nuwe codeertaal vir die meeste mense uit te kom van CS50. Kortliks, om te gaan oor die weer wat dit hier sê, wat ons wil doen, is om eerder as om aan te pas hierdie Hello World aansoek dat al wat dit doen is dit lanseer en dit sê hallo wêreld en dit sê hallo CS50 aan die bokant, want dit is die aktiwiteit naam ons gaan om te probeer om 'n teks veld en 'n knoppie te maak sodat wanneer ons druk die knoppie dit sal neem om die teks uit die teks veld en die bekendstelling van 'n nuwe aktiwiteit, en dit sal sê alles wat die teks sê in die aktiwiteit, en dit is relatief eenvoudig. Dit is nie baie interessant. Jy wil nie hê dat enige artikels soos hierdie te laat. Maar dit bewys 'n paar belangrike ontwerp dinge. Ons sal moet interaksie met die Kenne, met die uitleg lêers, met die bron-kode, en jy kan sien hoe een aktiwiteit te begin van 'n ander. Ons begin met die uitleg vir ons eerste aktiwiteit, wat ek weet dit is soort van 'n klein, maar as jy nou kan sien, al is dit is dit ons logo wat ons geskep het, die aktiwiteit naam, en dit sê hallo wêreld in die sentrum. In plaas daarvan, ek eerste gaan om dit te maak in 'n lineêre uitleg, 'n familielid uitleg, en dit is alles jy kan kyk op en is die moeite werd gaan oor op 'n sekere punt in terme van die uitleg. Dit is 'n baie soos HTML. Ons het gesê dit is nie regtig die moeite werd om te weet in terme van 'n programmatiese sin, maar daar is so baie verskillende uitlegte wat jy kan beheer, en dit is net soos CSS in terme van style. Daar is 'n baie gaan op net in terme van die estetika hier, en ja, dit is die moeite werd leer, maar dit is die soort van ding wat jy moet kyk as jy gaan en jy voel jy moet iets nuuts. Ek kan voordeel trek uit 'n paar van die ADT gereedskap hier ten minste te begin met. Ek sal 'n teks veld maak, en Ek sal 'n knoppie te maak. Sit hulle langs mekaar. Hulle het reeds gepaste grootte. Jammer, weer terug te kom na die verskil tussen lineêre uitleg en relatiewe uitleg, 'n lineêre uitleg gee 'n bietjie meer funksies in terme van die vulling van ruimte en maak seker ons posisie dinge horisontaal of vertikaal. Die groot verskil tussen 'n lineêre uitleg en 'n relatiewe uitleg is die relatiewe uitleg posisies alles relatief tot ander perspektiewe en die goeie ding oor dit is dat dit neem minder tyd om te trek omdat die bedryfstelsel kyk na al die kode en sê dit gaan betrekking tot hierdie hier, hier. Dit beteken dat dit maak minder metings as 'n hele klomp van die sub-lineêre layouts, wat ek wil hê om te doen as ek wou dinge vertikaal hier. Ek het reeds 'n paar dinge horisontaal gaan, so ek sal moet 'n verskillende lineêre uitleg om nes te maak hulle vertikaal, maar as ek besig was om 'n familielid uitleg ek kon sê hou dit aan die linkerkant, dit aan die reg en hierdie dinge hieronder. Maar omdat ek wil hê hulle moet nou vul ek gaan 'n lineêre uitleg te gebruik, en jy kan sien dit nie reeds 'n baie van hierdie dinge vir ons. Alle menings nodig het 'n eiendom van die hoogte en breedte te hê, en dit gebeur 'n gewig van 1 te hê, en dit het 'n gewig van 1 sodat dit vul die hele ruimte. Maar die hoogte en breedte van die belangrikste is. Dit ID-veld hier is nie belangrik in die werklike uitleg tensy ons gebruik 'n relatiewe uitleg en sê ons kan verwys een-posisie in die verwysing na 'n ander. As ons 'n relatiewe uitleg kan ons sê posisie hierdie onder om die een of bo die ID, maar hierdie ID sal belangrik wees wanneer ons dit gebruik in ons kode, want ons kan verwys hierdie individuele menings op hierdie manier. En dan kan jy sien die tag requestFocus, dit is iets wat jy waarskynlik gesien in pset 7. Daar was 'n outomatiese fokus tag of iets langs die lyne vir een van die velde. En een ding is, natuurlik, kan ons net soos dit doen in HTML, en kennis een van die mooi dinge oor ADT is dat dit hier autocompletes. Miskien nie so mooi soos dit gedoen het in Xcode, maar dit nietemin en ons kon sê wenk en dan gee dit 'n soort van string graag 'n boodskap skryf, en as ek dit gee 'n oomblik, ook sien dat ek 'n bietjie fout hier sê dat ons moet 'n string hulpbron gebruik vir hierdie, So as ek dit laat doen 'n paar van die harde werk vir my Ek kan hierdie string kies, doen refractor Android en uittreksel Android string. Ek gee dit die naam, skryf 'n boodskap en wat dit gedoen het, is dit nou vervang wat hard-gekodeerde string met 'n verwysing na die string in die string se xml lêer., wat beteken dit is nou hier. En ek weet dat lyk 'n bietjie triviale en soos ekstra werk op hierdie punt, maar wanneer jy 'n hele klomp van die dinge, 'n hele klomp van die snare, dit is baie belangrik, en veral vir lokalisering want as ek vroeër genoem het, Android is 'n baie wêreldwyd gebruik bedryfstelsel wat jy kan doen maar net waardes-en of waardes-sp of iets vir Engels of Spaans of ander tale. En dan is jy waarskynlik het nie hierdie ervaring nog want ons het nie veel JavaScript in terme van die web ontwikkeling, maar ons kan dit ook doen veld genaamd "onClick vir die knoppie, en dit is 'n manier van verwysing in ons uitleg dat ons 'n sekere funksie genoem te word in ons bron-kode. Ek gaan hierdie sendMessage te roep, en om hierdie werk te maak wat beteken dat in die hoof aktiwiteit hier Ek sal 'n funksie wat publiek te skep sodat dit kan verkry word deur die uitleg. Dit is leeg, want jy wil net nie dit niks om terug te keer. Ons noem dit sendMessage, en dit neem 'n oog, Dit is 'n soort van konteks dat ons hierdie metode anker aan dat individuele siening wanneer ons dit loop. En ek weet nie of jy al agtergekom-goed, sou jy nie opgemerk het, maar op hierdie punt reg hier hierdie siening is 'n tipe wat nog nie opgeneem is, en natuurlik, jy weet almal van CS50 oor nie, insluitend soorte. Die lekker ding van IO soos Eclipse is dat As jy vergeet om 'n tipe te sluit sal dit onderstreep met 'n bietjie rooi kronkel en dan gee jy die opsie om die oog te voer. 'N Vinnige manier om dit te doen is om beheer verskuiwing O, en dit sal invoer al die lêers wat dit nodig het om te. Nou dat ons hierdie funksie sendMessage, wat gaan boodskap te stuur van die MainActivity na 'n nuwe aktiwiteit, ons gaan hê om 'n doel om die nuwe aktiwiteit te begin van hierdie een te gebruik, so ons sal waarskynlik wil 'n globale konstante of ook veral 'n openbare konstant te skep wat sal help om ons weet hoe ons gaan die string te verwys want as ons 'n bedoeling Ons is net nie 'n beroep 'n nuwe aktiwiteit, maar ons kan ook gee dit 'n bondel van inligting. 'N bundel is eintlik die term wat Android gebruik, en dit is 'n manier om te sê dit gee ekstra data, wat dit nie kan wees van 'n baie gesofistikeerde data tipe, maar ons kan beslis sluit booleans of snare of ints. Daardie soort van ding. Voel vry om te vra oor enige van hierdie kwalifiseerders hier, publiek, finale, statiese. Publiek is die belangrike een. Dit beteken dat ons kan hierdie veranderlike toegang van ander bron-kode lêers soos wanneer ons 'n nuwe aktiwiteit. Ons kan verwys na die string binne hierdie lêer. As dit is private, dit beteken dit is beperk tot die individu lêer hier. Maar ons sal noem dit iets soos ekstra boodskap. Nou het ons het hierdie funksie, en as ons op die knoppie klik, hierdie funksie sal genoem word. Maar ons het niks gedoen nie, natuurlik, met die funksie. Wat ons nou wil doen, is om 'n nuwe aktiwiteit, die aktiwiteit wat eintlik van stapel gestuur word. In Eclipse ons kan sê nuwe Android aktiwiteit, leë aktiwiteit. Ons kan dit 'n naam. Kom ons noem dit ons gevolg aktiwiteit. En dan is dit hiërargiese ouer veld is 'n manier om te spesifiseer hoe die aktiwiteite wat verband hou met mekaar. Want hierdie een sal van stapel gestuur word vanaf die ander aktiwiteite Ons moet spesifiseer dat dit die ouer hoof aktiwiteit. En ek kon gekliek het op die volgende gebied is daar, wat sou ons gesê het 'n opsionele velde wat dit ook is, insluitend maar die lekker ding van ADT, weer, is dat as ek blaai af hier in die Kenne onthou dat alles wel is ingesluit by verstek wanneer ons oorspronklik geskep om die projek, en nou, want ons gebruik om hierdie 'n nuwe aktiwiteit eerder as om net voeg ons eie klas lêer, want ons het deur middel van hul GUI om dit te doen dit reeds bygevoeg al hierdie dinge aan die Kenne vir ons, Dit beteken net dat dit nou die bedryfstelsel nie sal kla wanneer ons probeer om hierdie aktiwiteit te begin. En dit is ook, natuurlik, het dit 'n etiket, wat ook toon in snare. Dit maak 'n baie van die dinge wat op die agterkant vir ons. In elk geval, nou dat ons hierdie resultaat aktiwiteit, asook, die werklike bron-kode lêer in die bron gids, en jy kan sien-kort ingaan op hierdie- want ons het dit oor hierdie hiërargiese ouer dit het hierdie gebied android.r.ide.home in hierdie onOption geselekteerde ding. Wat dit basies sê is daar is 'n spyskaart knoppie nou wat in die boonste linker hoek van die skerm As ek gaan terug na die PowerPoint waar ons die eerste keer gepraat oor die aksie bar as gevolg van die hiërargiese ouer nou is daar 'n bietjie pyl terug hier en dit is klikbare sodat ons moet in staat wees om te nadat ons eintlik loop hierdie inligting- gaan terug, en dit is 'n manier van spaar ons 'n bietjie van die kode is daar. Nou in hierdie-Wel, dit blyk te wees kla oor wat vir 'n oomblik. Kom ons wat uit kommentaar lewer nie. Nou, om werklik om interaksie met hierdie 2-aktiwiteite, ons het 'n doel wat ook al van hierdie data te skep. In sendMessage nou gaan ek cruise deur middel van 'n paar stukkies van die kode en verduidelik dat as ek gaan. 'N voorneme, soos ek gesê het, is 'n manier om 'n aktiwiteit te begin van 'n ander. Oogmerk is om die tipe. Ons is die skep van 'n veranderlike myIntent. En dit is eintlik 'n voorwerp, wat is die rede waarom ons het om te noem nuwe. Dit is algemeen Java gebruik daar, wat dalk 'n bietjie om gewoond te neem. Dit beteken dat ons die aktiwiteit of die klas MainActivity gebruik, en bedoeling in die manier neem die aktiwiteit dit gaan uit en die aktiwiteit dit gaan, wat ons noem ResultActivity, en dit is sy eie klas. Sluit nie. En dan as ek voorheen genoem, het ons dat ID na die wysig teks veld en die teks oog, so in orde te programmaties vang die teks wat bestaan ​​in die editText ons gebruik hierdie funksie genoem findViewByID, wat soortgelyk is aan iets wat jy sal gebruik wanneer ek probeer om velde te kry van die DOM. Miskien Dawid praat oor hierdie in lesing. Maar dit is net 'n manier om dié-dit is hoekom ons merk hierdie dinge met dié velde. Id.editText1. Dit is reeds autocompleting vir my daar. En dan sal ons ook die volgende insluit: hierdie editText nou dat ons die veld binne ons program, het alles wat findViewByID was basies jy kon dink dit as ons 'n verwysing na daardie editText. Nou wil ons die tou of die boodskap te kry binne daardie editText wat ons kan doen deur die gebruik van die- jy kon dink editText as 'n struct- Ons noem dit 'n voorwerp in Java-met 'n hele klomp van verskillende metodes of velde en eienskappe wat daaraan gekoppel is. Toe ek editText sê. dit gee my die kans om toegang te verkry 'n metode soos kryTeks, wat sal die huidige teks kry in daardie editText en dan wat uitdruklik omskep na 'n string, en ons gespaar het die boodskap. Nou is ons werklik wil om iets te doen met die doel om ons geskep net oomblikke gelede. Ek sal ekstra soos dit genoem word in die opset, wat, weer, soos ek gesê het, dit is 'n manier van die skep van die bundel met 'n hele klomp van die data. Ekstra boodskap is ons tag sodat ons weet wat dit is ons spaar onder, en dan is ek met die boodskap. En dan kan ons eintlik met die aktiwiteit begin deur dit te gee die parameter myIntent. En dit sal eintlik die bekendstelling van die aktiwiteit, so nou sedert ek opgradeer na Windows 8 is daar dalk 'n paar foute wat wys kortliks, maar probeer om dit te ignoreer. En dit is die Android emulator. Hopelik sal die kode eintlik pop-up in 'n oomblik. Weereens, ignoreer al die klein dinge. Maar die Android emulator jy kan navolg 'n weergawe van die bedryfstelsel van die vroegste mense, Donut, peperkoek. Dit is Jelly Bean 4.1. Maar as jy nou kan sien, dit is iets wat ons gemaak het. Dit het die MainActivity, die editText, die knoppie. Ek kan iets hier tik, maar wat ons ontbreek op hierdie punt? Ons het die veld in die MainActivity wat gaan die boodskap te stuur aan die ander aktiwiteit nie, maar op hierdie punt ons het niks gedoen nie in die ander aktiwiteite, so dit is nie van plan om iets te ontvang. Kom ons klaarmaak dat 'n deel voordat ons beweeg aan. Hierdie resultaat aktiwiteit, wat ons nodig het om te doen, is ons sal moet doen, is ons nodig het om te Ons kan ook verwys na die bedoeling binne hierdie aktiwiteit, so ons het die voorneme, wat is regtig maklik om te vang. Dit is 'n funksie ingesluit in die aktiwiteit klas, sodat ons kan net sê: "Kry die boodskap van die voorneme." "Bedoeling myIntent = getIntent." En dit sal ons-nou gee myIntent is 'n voorwerp, Dit is 'n verwysing na die bedoeling dat ons gelei het tot hierdie aktiwiteit. MainActivity roep en gee ekstra inligting aktiwiteit te lei. Gevolg aktiwiteit lyk nou by die bedoeling wat gelei het dit hier, en ons kan toegang tot die boodskap wat ons geskep het in die ander een, getStringExtra, en dit sal outomaties vir my. En dan onthou, die manier waarop ons gemerk dat die bietjie van die data was deur dit te gee hierdie gebied reg hier, hierdie openbare string, wat is die etiket vir die string ons eintlik ingesluit. As ek sê MainActivity.Extra_Message dit is net daar, en dit is 'n soort van soos die parameter naam wanneer ons verby kode van die kontroles aan die sjabloon, wanneer ons wil titel pyl iets sê. Dit is dieselfde soort idee is daar. Nou, onthou dit. Ons het ook die motor geskep of motor gegenereerde kode vir gevolg aktiwiteit wat die teks oog in die middel wat sê hallo wêreld. Ons kan moontlik maak dat groter. Kom ons doen wat die eerste keer. Ons kan dit 40 digtheid onafhanklike pixels. Kom ons kyk, dit is super groot. Dit sal goed wees. En dan om hierdie individuele teks oog op die verwysing binne ons kode ons nodig het om te gee dit 'n ID, en om te doen wat ons sê @ + id, wat beteken dat ons gee dit ID. As ons net sê @ id dit sou aanvaar dat ons 'n ID wat reeds bestaan, is verwysings, en laat ons noem dit ons resultTextView. En sien dat in XML daar is geen rede vir kommapunte of enigiets. Alles is binne hierdie tags. Dit is baie soortgelyk aan HTML in 'n baie sintuie. Dit neem 'n bietjie gewoond raak aan, maar uiteindelik sal jy voel redelik gemaklik met dit. Kom ons werk om die teks vir ons gevolg teks oog, en as ons gedoen het toe ons om daardie wysig teks veld in ons ander aktiwiteite in MainActivity Hier sal ons ook so- ons kry die oog deur die ID. En R, in geval ek nie noem dit voor, is die verwysing na ons hulpbronne gids, en dan ID is 'n verwysing na alles in die hulpbronne gids, al die ID's, en resultTextView. En net soos voorheen, resultTextView is 'n voorwerp, wat beteken dit het al hierdie eienskappe wat verband hou met dit. Wanneer ons kryTeks vir die wysig teks vir hierdie teks veld of die teks oog Ons kan eintlik gebruik setText, en dan het ons reeds gevind dat die boodskap van die voorneme, sodat ek kan sê boodskap, en dit sal eintlik het die boodskap. Dit neem 'n oomblik om te begin, en dan sal ons kan sien of dit nie omval, maar enige vrae oor die proses net daar, dat die soort van interaksie? In baie opsigte is dit eenvoudig. Die rede waarom ek gaan deur iets relatief eenvoudige is, weer, omdat jy die interaksie tussen die uitleg te sien, die bron-kode, hoe jy dinge verwysing en miskien 'n bietjie blootstelling aan hoe Java daar werk. As ek eintlik iets tik in hier, soos ohai, en dan het ek op die knoppie klik, Dit begin met 'n nuwe aktiwiteit, en dat teks meen dat ohai. Dit is baie eenvoudig, maar hopelik na daardie voorbeeld jy soort van sien hoe hierdie interaksie werk, en nou dat die gemors van lêers aan die linkerkant van al hierdie projek dopgehou het, hopelik sal jy weet waar om te kyk nou. Dit is jou bron-kode area. Uitleg is werklik die enigste ding wat jy hanteer totdat jy sluit beelde en die drawables of wat ook al, en waardes, wat sal insluit snare, soos ons genoem het, en dan style is iets wat is soort van soos CSS. Spreek dit as jy wil, maar totdat jy gemaklik voel met die toevoeging van ekstra flair om jou aansoek daar is geen rede tot kommer oor dit te veel. Net om te draai om een ​​ander ding wat jy sal beslis wil in te sluit- die veronderstelling dat jy wil koel funksies te integreer en red jouself 'n paar ekstra kodering- sou wees 3rd party biblioteke te sluit. Hier is die klein Android man met die Sherlock Holmes hoed. Dit is 'n aksie bar Sherlock biblioteek, wat basies beteken dat die aksie bar jy vroeër gesien het, Dit is nou standaard in Ice Cream Sandwich en Jelly Bean, As jy wil hê dat die soort van gebruikers ervaring te bring aan gebruikers op ouer weergawes en red jouself uit om bekommerd te wees oor hoe die gebruiker gaan om te navigeer op ouer weergawes wanneer daardie ding is nie daar kan jy sluit hierdie biblioteek en dan is jy hoef net te verwys-eerder as die standaard Android biblioteke vir die aksie bar, jou verwysing hierdie ondersteuning biblioteek. Dinge soos Scoreloop, dit is 'n groot as jy gaan 'n wedstryd te sluit. Dit kan jy voeg leier planke en prestasies te speel. AdMob is 'n manier om advertensies in jou programme in die geval wat jy wil 'n bietjie van die geld van dit af te maak. Natuurlik, daar is Facebook en Twitter vir die integrasie van daar As jy wil om dinge te maklik deel, ensovoorts. Dropbox, net so, en Google Analytics is dat grafiek op soek na een daar. Dit sal baie belangrik wees as jy eintlik wil sien wat interaksie met inligting of wat dit is, hoe hulle omgaan, ensovoorts. Google, by verstek, sê jy 'n baie van die statistieke oor wie geïnstalleer het jou artikels en wat selfone wat hulle het, wat bedryfstelsel weergawes wat hulle het. Maar as jy wil om te sien wie dit is met behulp van op 'n daaglikse basis en hoe hulle dit gebruik dan sal jy wil 'n soort van dop-stelsel soos dit in te sluit. Wanneer jy gereed is om jou artikels te versprei Ek het nie nodig om te gaan in wat in te veel diepte. Klik op die skakel hier, Google speel. Dit word gebruik om die Android-mark te wees. Hulle nuwe naam alles met Google Play, so nou is jy aan dit. Dit is baie eenvoudig. Jy het 'n beskrywing, 'n paar voorbeelde te sluit. Soos ek gesê het, is daar geen goedkeuring-proses soos iOS. En waar om te gaan van hier af? Ek het jou 'n baie eenvoudige voorbeeld. Hopelik sal dit lyk verskriklik eenvoudige dan is dit waarskynlik 'n goeie teken. As jy op al voel 'n bietjie verward of onseker is oor presies wat ek tik dit is ook goed, maar van hier af weg te Google Guides. Dit is 'n groot plek om te begin. Dit sal praat jy deur middel van wat hulle verwag in terme van die aansoek ontwerp, hoe die gebruikers gewoonlik interaksie met dit. Dit is baie meer vrye vorm as IOS, sou ek sê, wat dit lyk soos tafel sienings word-Ek weet nie, dit is hul brood en botter. Alles is 'n Table View gly op en af. Met Android hulle beslis mense aanmoedig om te kyk na dit uit 'n hele klomp van verskillende perspektiewe. Wanneer jy sluit die ontwikkelingspan kit in hierdie ADT by verstek jy 'n hele klomp van die voorbeeld projekte in Android. Reg hier, Android, Android Sample projek. As ek op, dan kan ek kies om 'n weergawe vir watter van die voorbeeld projekte toe te pas. Daar is 'n hele klomp van verskillende dinge hier. Dit begin met aksie bar verenigbaarheid, versnelling speel, Friends en herstel, Bluetooth, gebaar bouer. JetBoy is 'n monster wedstryd wat hulle vir julle gee, is as LunarLander. Daar is 'n hele klomp van die voorbeeld programme hier, en hulle is almal gerig op verskillende aspekte van Android se API, en die idee is dat as jy jou aansoek jy hoef nie alles oor Android om te leer 'n Android-app te maak. Jy hoef net te leer oor die dele wat jy eintlik gaan om te gebruik. Kyk na hierdie monster biblioteke. Voel vry om te kopieer en plak die kode en dit heraansoek doen. Dit is 'n groot ding om te kyk na hoe moeiliker kode en probeer om dit te verstaan, wat natuurlik waarom in CS50 ons dikwels gee jy groot bedrae van die bron-kode. Kyk na sommige van hierdie as jy gaan soortgelyke biblioteke te gebruik en dan pas dit op jou eie kode. En natuurlik, is daar handleidings. Soek vir tutoriale. Ek het 'n baie goeie mense online wat jy kan bring om te versnel met wat fragmente werklik is en hoe jy dit kan gebruik. Sommige van hierdie nuwe ontwerp dinge, soos fragmente, jy regtig hoef nie te bekommerd wees oor nie, tensy jy 'n redelik groot in omvang projek. Hulle is dinge wat Google is probeer om te faseer in StackOverflow is natuurlik jou vriend. Hopelik sal ek verkoop jy 'n bietjie op Android, besef dit is baie meer maklik om te benader in terme van net die codeertaal. Java is wil ek sê baie makliker om te verstaan ​​as Objective-C. Android groei Ek dink baie meer as IOS. Ek bedoel, die data is ook daar, afgesien van wat ek dink. Dit gaan om te wees vir 'n rukkie, en hulle is 'n paar jaar agter in terme van hul ontwerp siklusse, so dit is soort van te verstane dat hulle nog steeds besig om deur 'n paar van hierdie konsekwentheid vrae, soos hierdie aksie bar is 'n nuwe ding vir hulle nog steeds, soort van die skep van 'n soortgelyke gebruikers ervaring oor al hul programme. Hopelik sal jy kan nou vorentoe gaan oopmaak Eclipse en maak jou eie Android-programme. Is daar iemand enige vrae voor ons draai oor enigiets? Ek kan jou vertel die antwoord is 42. Wel, gelukkig kodering almal, en baie geluk. [CS50.TV]