1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Seminaar] [Android Apps (Nou met Jelly Beans!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jozwiak] [Harvard Universiteit] 3 00:00:04,210 --> 00:00:06,780 [Hierdie is CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Hallo almal, en welkom by die Android Apps (Nou met Jelly Beans!) Seminaar. 5 00:00:11,600 --> 00:00:14,530 Dit is nou bekend met Jelly Beans, natuurlik, want 6 00:00:14,530 --> 00:00:17,310 die jongste weergawe van die bedryfstelsel genoem Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Toe ek gepraat oor Android verlede jaar en het dit basies dieselfde seminaar 8 00:00:22,950 --> 00:00:29,150 Ek was die aanbieding van die ontwerp van patrone en stilistiese keuses vir peperkoek, 9 00:00:29,150 --> 00:00:31,250 selfs al Ice Cream Sandwich uitgekom het by die tyd, 10 00:00:31,250 --> 00:00:33,680 en dit is iets wat ons sal praat oor die pad vorentoe 'n bietjie. 11 00:00:33,680 --> 00:00:35,720 Android, natuurlik, het 'n paar probleme met die versnippering 12 00:00:35,720 --> 00:00:40,240 sodat die nuutste Google-bedryfstelsel is gewoonlik 13 00:00:40,240 --> 00:00:44,710 nie regtig gaan word algemeen onder die gebruikers vir potensieel tot 'n jaar, ongelukkig. 14 00:00:44,710 --> 00:00:49,960 >> Maar verontagsaam wat, sal ons praat oor baie van die redes waarom 15 00:00:49,960 --> 00:00:53,000 Android is baie beter as IOS. 16 00:00:53,000 --> 00:00:56,410 Goed, sal ons praat oor Android versus IOS, 17 00:00:56,410 --> 00:00:59,770 sommige ontwerp paradigmas, hoe sal jy stel in net een skyfie raak, 18 00:00:59,770 --> 00:01:03,410 en die groot verskil tussen hierdie en verlede jaar is ek wil net 19 00:01:03,410 --> 00:01:06,860 Klik op die deur 'n paar konseptuele dinge werk met 20 00:01:06,860 --> 00:01:09,950 die bedryfstelsel en dan in 'n baie basiese voorbeeld. 21 00:01:09,950 --> 00:01:13,730 Trouens, net die voorbeeld wat Google beskryf vir die bou van jou eerste artikels, 22 00:01:13,730 --> 00:01:17,070 en ons gaan deur dit saam en net beskryf. 23 00:01:17,070 --> 00:01:22,100 >> Ek weet baie van julle het net gekodeer in C, so Java is reeds gaan wees 24 00:01:22,100 --> 00:01:27,220 'n ander perspektief, en op hierdie manier sal jy kry jou voete nat 25 00:01:27,220 --> 00:01:31,540 en voel 'n bietjie meer gemaklik met dit hopelik. 26 00:01:31,540 --> 00:01:35,330 'N vinnige opsomming, Android versus IOS. 27 00:01:35,330 --> 00:01:39,200 In Android daar is dit one-time ontwikkelaar fooi van $ 25 28 00:01:39,200 --> 00:01:42,390 nie een van die $ 100 per jaar ding. 29 00:01:42,390 --> 00:01:45,440 Daar is geen beperkings nie, wat beteken dat as ek wil 'n artikels in te dien, 30 00:01:45,440 --> 00:01:51,560 Ek het net dit inhandig, en daar is geen goedkeuring-proses soos daar is vir IOS. 31 00:01:51,560 --> 00:01:53,890 Jy kry om te ontwikkel met Java gebruik van Eclipse, 32 00:01:53,890 --> 00:01:57,090 Dit is kruis-platform, so dit maak nie saak of jy 'n Mac, 33 00:01:57,090 --> 00:01:59,600 Windows, of 'n Linux masjien. 34 00:01:59,600 --> 00:02:03,730 Natuurlik, met IOS jy Xcode te gebruik op 'n Mac, 35 00:02:03,730 --> 00:02:06,930 en Android is gebruik deur baie meer mense, 36 00:02:06,930 --> 00:02:11,580 so as jy wil jou artikels 'n soort van sigbaarheid of dalk te hê 37 00:02:11,580 --> 00:02:14,110 maak 'n bietjie geld uit advertensies 38 00:02:14,110 --> 00:02:17,450 is jy waarskynlik meer geneig om voordeel te trek uit Android. 39 00:02:17,450 --> 00:02:20,630 >> En een ding wat altyd oor Android bekend is 40 00:02:20,630 --> 00:02:25,100 is die uiterste bedrag van aanpassing, terwyl IOS is baie vas in hul maniere 41 00:02:25,100 --> 00:02:29,380 sodat hulle kan handhaaf sekuriteit en beheer oor elke klein aspek 42 00:02:29,380 --> 00:02:34,180 van die ontwerp binne hul bedryfstelsel en die individuele programme. 43 00:02:34,180 --> 00:02:40,180 Android is 'n baie vrye vorm, en daar is soveel meer moontlikhede. 44 00:02:40,180 --> 00:02:42,530 Goed, 'n ontwerp te verstaan. 45 00:02:42,530 --> 00:02:49,600 Let hier net soos IOS het tablette en iPhones en iPod raak 46 00:02:49,600 --> 00:02:53,840 hulle te ondersteun, sê, soos 'n dosyn toestelle as jy wil te ondersteun 47 00:02:53,840 --> 00:02:55,450 historiese dinge so goed. 48 00:02:55,450 --> 00:02:58,410 Met Android jy honderde toestelle te ondersteun, 49 00:02:58,410 --> 00:03:01,240 So daar is 'n paar dinge wat Google het probeer om te implementeer 50 00:03:01,240 --> 00:03:04,970 te maak die gebruiker ervaar 'n bietjie meer konsekwent, 51 00:03:04,970 --> 00:03:08,560 maar ons sal ook praat oor hoe dit beteken dat daar is kwessies van die versnippering 52 00:03:08,560 --> 00:03:11,700 dat jy voortdurend bewus te wees van die ondersteuning. 53 00:03:11,700 --> 00:03:16,140 Fragmentasie beteken dat daar is baie verskillende bedryfstelsels, 54 00:03:16,140 --> 00:03:20,330 baie verskillende fone met verskillende hardeware loop Android almal op dieselfde tyd, 55 00:03:20,330 --> 00:03:29,680 so hierdie grafiek gaan hier terug vir ongeveer 6 maande. 56 00:03:29,680 --> 00:03:36,460 Ja, 6 maande, en jy kan sien hoe die donkerste orkes 57 00:03:36,460 --> 00:03:39,330 op die bodem is Jelly Bean, wat uit oor die somer, 58 00:03:39,330 --> 00:03:42,970 en jy kan nou waarskynlik ongeveer 2% van die fone het dit sien. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich gekom het oor 'n jaar gelede, 60 00:03:45,520 --> 00:03:47,770 en 'n kwart van die selfone het nie. 61 00:03:47,770 --> 00:03:53,910 Daar is nog steeds 'n baie selfone wat gebruik OS weergawe van jare gelede. 62 00:03:53,910 --> 00:03:57,820 Een ding wat Google het probeer om te doen om die gebruikers se ervaring te maak 63 00:03:57,820 --> 00:04:01,400 'n baie meer konsekwent oor programme is begin met Honingraat, 64 00:04:01,400 --> 00:04:04,320 wat is die tablet weergawe, dan Ice Cream Sandwich en Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 Hulle is regtig probeer om die gebruik van hierdie aksie bar te beklemtoon, 66 00:04:06,750 --> 00:04:10,430 en dit is wat jy kan sien op die top hier, 67 00:04:10,430 --> 00:04:14,730 alles reg hier, insluitend hierdie klein instellings knoppie. 68 00:04:14,730 --> 00:04:16,079 Dit is die ontwerp keuse. 69 00:04:16,079 --> 00:04:18,000 Nou, wanneer jy sien die 3 punte beteken dit op hierdie, 70 00:04:18,000 --> 00:04:21,880 en daar sal 'n drop-down menu, wat 'n soort van instellings wees. 71 00:04:21,880 --> 00:04:28,900 Dit wys net, want ek het op hierdie knoppie. 72 00:04:28,900 --> 00:04:32,040 Dit is iets wat hulle probeer om te gebruik om programme te 'n bietjie meer konsekwent maak 73 00:04:32,040 --> 00:04:39,210 oor die raad en sodat die gebruiker het 'n beter begrip van eenvormige ervaring. 74 00:04:39,210 --> 00:04:42,640 >> Goed, so in die geval wat jy nie gedoen het nie hierdie reeds of as jy kyk by die huis 75 00:04:42,640 --> 00:04:50,210 dan kan jy die volgende stappe om jou kodering omgewing. 76 00:04:50,210 --> 00:04:52,630 Dit sal behels gaan na die webwerf hier. 77 00:04:52,630 --> 00:04:56,260 Jy kan Google installering van Android SDK 78 00:04:56,260 --> 00:04:59,130 en volg 'n paar beskrywings daar. 79 00:04:59,130 --> 00:05:01,310 Hulle vertel jou alles. 80 00:05:01,310 --> 00:05:05,160 Hulle het jy die installering van die SDK, aflaai Eclipse Classic weergawe, 81 00:05:05,160 --> 00:05:07,450 selfs al is, natuurlik, ons kodering in Java. 82 00:05:07,450 --> 00:05:12,190 Hulle beveel aan hierdie een, en dan is dit ADT, die Android Development Tools, 83 00:05:12,190 --> 00:05:17,300 is 'n plugin wat jy installeer in Eclipse wat dit moontlik maak om jou te 84 00:05:17,300 --> 00:05:20,550 het 'n veel meer vaartbelyn ervaring met Android binne Eclipse. 85 00:05:20,550 --> 00:05:24,070 Dit gee jou 'n paar grafiese gebruikerskoppelvlakke 86 00:05:24,070 --> 00:05:29,610 vir die ontwerp van die uitsig, en sal dit gee jou baie meer ondersteuning 87 00:05:29,610 --> 00:05:34,840 en die vermoë om te loods met die emulator en al wat soort van ding. 88 00:05:34,840 --> 00:05:36,090 Aansoek raamwerk. 89 00:05:36,090 --> 00:05:41,590 >> Ek wil om te praat oor hoe die projekte binne Android gestruktureer is, 90 00:05:41,590 --> 00:05:44,830 en dan sal ons gaan in 'n vinnige voorbeeld, en hopelik 91 00:05:44,830 --> 00:05:48,820 jy kan vrae vra op 'n punt en gemaklik voel teen die einde van dit. 92 00:05:48,820 --> 00:05:50,090 Ons het 'n paar jargon eerste. 93 00:05:50,090 --> 00:05:55,330 'N aktiwiteit is soos die skerm wat jy sien wanneer jy die bekendstelling van 'n jeug. 94 00:05:55,330 --> 00:05:57,840 Die hele ervaring is die aktiwiteit self, 95 00:05:57,840 --> 00:06:00,790 sodat jy kan dink dat dit as 'n skerm of 'n oog, 96 00:06:00,790 --> 00:06:04,540 maar dit is eintlik die bron-kode kant van dit. 97 00:06:04,540 --> 00:06:12,680 Ons het nog noem die werklike koppelvlak deel van dit 'n uitsig. 98 00:06:12,680 --> 00:06:17,230 Dit is soort van soos hoe om in pset 7 het ons die kontroles en dan is die oog. 99 00:06:17,230 --> 00:06:20,690 Die aktiwiteit is meer of minder die kontroles, 100 00:06:20,690 --> 00:06:23,360 en die uitsig is wat ons doen in terme van die XML 101 00:06:23,360 --> 00:06:25,260 wat verband hou met daardie aktiwiteit. 102 00:06:25,260 --> 00:06:29,340 Fragmente is iets wat in Ice Cream Sandwich vorentoe geïmplementeer is. 103 00:06:29,340 --> 00:06:36,380 Dit is net 'n idee van die neem van dele van die oog of die aktiwiteit 104 00:06:36,380 --> 00:06:39,990 en hulle verdeel in aparte areas, sodat ons kan 105 00:06:39,990 --> 00:06:45,030 maak ons ​​kode bruikbaar vir hierdie baie verskillende toestelle 106 00:06:45,030 --> 00:06:51,890 dat ons te ondersteun, en dit is net 'n manier om te probeer 107 00:06:51,890 --> 00:06:54,290 ook faktor meer uit code. 108 00:06:54,290 --> 00:07:01,090 Dienste agtergrond dinge soos die speel van musiek of navigasie rigtings moontlik. 109 00:07:01,090 --> 00:07:05,640 Voorsieners van inhoud, dit is APIs binne die bedryfstelsel 110 00:07:05,640 --> 00:07:09,070 wat u toelaat om gedeelde data soos kontak inligting te bekom, 111 00:07:09,070 --> 00:07:12,790 en dan 'n voorneme is iets wat ons sal gebruik wanneer ons wil om te begin 112 00:07:12,790 --> 00:07:17,210 'n nuwe aktiwiteit van ons huidige aktiwiteit. 113 00:07:17,210 --> 00:07:20,980 >> Hallo Android, gaan dit 'n projek wat sal ons praat oor wees. 114 00:07:20,980 --> 00:07:25,410 Ek sal eintlik doen dit vir jou, en dan sal ons 'n ding doen waar ons op 'n knoppie 115 00:07:25,410 --> 00:07:27,650 met 'n paar teks en die bekendstelling van 'n nuwe aktiwiteit. 116 00:07:27,650 --> 00:07:30,110 Baie eenvoudig, maar ek wil om te gaan deur 117 00:07:30,110 --> 00:07:34,480 wat gaan in 'n projek soos hierdie. 118 00:07:34,480 --> 00:07:39,260 Wanneer jy die nuwe projek sal jy sien binne Eclipse 119 00:07:39,260 --> 00:07:41,900 is daar hierdie projek genaamd Hallo Android. 120 00:07:41,900 --> 00:07:43,470 Dan is daar 'n hele klomp van die dopgehou hier. 121 00:07:43,470 --> 00:07:46,760 Die mense wat jy regtig betrokke by die bron gids, 122 00:07:46,760 --> 00:07:54,540 die hulpbron gids, die res, en tot 'n mate die libs gids vir biblioteke. 123 00:07:54,540 --> 00:08:00,070 En net so ons is op dieselfde bladsy met daardie 124 00:08:00,070 --> 00:08:03,240 as jy 'n nuwe projek te skep, 125 00:08:03,240 --> 00:08:08,270 jy kan hierdie reg hier doen, so as ek wil om dit te noem HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 en dan is dit nie outomaties 'n hele klomp van die inligting vir ons. 127 00:08:11,100 --> 00:08:14,110 Die pakket naam is veronderstel om 'n unieke identifikasie wees 128 00:08:14,110 --> 00:08:16,710 wat normaalweg geassosieer word met die webwerf, as jy een het. 129 00:08:16,710 --> 00:08:24,430 >> Byvoorbeeld, sal ek noem dit net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 En ek het reeds gemaak hierdie projek 'n keer. 131 00:08:30,070 --> 00:08:40,059 Goed, jammer. Kom ons noem dit HelloCS50. 132 00:08:40,059 --> 00:08:42,929 En dan sal dit vra dinge soos watter soort ikoon wil ons te maak. 133 00:08:42,929 --> 00:08:48,840 Dit is alles as gevolg van die Android Developer Tools koppelvlak, 134 00:08:48,840 --> 00:08:53,350 die prop dat ons by Eclipse, sodat ons kan kies om dinge soos 135 00:08:53,350 --> 00:08:58,320 watter ikoon ons wil hê, en dit sou gaan in daardie diepte as ons wil. 136 00:08:58,320 --> 00:09:04,360 Maar in die einde, maak net die projek, 137 00:09:04,360 --> 00:09:07,040 en alles toon hier. 138 00:09:07,040 --> 00:09:10,030 Soos ek het op die ander skerm, 139 00:09:10,030 --> 00:09:14,070 ons het die bron gids, en ek sal praat oor wat dit alles beteken gou, 140 00:09:14,070 --> 00:09:19,090 maar jy kan sien dat dit onmiddellik neem ons na die HelloCS50 skerm. 141 00:09:19,090 --> 00:09:24,690 Daar is 'n paar knoppies hier vir die toevoeging van teks en teks veld uitlegte. 142 00:09:24,690 --> 00:09:28,910 Dit is soort van soos Xcode maar ongelukkig nie heeltemal so vaartbelyn. 143 00:09:28,910 --> 00:09:37,790 Maar die snitte sal jou vriend en ADT in die besonder om dit te doen. 144 00:09:37,790 --> 00:09:40,920 >> Goed, die bron gids is waar 145 00:09:40,920 --> 00:09:43,820 die Java lêers gehou word, en dit is eintlik die bekendstelling van die program. 146 00:09:43,820 --> 00:09:45,990 Dit is basies soos die leiers. 147 00:09:45,990 --> 00:09:49,020 Die hulpbron gids of die res is waar ons sal aanhou skerm layouts, 148 00:09:49,020 --> 00:09:54,110 beelde, klanke, teks, animasie en alles anders, libs, natuurlik, biblioteke. 149 00:09:54,110 --> 00:10:01,700 En die Kenne, dit is die manier waarop die Android-stelsel weet 150 00:10:01,700 --> 00:10:03,130 hoe om met jou inligting. 151 00:10:03,130 --> 00:10:07,980 Dit vertel dit oor die regte en watter aktiwiteite sal werklik uitgevoer word. 152 00:10:07,980 --> 00:10:12,350 Dit is al die noodsaaklike inligting wat nodig is om jou inligting te hardloop. 153 00:10:12,350 --> 00:10:17,990 Die bron gids is-as ons dit uit te brei as wat jy kan hier sien. 154 00:10:17,990 --> 00:10:23,920 En 'n voorbeeld wat 'n kode sal kyk-dit is die standaard-kode. 155 00:10:23,920 --> 00:10:27,930 Soos ons dit genoem het, MainActivity. 156 00:10:27,930 --> 00:10:33,230 By verstek, kry ons OnCreate, wat is 'n funksie wat genoem word wanneer hierdie aktiwiteit vragte, 157 00:10:33,230 --> 00:10:37,150 so jy wil OnCreate (savedInstanceState) te bel. 158 00:10:37,150 --> 00:10:40,440 Dit sal die herstel van enige stukkies inligting 159 00:10:40,440 --> 00:10:44,910 in die geval van die inligting is gestop. 160 00:10:44,910 --> 00:10:48,790 >> Daar is 'n hele aktiwiteit lewensiklus grafiek wat jy kan kyk na 161 00:10:48,790 --> 00:10:50,380 wanneer jy 'n bietjie meer in-diepte in dit, 162 00:10:50,380 --> 00:10:56,210 maar die belangrikste reël van die kode is daar hierdie setContentView funksie 163 00:10:56,210 --> 00:11:00,290 wat die hulpbron lêer laai vir die uitleg. 164 00:11:00,290 --> 00:11:03,590 Dan wat OnCreate hier is basies doen, is dit gesê 165 00:11:03,590 --> 00:11:07,010 toe ek skep hierdie aktiwiteit Ek wil hierdie uitleg te laai. 166 00:11:07,010 --> 00:11:12,030 En ons sal praat oor wat dit uitleg is in 'n sekonde. 167 00:11:12,030 --> 00:11:16,230 As ons van stapel te stuur wat hier is dit presies lyk soos hierdie, 168 00:11:16,230 --> 00:11:22,880 en by verstek, want ons het Eclipse om dit te doen en ADT doen dit vir ons 169 00:11:22,880 --> 00:11:28,210 dit is alles boiler kode wat vir ons geskep is, 170 00:11:28,210 --> 00:11:34,630 en ons kan beweeg en dinge verander as ons wil. 171 00:11:34,630 --> 00:11:38,190 Die hulpbron gids, soos ek gesê het, dit is waar ons hou al layouts, 172 00:11:38,190 --> 00:11:41,150 drawables in terme van enige aard van die beelde- 173 00:11:41,150 --> 00:11:46,360 Hulle is geroep drawables-en klank lêers, spyskaarte. 174 00:11:46,360 --> 00:11:51,170 Dit is 'n manier om 'n hele klomp van XML in 'n mooi gesorteer mode. 175 00:11:51,170 --> 00:11:58,030 Soos jy kan sien, is daar. HDPI, ldpi, MDPI en xhdpi dopgehou vir die drawables. 176 00:11:58,030 --> 00:12:02,220 Dit is twee verskillende skerm digthede, so 'n hoë digtheid pixel per duim, 177 00:12:02,220 --> 00:12:05,710 lae digtheid, medium-digtheid, ekstra hoë digtheid. 178 00:12:05,710 --> 00:12:08,900 >> Dit is, weer, sodat ons kan ondersteun al hierdie verskillende toestelle, 179 00:12:08,900 --> 00:12:15,100 en ideaal, sal jy verskillende beelde vir elke verskillende resolusie. 180 00:12:15,100 --> 00:12:20,740 Uitleg is waar ons sluit al die verskillende uitlegte wat in verskillende aktiwiteite gebruik word. 181 00:12:20,740 --> 00:12:24,150 Hulle kon ook uitlegte vir fragmente, 182 00:12:24,150 --> 00:12:26,670 wat beteken gedeeltelike aktiwiteite basies. 183 00:12:26,670 --> 00:12:29,610 As jy iets cool om te doen soos wanneer jy draai die telefoon 184 00:12:29,610 --> 00:12:33,900 jy wil dit 'n ander uitleg kan jy uitleg-landskap te doen as 'n ander gids te hê, 185 00:12:33,900 --> 00:12:39,000 en Android het outomaties 'n hele klomp van hierdie reëls binne die hulpbron gids, 186 00:12:39,000 --> 00:12:44,690 so dit sal weet om te kyk na verskillende dopgehou wat gebaseer is op die huidige opset van die telefoon, 187 00:12:44,690 --> 00:12:46,740 watter soort hardeware wat jy gebruik. 188 00:12:46,740 --> 00:12:52,350 Net so, is hierdie waardes-V11 hier en waardes-V14 189 00:12:52,350 --> 00:12:55,460 en die standaard waardes gids nie dit is vir- 190 00:12:55,460 --> 00:13:01,730 Wel, waardes op sigself, sal dit die standaard waardes in alle weergawes van die bedryfstelsel. 191 00:13:01,730 --> 00:13:06,390 Aan die ander kant, V11 en V14 ooreenstem met Honingraat 192 00:13:06,390 --> 00:13:08,780 en roomys Sandwich, onderskeidelik. 193 00:13:08,780 --> 00:13:12,800 Weereens, hierdie is maniere wat-binne hierdie dopgehou is verskillende snare 194 00:13:12,800 --> 00:13:17,550 en style, so kan jy die voorkoms van jou artikels 195 00:13:17,550 --> 00:13:22,660 of moontlik selfs sy funksies, hoewel dit waarskynlik sou wees om 'n slegte idee nie, 196 00:13:22,660 --> 00:13:25,890 gebaseer op die weergawe van die bedryfstelsel. 197 00:13:25,890 --> 00:13:28,760 >> En ek het gepraat oor al hierdie dinge hier. 198 00:13:28,760 --> 00:13:35,870 Weereens, drawable, rou, uitleg, waardes. 199 00:13:35,870 --> 00:13:41,380 Die verstek, as ons gaan by Hello Android of Hallo CS50 nou 200 00:13:41,380 --> 00:13:43,310 dit lyk net soos hierdie. 201 00:13:43,310 --> 00:13:45,800 Dit sal sê hallo wêreld. 202 00:13:45,800 --> 00:13:58,430 Soos jy kan hier sien met die Android teks 203 00:13:58,430 --> 00:14:04,420 die teks vir hierdie teks sien, wat is basies net 'n etiket, 204 00:14:04,420 --> 00:14:06,900 is wat dit ons sou noem in IOS. 205 00:14:06,900 --> 00:14:11,580 Dit het hierdie funny notasie @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 Dit is sodat ons kan-ons probeer om al die snare te onttrek, 207 00:14:16,200 --> 00:14:19,740 al die harde-gekodeerde snare in Android in 'n aparte gids, 208 00:14:19,740 --> 00:14:23,610 wat gebeur om te wees in values.strings. 209 00:14:23,610 --> 00:14:29,300 As ons kyk hier, kan ons sien dat ons 'n hard-gekodeerde string gered hier 210 00:14:29,300 --> 00:14:33,910 vir hallo wêreld, en dit genoem hallo wêreld, en dit is 'n soort van 'n 211 00:14:33,910 --> 00:14:39,230 algemene ontwerp besluit oor baie platforms wat jy wil- 212 00:14:39,230 --> 00:14:41,780 snare is die soort van dinge wat ons wil potensieel in staat wees om te verander. 213 00:14:41,780 --> 00:14:48,050 Ons wil nie F in ons bron-kode lêer te beheer in ons XML. 214 00:14:48,050 --> 00:14:50,760 Ons wil in staat wees om dit te verander wanneer ons die kans kry. 215 00:14:50,760 --> 00:14:53,640 >> Dit XML lêer, Strings.xml, is 'n manier om te onttrek 216 00:14:53,640 --> 00:14:56,710 hard-gekodeerde snare wat andersins sou wees in ons uitleg hulpbronne 217 00:14:56,710 --> 00:15:03,530 of in ons bron-kode. 218 00:15:03,530 --> 00:15:08,190 Die openbaar word, is waar ons hierdie noodsaaklike inligting oor die aansoek. 219 00:15:08,190 --> 00:15:11,050 Dit sluit in die pakket naam. Dit moet 'n unieke identifikasie wees. 220 00:15:11,050 --> 00:15:16,020 In teenstelling met die App Store vir IOS die name van die aansoeke 221 00:15:16,020 --> 00:15:19,980 hoef nie te wees unieke, en jy kan in die feit dat die naam van jou aansoek 222 00:15:19,980 --> 00:15:23,570 nadat jy dit inhandig, so as ek begin met 'Angry Birds, 223 00:15:23,570 --> 00:15:26,840 en dan maak ek 'n werk, en ek wil nie 'n nuwe weergawe vry te stel 224 00:15:26,840 --> 00:15:34,230 Ek dink ek kan noem dit Angry Birds 2, terwyl ek op dieselfde vrylating siklus. 225 00:15:34,230 --> 00:15:36,780 Dit sou net opdaag as 'n werk. 226 00:15:36,780 --> 00:15:39,790 Die enigste ding wat uniek is hierdie pakket naam, 227 00:15:39,790 --> 00:15:41,280 wat nie baie mense sal sien. 228 00:15:41,280 --> 00:15:44,680 Wel, jy wil net sien as jy is op soek na die bron kode, of indien daar is 'n soort van fout. 229 00:15:44,680 --> 00:15:47,580 Die komponente aktiwiteite in te sluit, so ons het om te verklaar 230 00:15:47,580 --> 00:15:49,070 enige soort aktiwiteit wat ons gebruik. 231 00:15:49,070 --> 00:15:53,430 Dit is 'n toestemming soort van ding. 232 00:15:53,460 --> 00:15:58,150 >> Omdat Android nie hierdie streng toepassing proses 233 00:15:58,150 --> 00:16:02,210 vir die indiening van aansoeke plaas hulle net alles wat gebaseer is af van die regte 234 00:16:02,210 --> 00:16:04,300 en verklaar dat dinge in die openbaar geword het. 235 00:16:04,300 --> 00:16:06,380 Die SDK weergawe is ook belangrik. 236 00:16:06,380 --> 00:16:10,330 Ons kan stel gebruik as SDK minimum weergawe iets. 237 00:16:10,330 --> 00:16:16,010 Natuurlik, jy wil code te skep 238 00:16:16,010 --> 00:16:18,570 en ontwerp vir die nuwe bedryfstelsels. 239 00:16:18,570 --> 00:16:20,840 Miskien nie die nuutste, miskien nie Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Miskien wil jy te ontwerp hoofsaaklik vir roomys Sandwich, 241 00:16:23,610 --> 00:16:27,120 hoewel hulle is nogal baie dieselfde in terme van die ontwerp besluite 242 00:16:27,120 --> 00:16:30,550 en die werklike biblioteke en API's. 243 00:16:30,550 --> 00:16:36,250 Maar eerder as wat mense 244 00:16:36,250 --> 00:16:40,050 van die oorspronklike Android weergawe-agtige donut pad terug toe- 245 00:16:40,050 --> 00:16:43,420 wat nog gebeur te wees met wat probeer om jou aansoek te laai en dan sê 246 00:16:43,420 --> 00:16:46,160 dit werk nie op my selfoon wat jy kan die minimum weergawe stel 247 00:16:46,160 --> 00:16:48,620 en dit het peperkoek of Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 of wat ook al jy gemaklik voel indien. 249 00:16:53,300 --> 00:16:57,170 En dit is 'n voorbeeld van die Kenne. Ons kan kyk na die werklike een in 'n bietjie. 250 00:16:57,170 --> 00:17:00,900 >> Goed, ons sal net voort te gaan met die demo nou. 251 00:17:00,900 --> 00:17:08,900 Dit is die demo as jy Google Android bou jou eerste artikels of iets soos dit. 252 00:17:08,900 --> 00:17:12,089 Ons gaan deur alles wat gaan aan daar in, 253 00:17:12,089 --> 00:17:17,690 en jammer, net vir 'n verwysing wat hier Java weet tot enige mate? 254 00:17:17,690 --> 00:17:28,310 Goed, so Java is 'n nuwe codeertaal vir die meeste mense uit te kom van CS50. 255 00:17:28,310 --> 00:17:31,850 Kortliks, om te gaan oor die weer wat dit hier sê, 256 00:17:31,850 --> 00:17:35,580 wat ons wil doen, is om eerder as om aan te pas hierdie Hello World aansoek 257 00:17:35,580 --> 00:17:38,620 dat al wat dit doen is dit lanseer en dit sê hallo wêreld 258 00:17:38,620 --> 00:17:43,580 en dit sê hallo CS50 aan die bokant, want dit is die aktiwiteit naam 259 00:17:43,580 --> 00:17:47,190 ons gaan om te probeer om 'n teks veld en 'n knoppie te maak 260 00:17:47,190 --> 00:17:50,680 sodat wanneer ons druk die knoppie dit sal neem om die teks 261 00:17:50,680 --> 00:17:53,660 uit die teks veld en die bekendstelling van 'n nuwe aktiwiteit, en dit sal sê 262 00:17:53,660 --> 00:17:58,380 alles wat die teks sê in die aktiwiteit, en dit is relatief eenvoudig. 263 00:17:58,380 --> 00:18:00,650 Dit is nie baie interessant. Jy wil nie hê dat enige artikels soos hierdie te laat. 264 00:18:00,650 --> 00:18:03,880 Maar dit bewys 'n paar belangrike ontwerp dinge. 265 00:18:03,880 --> 00:18:07,030 >> Ons sal moet interaksie met die Kenne, met die uitleg lêers, 266 00:18:07,030 --> 00:18:12,440 met die bron-kode, en jy kan sien hoe een aktiwiteit te begin van 'n ander. 267 00:18:19,740 --> 00:18:23,060 Ons begin met die uitleg vir ons eerste aktiwiteit, 268 00:18:23,060 --> 00:18:27,320 wat ek weet dit is soort van 'n klein, 269 00:18:27,320 --> 00:18:32,660 maar as jy nou kan sien, al is dit is dit ons logo wat ons geskep het, 270 00:18:32,660 --> 00:18:36,310 die aktiwiteit naam, en dit sê hallo wêreld in die sentrum. 271 00:18:36,310 --> 00:18:40,400 In plaas daarvan, ek eerste gaan om dit te maak in 'n lineêre uitleg, 272 00:18:40,400 --> 00:18:42,350 'n familielid uitleg, en dit is alles 273 00:18:42,350 --> 00:18:45,870 jy kan kyk op en is die moeite werd gaan oor op 'n sekere punt in terme van die uitleg. 274 00:18:45,870 --> 00:18:47,310 Dit is 'n baie soos HTML. 275 00:18:47,310 --> 00:18:52,640 Ons het gesê dit is nie regtig die moeite werd om te weet in terme van 'n programmatiese sin, 276 00:18:52,640 --> 00:18:55,840 maar daar is so baie verskillende uitlegte wat jy kan beheer, 277 00:18:55,840 --> 00:18:57,970 en dit is net soos CSS in terme van style. 278 00:18:57,970 --> 00:19:01,590 >> Daar is 'n baie gaan op net in terme van die estetika hier, 279 00:19:01,590 --> 00:19:08,930 en ja, dit is die moeite werd leer, maar dit is die soort van ding wat jy moet kyk 280 00:19:08,930 --> 00:19:11,810 as jy gaan en jy voel jy moet iets nuuts. 281 00:19:11,810 --> 00:19:17,030 Ek kan voordeel trek uit 'n paar van die ADT gereedskap hier ten minste te begin met. 282 00:19:17,030 --> 00:19:21,930 Ek sal 'n teks veld maak, en Ek sal 'n knoppie te maak. 283 00:19:21,930 --> 00:19:24,100 Sit hulle langs mekaar. 284 00:19:24,100 --> 00:19:28,200 Hulle het reeds gepaste grootte. 285 00:19:28,200 --> 00:19:31,320 Jammer, weer terug te kom na die verskil tussen lineêre uitleg en relatiewe uitleg, 286 00:19:31,320 --> 00:19:34,830 'n lineêre uitleg gee 'n bietjie meer funksies 287 00:19:34,830 --> 00:19:38,720 in terme van die vulling van ruimte en maak seker 288 00:19:38,720 --> 00:19:42,790 ons posisie dinge horisontaal of vertikaal. 289 00:19:42,790 --> 00:19:46,130 Die groot verskil tussen 'n lineêre uitleg en 'n relatiewe uitleg 290 00:19:46,130 --> 00:19:50,250 is die relatiewe uitleg posisies alles relatief tot ander perspektiewe 291 00:19:50,250 --> 00:19:52,630 en die goeie ding oor dit is dat dit neem minder tyd om te trek 292 00:19:52,630 --> 00:19:56,120 omdat die bedryfstelsel kyk na al die kode en sê dit gaan 293 00:19:56,120 --> 00:19:58,270 betrekking tot hierdie hier, hier. 294 00:19:58,270 --> 00:20:03,170 Dit beteken dat dit maak minder metings as 'n hele klomp van die sub-lineêre layouts, 295 00:20:03,170 --> 00:20:06,840 wat ek wil hê om te doen as ek wou dinge vertikaal hier. 296 00:20:06,840 --> 00:20:10,510 >> Ek het reeds 'n paar dinge horisontaal gaan, so ek sal moet 'n verskillende lineêre uitleg 297 00:20:10,510 --> 00:20:14,560 om nes te maak hulle vertikaal, maar as ek besig was om 'n familielid uitleg ek kon sê 298 00:20:14,560 --> 00:20:18,140 hou dit aan die linkerkant, dit aan die reg en hierdie dinge hieronder. 299 00:20:18,140 --> 00:20:21,850 Maar omdat ek wil hê hulle moet nou vul ek gaan 'n lineêre uitleg te gebruik, 300 00:20:21,850 --> 00:20:24,510 en jy kan sien dit nie reeds 'n baie van hierdie dinge vir ons. 301 00:20:24,510 --> 00:20:28,890 Alle menings nodig het 'n eiendom van die hoogte en breedte te hê, 302 00:20:28,890 --> 00:20:33,410 en dit gebeur 'n gewig van 1 te hê, en dit het 'n gewig van 1 303 00:20:33,410 --> 00:20:36,050 sodat dit vul die hele ruimte. 304 00:20:36,050 --> 00:20:38,460 Maar die hoogte en breedte van die belangrikste is. 305 00:20:38,460 --> 00:20:45,880 Dit ID-veld hier is nie belangrik in die werklike uitleg 306 00:20:45,880 --> 00:20:49,060 tensy ons gebruik 'n relatiewe uitleg en sê ons kan verwys 307 00:20:49,060 --> 00:20:52,990 een-posisie in die verwysing na 'n ander. 308 00:20:52,990 --> 00:20:56,170 As ons 'n relatiewe uitleg kan ons sê posisie hierdie onder om die een 309 00:20:56,170 --> 00:20:59,390 of bo die ID, maar hierdie ID sal belangrik wees 310 00:20:59,390 --> 00:21:01,660 wanneer ons dit gebruik in ons kode, want ons kan verwys 311 00:21:01,660 --> 00:21:05,610 hierdie individuele menings op hierdie manier. 312 00:21:05,610 --> 00:21:10,350 >> En dan kan jy sien die tag requestFocus, dit is iets wat jy waarskynlik gesien in pset 7. 313 00:21:10,350 --> 00:21:15,370 Daar was 'n outomatiese fokus tag of iets langs die lyne vir een van die velde. 314 00:21:15,370 --> 00:21:22,100 En een ding is, natuurlik, kan ons net soos dit doen in HTML, 315 00:21:22,100 --> 00:21:25,660 en kennis een van die mooi dinge oor ADT is dat dit hier autocompletes. 316 00:21:25,660 --> 00:21:29,930 Miskien nie so mooi soos dit gedoen het in Xcode, maar dit nietemin 317 00:21:29,930 --> 00:21:32,860 en ons kon sê wenk en dan gee dit 'n soort van string 318 00:21:32,860 --> 00:21:37,070 graag 'n boodskap skryf, 319 00:21:37,070 --> 00:21:41,300 en as ek dit gee 'n oomblik, ook sien dat ek 'n bietjie fout hier 320 00:21:41,300 --> 00:21:44,610 sê dat ons moet 'n string hulpbron gebruik vir hierdie, 321 00:21:44,610 --> 00:21:48,820 So as ek dit laat doen 'n paar van die harde werk vir my 322 00:21:48,820 --> 00:21:57,320 Ek kan hierdie string kies, doen refractor Android en uittreksel Android string. 323 00:21:57,320 --> 00:22:00,570 Ek gee dit die naam, skryf 'n boodskap 324 00:22:00,570 --> 00:22:04,180 en wat dit gedoen het, is dit nou vervang wat hard-gekodeerde string 325 00:22:04,180 --> 00:22:07,980 met 'n verwysing na die string in die string se xml lêer., 326 00:22:07,980 --> 00:22:10,200 wat beteken dit is nou hier. 327 00:22:10,200 --> 00:22:15,560 >> En ek weet dat lyk 'n bietjie triviale en soos ekstra werk op hierdie punt, 328 00:22:15,560 --> 00:22:17,840 maar wanneer jy 'n hele klomp van die dinge, 'n hele klomp van die snare, 329 00:22:17,840 --> 00:22:20,750 dit is baie belangrik, en veral vir lokalisering 330 00:22:20,750 --> 00:22:26,920 want as ek vroeër genoem het, Android is 'n baie wêreldwyd gebruik bedryfstelsel 331 00:22:26,920 --> 00:22:35,950 wat jy kan doen maar net waardes-en of waardes-sp 332 00:22:35,950 --> 00:22:44,320 of iets vir Engels of Spaans of ander tale. 333 00:22:44,320 --> 00:22:50,210 En dan is jy waarskynlik het nie hierdie ervaring nog 334 00:22:50,210 --> 00:22:53,030 want ons het nie veel JavaScript in terme van die web ontwikkeling, 335 00:22:53,030 --> 00:22:56,850 maar ons kan dit ook doen veld genaamd "onClick vir die knoppie, 336 00:22:56,850 --> 00:23:02,350 en dit is 'n manier van verwysing in ons uitleg 337 00:23:02,350 --> 00:23:06,570 dat ons 'n sekere funksie genoem te word in ons bron-kode. 338 00:23:06,570 --> 00:23:09,420 Ek gaan hierdie sendMessage te roep, 339 00:23:09,420 --> 00:23:13,390 en om hierdie werk te maak wat beteken dat in die hoof aktiwiteit hier 340 00:23:13,390 --> 00:23:19,180 Ek sal 'n funksie wat publiek te skep 341 00:23:19,180 --> 00:23:22,250 sodat dit kan verkry word deur die uitleg. 342 00:23:22,250 --> 00:23:25,930 Dit is leeg, want jy wil net nie dit niks om terug te keer. 343 00:23:25,930 --> 00:23:37,760 Ons noem dit sendMessage, en dit neem 'n oog, 344 00:23:37,760 --> 00:23:43,690 Dit is 'n soort van konteks dat ons hierdie metode anker 345 00:23:43,690 --> 00:23:47,160 aan dat individuele siening wanneer ons dit loop. 346 00:23:47,160 --> 00:23:50,090 >> En ek weet nie of jy al agtergekom-goed, sou jy nie opgemerk het, 347 00:23:50,090 --> 00:24:02,370 maar op hierdie punt reg hier 348 00:24:02,370 --> 00:24:06,930 hierdie siening is 'n tipe wat nog nie opgeneem is, 349 00:24:06,930 --> 00:24:10,630 en natuurlik, jy weet almal van CS50 oor nie, insluitend soorte. 350 00:24:10,630 --> 00:24:13,120 Die lekker ding van IO soos Eclipse is dat 351 00:24:13,120 --> 00:24:17,520 As jy vergeet om 'n tipe te sluit sal dit onderstreep met 'n bietjie rooi kronkel 352 00:24:17,520 --> 00:24:19,680 en dan gee jy die opsie om die oog te voer. 353 00:24:19,680 --> 00:24:23,130 'N Vinnige manier om dit te doen is om beheer verskuiwing O, en dit sal invoer 354 00:24:23,130 --> 00:24:27,070 al die lêers wat dit nodig het om te. 355 00:24:27,070 --> 00:24:33,670 Nou dat ons hierdie funksie sendMessage, 356 00:24:33,670 --> 00:24:46,560 wat gaan boodskap te stuur van die MainActivity na 'n nuwe aktiwiteit, 357 00:24:46,560 --> 00:24:55,230 ons gaan hê om 'n doel om die nuwe aktiwiteit te begin van hierdie een te gebruik, 358 00:24:55,230 --> 00:25:02,240 so ons sal waarskynlik wil 'n globale konstante of ook veral 'n openbare konstant te skep 359 00:25:02,240 --> 00:25:06,240 wat sal help om ons weet hoe ons gaan die string te verwys 360 00:25:06,240 --> 00:25:09,090 want as ons 'n bedoeling Ons is net nie 'n beroep 'n nuwe aktiwiteit, 361 00:25:09,090 --> 00:25:11,520 maar ons kan ook gee dit 'n bondel van inligting. 362 00:25:11,520 --> 00:25:14,720 'N bundel is eintlik die term wat Android gebruik, 363 00:25:14,720 --> 00:25:21,470 en dit is 'n manier om te sê dit gee ekstra data, wat dit nie kan wees van 'n baie gesofistikeerde data tipe, 364 00:25:21,470 --> 00:25:24,510 maar ons kan beslis sluit booleans of snare of ints. 365 00:25:24,510 --> 00:25:29,750 Daardie soort van ding. 366 00:25:29,750 --> 00:25:34,230 >> Voel vry om te vra oor enige van hierdie kwalifiseerders hier, 367 00:25:34,230 --> 00:25:36,900 publiek, finale, statiese. 368 00:25:36,900 --> 00:25:38,610 Publiek is die belangrike een. 369 00:25:38,610 --> 00:25:47,090 Dit beteken dat ons kan hierdie veranderlike toegang van ander bron-kode lêers 370 00:25:47,090 --> 00:25:49,590 soos wanneer ons 'n nuwe aktiwiteit. 371 00:25:49,590 --> 00:25:52,190 Ons kan verwys na die string binne hierdie lêer. 372 00:25:52,190 --> 00:25:57,160 As dit is private, dit beteken dit is beperk tot die individu lêer hier. 373 00:25:57,160 --> 00:26:02,430 Maar ons sal noem dit iets soos ekstra boodskap. 374 00:26:16,260 --> 00:26:23,300 Nou het ons het hierdie funksie, en as ons op die knoppie klik, hierdie funksie sal genoem word. 375 00:26:23,300 --> 00:26:27,970 Maar ons het niks gedoen nie, natuurlik, met die funksie. 376 00:26:27,970 --> 00:26:33,130 Wat ons nou wil doen, is om 'n nuwe aktiwiteit, 377 00:26:33,130 --> 00:26:35,350 die aktiwiteit wat eintlik van stapel gestuur word. 378 00:26:35,350 --> 00:26:44,330 In Eclipse ons kan sê nuwe Android aktiwiteit, leë aktiwiteit. 379 00:26:44,330 --> 00:26:46,530 Ons kan dit 'n naam. 380 00:26:46,530 --> 00:26:57,050 Kom ons noem dit ons gevolg aktiwiteit. 381 00:26:57,050 --> 00:27:04,430 En dan is dit hiërargiese ouer veld is 'n manier om te spesifiseer 382 00:27:04,430 --> 00:27:08,180 hoe die aktiwiteite wat verband hou met mekaar. 383 00:27:08,180 --> 00:27:11,020 Want hierdie een sal van stapel gestuur word vanaf die ander aktiwiteite 384 00:27:11,020 --> 00:27:27,520 Ons moet spesifiseer dat dit die ouer hoof aktiwiteit. 385 00:27:27,520 --> 00:27:31,220 >> En ek kon gekliek het op die volgende gebied is daar, wat sou ons gesê het 386 00:27:31,220 --> 00:27:33,830 'n opsionele velde wat dit ook is, insluitend 387 00:27:33,830 --> 00:27:38,800 maar die lekker ding van ADT, weer, is dat as ek blaai af hier 388 00:27:38,800 --> 00:27:45,740 in die Kenne onthou dat alles wel is ingesluit by verstek 389 00:27:45,740 --> 00:27:48,930 wanneer ons oorspronklik geskep om die projek, 390 00:27:48,930 --> 00:27:53,090 en nou, want ons gebruik om hierdie 'n nuwe aktiwiteit eerder as om net 391 00:27:53,090 --> 00:27:58,610 voeg ons eie klas lêer, want ons het deur middel van hul GUI om dit te doen 392 00:27:58,610 --> 00:28:01,930 dit reeds bygevoeg al hierdie dinge aan die Kenne vir ons, 393 00:28:01,930 --> 00:28:06,020 Dit beteken net dat dit nou die bedryfstelsel nie sal kla 394 00:28:06,020 --> 00:28:09,400 wanneer ons probeer om hierdie aktiwiteit te begin. 395 00:28:09,400 --> 00:28:14,620 En dit is ook, natuurlik, het dit 'n etiket, wat ook toon in snare. 396 00:28:14,620 --> 00:28:17,340 Dit maak 'n baie van die dinge wat op die agterkant vir ons. 397 00:28:17,340 --> 00:28:20,140 In elk geval, nou dat ons hierdie resultaat aktiwiteit, asook, 398 00:28:20,140 --> 00:28:23,810 die werklike bron-kode lêer in die bron gids, 399 00:28:23,810 --> 00:28:33,540 en jy kan sien-kort ingaan op hierdie- 400 00:28:33,540 --> 00:28:37,790 want ons het dit oor hierdie hiërargiese ouer 401 00:28:37,790 --> 00:28:46,640 dit het hierdie gebied android.r.ide.home in hierdie onOption geselekteerde ding. 402 00:28:46,640 --> 00:28:49,020 >> Wat dit basies sê is daar is 'n spyskaart knoppie nou 403 00:28:49,020 --> 00:28:53,110 wat in die boonste linker hoek van die skerm 404 00:28:53,110 --> 00:29:02,220 As ek gaan terug na die PowerPoint waar ons die eerste keer gepraat oor die aksie bar 405 00:29:02,220 --> 00:29:05,380 as gevolg van die hiërargiese ouer nou is daar 'n bietjie pyl terug hier 406 00:29:05,380 --> 00:29:10,610 en dit is klikbare sodat ons moet in staat wees om te nadat ons eintlik loop hierdie inligting- 407 00:29:10,610 --> 00:29:15,360 gaan terug, en dit is 'n manier van spaar ons 'n bietjie van die kode is daar. 408 00:29:26,220 --> 00:29:40,180 Nou in hierdie-Wel, dit blyk te wees kla oor wat vir 'n oomblik. 409 00:29:40,180 --> 00:29:43,910 Kom ons wat uit kommentaar lewer nie. 410 00:29:43,910 --> 00:29:48,260 Nou, om werklik om interaksie met hierdie 2-aktiwiteite, 411 00:29:48,260 --> 00:29:55,020 ons het 'n doel wat ook al van hierdie data te skep. 412 00:29:55,020 --> 00:29:58,950 In sendMessage nou gaan ek cruise deur middel van 'n paar stukkies van die kode 413 00:29:58,950 --> 00:30:00,700 en verduidelik dat as ek gaan. 414 00:30:00,700 --> 00:30:06,280 'N voorneme, soos ek gesê het, is 'n manier om 'n aktiwiteit te begin van 'n ander. 415 00:30:06,280 --> 00:30:10,000 Oogmerk is om die tipe. Ons is die skep van 'n veranderlike myIntent. 416 00:30:10,000 --> 00:30:13,980 >> En dit is eintlik 'n voorwerp, wat is die rede waarom ons het om te noem nuwe. 417 00:30:13,980 --> 00:30:18,500 Dit is algemeen Java gebruik daar, wat dalk 'n bietjie om gewoond te neem. 418 00:30:18,500 --> 00:30:23,900 Dit beteken dat ons die aktiwiteit of die klas MainActivity gebruik, 419 00:30:23,900 --> 00:30:28,630 en bedoeling in die manier neem die aktiwiteit dit gaan uit 420 00:30:28,630 --> 00:30:36,060 en die aktiwiteit dit gaan, wat ons noem ResultActivity, 421 00:30:36,060 --> 00:30:38,170 en dit is sy eie klas. 422 00:30:38,170 --> 00:30:41,720 Sluit nie. 423 00:30:41,720 --> 00:30:47,370 En dan as ek voorheen genoem, het ons dat ID na die wysig teks veld 424 00:30:47,370 --> 00:30:53,710 en die teks oog, so in orde te programmaties vang 425 00:30:53,710 --> 00:31:01,860 die teks wat bestaan ​​in die editText 426 00:31:01,860 --> 00:31:06,710 ons gebruik hierdie funksie genoem findViewByID, 427 00:31:06,710 --> 00:31:13,660 wat soortgelyk is aan iets wat jy sal gebruik wanneer ek probeer om velde te kry van die DOM. 428 00:31:13,660 --> 00:31:17,560 Miskien Dawid praat oor hierdie in lesing. 429 00:31:17,560 --> 00:31:26,600 Maar dit is net 'n manier om dié-dit is hoekom ons merk hierdie dinge met dié velde. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Dit is reeds autocompleting vir my daar. 432 00:31:35,220 --> 00:31:42,010 >> En dan sal ons ook die volgende insluit: hierdie editText nou dat ons die veld 433 00:31:42,010 --> 00:31:47,640 binne ons program, het alles wat findViewByID was basies 434 00:31:47,640 --> 00:31:50,870 jy kon dink dit as ons 'n verwysing na daardie editText. 435 00:31:50,870 --> 00:31:54,570 Nou wil ons die tou of die boodskap te kry 436 00:31:54,570 --> 00:32:00,670 binne daardie editText wat ons kan doen deur die gebruik van die- 437 00:32:00,670 --> 00:32:03,360 jy kon dink editText as 'n struct- 438 00:32:03,360 --> 00:32:07,600 Ons noem dit 'n voorwerp in Java-met 'n hele klomp van verskillende metodes 439 00:32:07,600 --> 00:32:10,650 of velde en eienskappe wat daaraan gekoppel is. 440 00:32:10,650 --> 00:32:15,510 Toe ek editText sê. dit gee my die kans om toegang te verkry 441 00:32:15,510 --> 00:32:19,770 'n metode soos kryTeks, wat sal die huidige teks kry 442 00:32:19,770 --> 00:32:23,990 in daardie editText en dan wat uitdruklik omskep 443 00:32:23,990 --> 00:32:26,520 na 'n string, en ons gespaar het die boodskap. 444 00:32:26,520 --> 00:32:32,730 Nou is ons werklik wil om iets te doen met die doel om ons geskep net oomblikke gelede. 445 00:32:32,730 --> 00:32:40,250 Ek sal ekstra soos dit genoem word in die opset, 446 00:32:40,250 --> 00:32:43,330 wat, weer, soos ek gesê het, dit is 'n manier van die skep van die bundel 447 00:32:43,330 --> 00:32:45,980 met 'n hele klomp van die data. 448 00:32:45,980 --> 00:32:50,920 Ekstra boodskap is ons tag sodat ons weet wat dit is ons spaar onder, 449 00:32:50,920 --> 00:32:56,700 en dan is ek met die boodskap. 450 00:32:56,700 --> 00:33:04,870 >> En dan kan ons eintlik met die aktiwiteit begin deur dit te gee die parameter myIntent. 451 00:33:04,870 --> 00:33:10,630 En dit sal eintlik die bekendstelling van die aktiwiteit, so nou sedert ek opgradeer na Windows 8 452 00:33:10,630 --> 00:33:15,870 is daar dalk 'n paar foute wat wys kortliks, maar probeer om dit te ignoreer. 453 00:33:28,010 --> 00:33:30,310 En dit is die Android emulator. 454 00:33:30,310 --> 00:33:33,540 Hopelik sal die kode eintlik pop-up in 'n oomblik. 455 00:33:33,540 --> 00:33:36,680 Weereens, ignoreer al die klein dinge. 456 00:33:36,680 --> 00:33:42,290 Maar die Android emulator jy kan navolg 'n weergawe van die bedryfstelsel 457 00:33:42,290 --> 00:33:45,180 van die vroegste mense, Donut, peperkoek. 458 00:33:45,180 --> 00:33:49,640 Dit is Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Maar as jy nou kan sien, dit is iets wat ons gemaak het. 460 00:33:53,150 --> 00:33:55,780 Dit het die MainActivity, die editText, die knoppie. 461 00:33:55,780 --> 00:34:01,550 Ek kan iets hier tik, maar wat ons ontbreek op hierdie punt? 462 00:34:01,550 --> 00:34:05,190 Ons het die veld in die MainActivity wat gaan die boodskap te stuur 463 00:34:05,190 --> 00:34:08,570 aan die ander aktiwiteit nie, maar op hierdie punt 464 00:34:08,570 --> 00:34:12,330 ons het niks gedoen nie in die ander aktiwiteite, so dit is nie van plan om iets te ontvang. 465 00:34:12,330 --> 00:34:18,800 Kom ons klaarmaak dat 'n deel voordat ons beweeg aan. 466 00:34:18,800 --> 00:34:25,760 >> Hierdie resultaat aktiwiteit, wat ons nodig het om te doen, is ons sal moet doen, is ons nodig het om te 467 00:34:25,760 --> 00:34:30,070 Ons kan ook verwys na die bedoeling binne hierdie aktiwiteit, 468 00:34:30,070 --> 00:34:33,580 so ons het die voorneme, wat is regtig maklik om te vang. 469 00:34:33,580 --> 00:34:40,780 Dit is 'n funksie ingesluit in die aktiwiteit klas, 470 00:34:40,780 --> 00:34:47,610 sodat ons kan net sê: "Kry die boodskap van die voorneme." 471 00:34:47,610 --> 00:34:56,260 "Bedoeling myIntent = getIntent." 472 00:34:56,260 --> 00:35:00,030 En dit sal ons-nou gee myIntent is 'n voorwerp, 473 00:35:00,030 --> 00:35:05,380 Dit is 'n verwysing na die bedoeling dat ons gelei het tot hierdie aktiwiteit. 474 00:35:05,380 --> 00:35:10,130 MainActivity roep en gee ekstra inligting aktiwiteit te lei. 475 00:35:10,130 --> 00:35:14,070 Gevolg aktiwiteit lyk nou by die bedoeling wat gelei het dit hier, 476 00:35:14,070 --> 00:35:23,540 en ons kan toegang tot die boodskap wat ons geskep het in die ander een, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, en dit sal outomaties vir my. 478 00:35:26,370 --> 00:35:31,190 En dan onthou, die manier waarop ons gemerk dat die bietjie van die data 479 00:35:31,190 --> 00:35:38,400 was deur dit te gee hierdie gebied reg hier, hierdie openbare string, 480 00:35:38,400 --> 00:35:42,080 wat is die etiket vir die string ons eintlik ingesluit. 481 00:35:42,080 --> 00:35:48,450 >> As ek sê MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 dit is net daar, en dit is 'n soort van soos die parameter naam 483 00:35:52,200 --> 00:35:55,330 wanneer ons verby kode van die kontroles aan die sjabloon, 484 00:35:55,330 --> 00:35:57,680 wanneer ons wil titel pyl iets sê. 485 00:35:57,680 --> 00:36:01,140 Dit is dieselfde soort idee is daar. 486 00:36:01,140 --> 00:36:07,130 Nou, onthou dit. 487 00:36:07,130 --> 00:36:12,230 Ons het ook die motor geskep of motor gegenereerde kode 488 00:36:12,230 --> 00:36:16,410 vir gevolg aktiwiteit wat die teks oog in die middel 489 00:36:16,410 --> 00:36:19,690 wat sê hallo wêreld. 490 00:36:19,690 --> 00:36:27,510 Ons kan moontlik maak dat groter. 491 00:36:27,510 --> 00:36:33,980 Kom ons doen wat die eerste keer. 492 00:36:33,980 --> 00:36:39,550 Ons kan dit 40 digtheid onafhanklike pixels. 493 00:36:39,550 --> 00:36:42,670 Kom ons kyk, dit is super groot. Dit sal goed wees. 494 00:36:42,670 --> 00:36:48,180 En dan om hierdie individuele teks oog op die verwysing binne ons kode 495 00:36:48,180 --> 00:36:53,890 ons nodig het om te gee dit 'n ID, 496 00:36:53,890 --> 00:36:58,350 en om te doen wat ons sê @ + id, wat beteken dat ons gee dit ID. 497 00:36:58,350 --> 00:37:02,480 As ons net sê @ id dit sou aanvaar dat ons 'n ID wat reeds bestaan, is verwysings, 498 00:37:02,480 --> 00:37:07,760 en laat ons noem dit ons resultTextView. 499 00:37:07,760 --> 00:37:10,570 En sien dat in XML daar is geen rede vir kommapunte of enigiets. 500 00:37:10,570 --> 00:37:12,380 Alles is binne hierdie tags. 501 00:37:12,380 --> 00:37:15,530 Dit is baie soortgelyk aan HTML in 'n baie sintuie. 502 00:37:15,530 --> 00:37:22,760 >> Dit neem 'n bietjie gewoond raak aan, maar uiteindelik sal jy voel redelik gemaklik met dit. 503 00:37:22,760 --> 00:37:31,320 Kom ons werk om die teks vir ons gevolg teks oog, 504 00:37:31,320 --> 00:37:35,650 en as ons gedoen het toe ons om daardie wysig teks veld in ons ander aktiwiteite 505 00:37:35,650 --> 00:37:46,630 in MainActivity Hier sal ons ook so- 506 00:37:46,630 --> 00:37:54,890 ons kry die oog deur die ID. 507 00:37:54,890 --> 00:37:59,640 En R, in geval ek nie noem dit voor, is die verwysing na ons hulpbronne gids, 508 00:37:59,640 --> 00:38:05,350 en dan ID is 'n verwysing na alles in die hulpbronne gids, al die ID's, 509 00:38:05,350 --> 00:38:10,060 en resultTextView. 510 00:38:10,060 --> 00:38:13,010 En net soos voorheen, resultTextView is 'n voorwerp, 511 00:38:13,010 --> 00:38:15,780 wat beteken dit het al hierdie eienskappe wat verband hou met dit. 512 00:38:15,780 --> 00:38:20,610 Wanneer ons kryTeks vir die wysig teks vir hierdie teks veld of die teks oog 513 00:38:20,610 --> 00:38:23,980 Ons kan eintlik gebruik setText, 514 00:38:23,980 --> 00:38:26,960 en dan het ons reeds gevind dat die boodskap van die voorneme, 515 00:38:26,960 --> 00:38:35,760 sodat ek kan sê boodskap, en dit sal eintlik het die boodskap. 516 00:38:35,760 --> 00:38:41,820 >> Dit neem 'n oomblik om te begin, en dan sal ons kan sien of dit nie omval, 517 00:38:41,820 --> 00:38:48,670 maar enige vrae oor die proses net daar, dat die soort van interaksie? 518 00:38:48,670 --> 00:38:51,490 In baie opsigte is dit eenvoudig. 519 00:38:51,490 --> 00:38:53,960 Die rede waarom ek gaan deur iets relatief eenvoudige 520 00:38:53,960 --> 00:38:57,330 is, weer, omdat jy die interaksie tussen die uitleg te sien, 521 00:38:57,330 --> 00:38:59,520 die bron-kode, hoe jy dinge verwysing 522 00:38:59,520 --> 00:39:07,680 en miskien 'n bietjie blootstelling aan hoe Java daar werk. 523 00:39:07,680 --> 00:39:16,500 As ek eintlik iets tik in hier, soos ohai, en dan het ek op die knoppie klik, 524 00:39:16,500 --> 00:39:22,260 Dit begin met 'n nuwe aktiwiteit, en dat teks meen dat ohai. 525 00:39:22,260 --> 00:39:27,640 Dit is baie eenvoudig, maar hopelik na daardie voorbeeld 526 00:39:27,640 --> 00:39:32,310 jy soort van sien hoe hierdie interaksie werk, en nou dat die gemors van lêers 527 00:39:32,310 --> 00:39:36,870 aan die linkerkant van al hierdie projek dopgehou het, hopelik sal jy weet waar om te kyk nou. 528 00:39:36,870 --> 00:39:38,700 Dit is jou bron-kode area. 529 00:39:38,700 --> 00:39:41,760 >> Uitleg is werklik die enigste ding wat jy hanteer totdat jy sluit beelde 530 00:39:41,760 --> 00:39:46,370 en die drawables of wat ook al, en waardes, wat sal insluit snare, 531 00:39:46,370 --> 00:39:51,960 soos ons genoem het, en dan style is iets wat is soort van soos CSS. 532 00:39:51,960 --> 00:39:56,410 Spreek dit as jy wil, maar totdat jy gemaklik voel met die toevoeging van ekstra flair 533 00:39:56,410 --> 00:40:02,520 om jou aansoek daar is geen rede tot kommer oor dit te veel. 534 00:40:02,520 --> 00:40:07,410 Net om te draai om een ​​ander ding wat jy sal beslis wil in te sluit- 535 00:40:07,410 --> 00:40:13,010 die veronderstelling dat jy wil koel funksies te integreer en red jouself 'n paar ekstra kodering- 536 00:40:13,010 --> 00:40:16,460 sou wees 3rd party biblioteke te sluit. 537 00:40:16,460 --> 00:40:19,840 Hier is die klein Android man met die Sherlock Holmes hoed. 538 00:40:19,840 --> 00:40:23,040 Dit is 'n aksie bar Sherlock biblioteek, 539 00:40:23,040 --> 00:40:25,390 wat basies beteken dat die aksie bar jy vroeër gesien het, 540 00:40:25,390 --> 00:40:29,590 Dit is nou standaard in Ice Cream Sandwich en Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 As jy wil hê dat die soort van gebruikers ervaring te bring aan gebruikers op ouer weergawes 542 00:40:33,100 --> 00:40:39,290 en red jouself uit om bekommerd te wees oor hoe die gebruiker gaan om te navigeer 543 00:40:39,290 --> 00:40:42,490 op ouer weergawes wanneer daardie ding is nie daar kan jy sluit hierdie biblioteek 544 00:40:42,490 --> 00:40:46,770 en dan is jy hoef net te verwys-eerder as die standaard Android 545 00:40:46,770 --> 00:40:50,250 biblioteke vir die aksie bar, jou verwysing hierdie ondersteuning biblioteek. 546 00:40:50,250 --> 00:40:53,090 >> Dinge soos Scoreloop, dit is 'n groot as jy gaan 'n wedstryd te sluit. 547 00:40:53,090 --> 00:40:57,280 Dit kan jy voeg leier planke en prestasies te speel. 548 00:40:57,280 --> 00:41:00,900 AdMob is 'n manier om advertensies in jou programme 549 00:41:00,900 --> 00:41:02,900 in die geval wat jy wil 'n bietjie van die geld van dit af te maak. 550 00:41:02,900 --> 00:41:05,730 Natuurlik, daar is Facebook en Twitter vir die integrasie van daar 551 00:41:05,730 --> 00:41:08,170 As jy wil om dinge te maklik deel, ensovoorts. 552 00:41:08,170 --> 00:41:15,120 Dropbox, net so, en Google Analytics is dat grafiek op soek na een daar. 553 00:41:15,120 --> 00:41:19,070 Dit sal baie belangrik wees as jy eintlik wil sien wat interaksie 554 00:41:19,070 --> 00:41:25,800 met inligting of wat dit is, hoe hulle omgaan, ensovoorts. 555 00:41:25,800 --> 00:41:30,650 Google, by verstek, sê jy 'n baie van die statistieke oor wie geïnstalleer het jou artikels 556 00:41:30,650 --> 00:41:35,020 en wat selfone wat hulle het, wat bedryfstelsel weergawes wat hulle het. 557 00:41:35,020 --> 00:41:38,080 Maar as jy wil om te sien wie dit is met behulp van op 'n daaglikse basis en hoe hulle dit gebruik 558 00:41:38,080 --> 00:41:42,860 dan sal jy wil 'n soort van dop-stelsel soos dit in te sluit. 559 00:41:42,860 --> 00:41:44,990 >> Wanneer jy gereed is om jou artikels te versprei 560 00:41:44,990 --> 00:41:46,930 Ek het nie nodig om te gaan in wat in te veel diepte. 561 00:41:46,930 --> 00:41:49,090 Klik op die skakel hier, Google speel. 562 00:41:49,090 --> 00:41:51,080 Dit word gebruik om die Android-mark te wees. 563 00:41:51,080 --> 00:41:53,470 Hulle nuwe naam alles met Google Play, 564 00:41:53,470 --> 00:41:55,230 so nou is jy aan dit. 565 00:41:55,230 --> 00:41:57,140 Dit is baie eenvoudig. 566 00:41:57,140 --> 00:42:01,070 Jy het 'n beskrywing, 'n paar voorbeelde te sluit. 567 00:42:01,070 --> 00:42:05,660 Soos ek gesê het, is daar geen goedkeuring-proses soos iOS. 568 00:42:05,660 --> 00:42:07,270 En waar om te gaan van hier af? 569 00:42:07,270 --> 00:42:09,450 Ek het jou 'n baie eenvoudige voorbeeld. 570 00:42:09,450 --> 00:42:13,270 Hopelik sal dit lyk verskriklik eenvoudige 571 00:42:13,270 --> 00:42:15,740 dan is dit waarskynlik 'n goeie teken. 572 00:42:15,740 --> 00:42:20,080 As jy op al voel 'n bietjie verward of onseker is oor presies wat ek tik 573 00:42:20,080 --> 00:42:26,160 dit is ook goed, maar van hier af weg te Google Guides. 574 00:42:26,160 --> 00:42:28,330 Dit is 'n groot plek om te begin. 575 00:42:28,330 --> 00:42:31,460 Dit sal praat jy deur middel van wat hulle verwag in terme van die aansoek ontwerp, 576 00:42:31,460 --> 00:42:33,380 hoe die gebruikers gewoonlik interaksie met dit. 577 00:42:33,380 --> 00:42:36,450 Dit is baie meer vrye vorm as IOS, sou ek sê, 578 00:42:36,450 --> 00:42:41,330 wat dit lyk soos tafel sienings word-Ek weet nie, dit is hul brood en botter. 579 00:42:41,330 --> 00:42:44,690 Alles is 'n Table View gly op en af. 580 00:42:44,690 --> 00:42:48,160 Met Android hulle beslis mense aanmoedig om te kyk na dit uit 581 00:42:48,160 --> 00:42:51,720 'n hele klomp van verskillende perspektiewe. 582 00:42:51,720 --> 00:42:56,000 >> Wanneer jy sluit die ontwikkelingspan kit in hierdie ADT 583 00:42:56,000 --> 00:43:03,010 by verstek jy 'n hele klomp van die voorbeeld projekte in Android. 584 00:43:03,010 --> 00:43:05,470 Reg hier, Android, Android Sample projek. 585 00:43:05,470 --> 00:43:11,870 As ek op, dan kan ek kies om 'n weergawe vir watter van die voorbeeld projekte toe te pas. 586 00:43:11,870 --> 00:43:13,300 Daar is 'n hele klomp van verskillende dinge hier. 587 00:43:13,300 --> 00:43:16,690 Dit begin met aksie bar verenigbaarheid, 588 00:43:16,690 --> 00:43:24,610 versnelling speel, Friends en herstel, Bluetooth, gebaar bouer. 589 00:43:24,610 --> 00:43:28,930 JetBoy is 'n monster wedstryd wat hulle vir julle gee, is as LunarLander. 590 00:43:28,930 --> 00:43:31,250 Daar is 'n hele klomp van die voorbeeld programme hier, 591 00:43:31,250 --> 00:43:35,290 en hulle is almal gerig op verskillende aspekte van Android se API, 592 00:43:35,290 --> 00:43:41,520 en die idee is dat as jy jou aansoek 593 00:43:41,520 --> 00:43:44,110 jy hoef nie alles oor Android om te leer 'n Android-app te maak. 594 00:43:44,110 --> 00:43:47,300 Jy hoef net te leer oor die dele wat jy eintlik gaan om te gebruik. 595 00:43:47,300 --> 00:43:49,340 Kyk na hierdie monster biblioteke. 596 00:43:49,340 --> 00:43:51,510 Voel vry om te kopieer en plak die kode en dit heraansoek doen. 597 00:43:51,510 --> 00:43:53,850 Dit is 'n groot ding om te kyk na hoe moeiliker kode 598 00:43:53,850 --> 00:43:57,060 en probeer om dit te verstaan, wat natuurlik waarom in CS50 599 00:43:57,060 --> 00:44:01,510 ons dikwels gee jy groot bedrae van die bron-kode. 600 00:44:01,510 --> 00:44:04,620 Kyk na sommige van hierdie as jy gaan soortgelyke biblioteke te gebruik 601 00:44:04,620 --> 00:44:08,630 en dan pas dit op jou eie kode. 602 00:44:08,630 --> 00:44:10,430 En natuurlik, is daar handleidings. 603 00:44:10,430 --> 00:44:12,690 Soek vir tutoriale. 604 00:44:12,690 --> 00:44:17,020 Ek het 'n baie goeie mense online wat jy kan bring om te versnel 605 00:44:17,020 --> 00:44:20,080 met wat fragmente werklik is en hoe jy dit kan gebruik. 606 00:44:20,080 --> 00:44:22,240 >> Sommige van hierdie nuwe ontwerp dinge, soos fragmente, 607 00:44:22,240 --> 00:44:26,840 jy regtig hoef nie te bekommerd wees oor nie, tensy jy 'n 608 00:44:26,840 --> 00:44:30,560 redelik groot in omvang projek. 609 00:44:30,560 --> 00:44:32,510 Hulle is dinge wat Google is probeer om te faseer in 610 00:44:32,510 --> 00:44:35,570 StackOverflow is natuurlik jou vriend. 611 00:44:35,570 --> 00:44:37,930 Hopelik sal ek verkoop jy 'n bietjie op Android, 612 00:44:37,930 --> 00:44:41,640 besef dit is baie meer maklik om te benader in terme van net die codeertaal. 613 00:44:41,640 --> 00:44:45,970 Java is wil ek sê baie makliker om te verstaan ​​as Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android groei Ek dink baie meer as IOS. 615 00:44:50,780 --> 00:44:54,890 Ek bedoel, die data is ook daar, afgesien van wat ek dink. 616 00:44:54,890 --> 00:44:56,920 Dit gaan om te wees vir 'n rukkie, 617 00:44:56,920 --> 00:45:00,880 en hulle is 'n paar jaar agter in terme van hul ontwerp siklusse, 618 00:45:00,880 --> 00:45:04,690 so dit is soort van te verstane dat hulle nog steeds besig om deur 'n paar van hierdie 619 00:45:04,690 --> 00:45:09,080 konsekwentheid vrae, soos hierdie aksie bar is 'n nuwe ding vir hulle nog steeds, 620 00:45:09,080 --> 00:45:16,010 soort van die skep van 'n soortgelyke gebruikers ervaring oor al hul programme. 621 00:45:16,010 --> 00:45:20,650 Hopelik sal jy kan nou vorentoe gaan oopmaak Eclipse 622 00:45:20,650 --> 00:45:22,870 en maak jou eie Android-programme. 623 00:45:22,870 --> 00:45:30,240 >> Is daar iemand enige vrae voor ons draai oor enigiets? 624 00:45:30,240 --> 00:45:34,410 Ek kan jou vertel die antwoord is 42. 625 00:45:34,410 --> 00:45:41,990 Wel, gelukkig kodering almal, en baie geluk. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]