1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Szeminárium] [Android Apps (Most Jelly Beans!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jozwiak] [Harvard Egyetem] 3 00:00:04,210 --> 00:00:06,780 [Ez a CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Hello mindenkinek, és üdvözöljük a Android Apps (Most Jelly Beans!) Szeminárium. 5 00:00:11,600 --> 00:00:14,530 Úgy hívják Most Jelly Beans, persze, mert 6 00:00:14,530 --> 00:00:17,310 legújabb változata az operációs rendszer neve Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Amikor beszéltem Android tavaly, és tette ezt lényegében ugyanaz szeminárium 8 00:00:22,950 --> 00:00:29,150 Én bemutató tervezési minták és stilisztikai választás Mézeskalács, 9 00:00:29,150 --> 00:00:31,250 bár Ice Cream Sandwich jött ki abban az időben, 10 00:00:31,250 --> 00:00:33,680 és ez az, amit fogunk beszélni, megy előre egy kicsit. 11 00:00:33,680 --> 00:00:35,720 Android, természetesen van néhány kérdés a töredezettség, 12 00:00:35,720 --> 00:00:40,240 így a legújabb Google operációs rendszer általában 13 00:00:40,240 --> 00:00:44,710 nem igazán fog válni gyakori a felhasználók körében a potenciálisan akár egy évig, sajnos. 14 00:00:44,710 --> 00:00:49,960 >> De figyelmen kívül hagyva, hogy fogunk beszélni, sok oka 15 00:00:49,960 --> 00:00:53,000 Android sokkal jobb, mint iOS. 16 00:00:53,000 --> 00:00:56,410 Oké, majd beszélünk Android vs iOS, 17 00:00:56,410 --> 00:00:59,770 egyes tervezési paradigmák, hogy kapsz létre csak egy csúszda, 18 00:00:59,770 --> 00:01:03,410 és a nagy különbség az elmúlt évben, hogy én csak azt szeretném, 19 00:01:03,410 --> 00:01:06,860 zoom valamilyen fogalmi dolgot dolgozik 20 00:01:06,860 --> 00:01:09,950 az operációs rendszert, majd bemegy egy nagyon egyszerű példa. 21 00:01:09,950 --> 00:01:13,730 Tény, hogy csak a példa, hogy a Google leírja az épület az első alkalmazás, 22 00:01:13,730 --> 00:01:17,070 és mi végig együtt, és csak le. 23 00:01:17,070 --> 00:01:22,100 >> Tudom, hogy sokan csak a kódolt C, így a Java már lesz 24 00:01:22,100 --> 00:01:27,220 egy másik szempontból, és ez így lesz a lábát a nedves 25 00:01:27,220 --> 00:01:31,540 és úgy érzi, egy kicsit kényelmesebb vele remélhetőleg. 26 00:01:31,540 --> 00:01:35,330 Egy gyors összefoglaló, Android vs iOS. 27 00:01:35,330 --> 00:01:39,200 Android van ez egyszeri fejlesztői díj $ 25 28 00:01:39,200 --> 00:01:42,390 mindez 100 $ évente dolog. 29 00:01:42,390 --> 00:01:45,440 Nincs korlátozás, ami azt jelenti, hogy ha akarom, hogy nyújtson be egy app, 30 00:01:45,440 --> 00:01:51,560 Én csak be, és nincs jóváhagyási folyamat, mint van az iOS. 31 00:01:51,560 --> 00:01:53,890 Kapsz kialakulhat Java segítségével Eclipse, 32 00:01:53,890 --> 00:01:57,090 amely platformfüggetlen, így nem számít, ha van egy Mac, 33 00:01:57,090 --> 00:01:59,600 Windows vagy egy Linux gép. 34 00:01:59,600 --> 00:02:03,730 Természetesen, az iOS meg kell használni XCode egy Mac, 35 00:02:03,730 --> 00:02:06,930 és az Android használják sokkal több ember, 36 00:02:06,930 --> 00:02:11,580 Tehát, ha azt szeretné, hogy app, hogy valamilyen látási vagy esetleg 37 00:02:11,580 --> 00:02:14,110 hogy egy kis pénzt a reklámok 38 00:02:14,110 --> 00:02:17,450 akkor valószínűleg nagyobb valószínűséggel részesülnek Android. 39 00:02:17,450 --> 00:02:20,630 >> És egy dolog, ami mindig is ismert Android 40 00:02:20,630 --> 00:02:25,100 az extrém mennyiségű testreszabás, míg iOS nagyon rögzített útjaik 41 00:02:25,100 --> 00:02:29,380 úgy, hogy fenn tudja tartani a biztonság és ellenőrzés minden apró eleme 42 00:02:29,380 --> 00:02:34,180 A tervezés saját operációs rendszer és az egyes alkalmazások. 43 00:02:34,180 --> 00:02:40,180 Android nagyon szabad formában, és van sok több lehetőséget. 44 00:02:40,180 --> 00:02:42,530 Oké, néhány tervezési paradigmák. 45 00:02:42,530 --> 00:02:49,600 Figyeljük meg itt, mint iOS van tabletták és iPhone és iPod érint 46 00:02:49,600 --> 00:02:53,840 meg kell támogatni, mondjuk, mint egy tucat eszközt, ha azt szeretné, hogy támogassák 47 00:02:53,840 --> 00:02:55,450 történelmi dolgokat is. 48 00:02:55,450 --> 00:02:58,410 Az Android meg kell támogatni száz eszközök 49 00:02:58,410 --> 00:03:01,240 így van néhány dolog, hogy a Google már próbálta végrehajtani 50 00:03:01,240 --> 00:03:04,970 hogy a felhasználói élmény egy kicsit következetesebb, 51 00:03:04,970 --> 00:03:08,560 de akkor is beszélni, hogy ez azt jelenti, hogy vannak olyan kérdések töredezettség 52 00:03:08,560 --> 00:03:11,700 hogy folyamatosan kell tisztában támogató. 53 00:03:11,700 --> 00:03:16,140 Széttagoltság azt jelenti, hogy számos különböző operációs rendszerek, 54 00:03:16,140 --> 00:03:20,330 különböző telefonok különböző hardver futó Android minden ugyanabban az időben, 55 00:03:20,330 --> 00:03:29,680 így ez a grafikon itt megy vissza kb 6 hónap. 56 00:03:29,680 --> 00:03:36,460 Ja, 6 hónap, és láthatjuk, hogy a legsötétebb sáv 57 00:03:36,460 --> 00:03:39,330 az alját Jelly Bean, ami kijött a nyár, 58 00:03:39,330 --> 00:03:42,970 és láthatjuk most valószínűleg mintegy 2%-a telefonok is. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich jött ki több mint egy évvel ezelőtt, 60 00:03:45,520 --> 00:03:47,770 és negyede a telefonok is. 61 00:03:47,770 --> 00:03:53,910 Még mindig sok a telefonok, amelyek a OS verziót évvel ezelőtt. 62 00:03:53,910 --> 00:03:57,820 Egy dolog, hogy a Google igyekezett tenni, hogy a felhasználói élmény 63 00:03:57,820 --> 00:04:01,400 sokkal konzisztens apps indul a Honeycomb, 64 00:04:01,400 --> 00:04:04,320 amely a tabletta változata, majd Ice Cream Sandwich és a Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 ők nagyon igyekszem hangsúlyozni ezzel a cselekvés bar, 66 00:04:06,750 --> 00:04:10,430 amely a mi látható a tetején itt, 67 00:04:10,430 --> 00:04:14,730 Minden itt, köztük ez a kis beállítások gombra. 68 00:04:14,730 --> 00:04:16,079 Ez a tervezési választás. 69 00:04:16,079 --> 00:04:18,000 Most, amikor megjelenik a 3 pont azt jelenti, kattintson erre, 70 00:04:18,000 --> 00:04:21,880 és lesz egy legördülő menüből, amely valamilyen beállítást. 71 00:04:21,880 --> 00:04:28,900 Ez csak azt mutatja, mert rákattintottam ezt a gombot. 72 00:04:28,900 --> 00:04:32,040 Ez az, amit meg akarnak használni, hogy alkalmazásokat egy kicsit következetesebb 73 00:04:32,040 --> 00:04:39,210 az egész fórumon, így a felhasználó egy jobb értelemben egységes tapasztalat. 74 00:04:39,210 --> 00:04:42,640 >> Oké, ha még nem tette meg, vagy már ha nézed otthon 75 00:04:42,640 --> 00:04:50,210 akkor kövesse az alábbi lépéseket, hogy hozzanak létre a kódolási környezetet. 76 00:04:50,210 --> 00:04:52,630 Ez magában foglalja majd a honlapon itt. 77 00:04:52,630 --> 00:04:56,260 Akkor a Google Android SDK telepítése 78 00:04:56,260 --> 00:04:59,130 és a következő néhány leírásokat is. 79 00:04:59,130 --> 00:05:01,310 Ők azt mondják, mindent. 80 00:05:01,310 --> 00:05:05,160 Ezek telepítése az SDK, letölthető Eclipse Classic változat, 81 00:05:05,160 --> 00:05:07,450 még akkor is, persze, mi kódolás a Java. 82 00:05:07,450 --> 00:05:12,190 Azt javasoljuk, ez, és akkor ez a ADT az Android Development Tools, 83 00:05:12,190 --> 00:05:17,300 egy plugin, hogy telepítse a Eclipse, amely lehetővé teszi, hogy 84 00:05:17,300 --> 00:05:20,550 sokkal korszerűbb tapasztalat Android belül Eclipse. 85 00:05:20,550 --> 00:05:24,070 Ez ad egy kis grafikus felhasználói felületek 86 00:05:24,070 --> 00:05:29,610 tervezése a véleményét, és kapsz sokkal több támogatást 87 00:05:29,610 --> 00:05:34,840 és a képesség, hogy indítson az emulátor, és minden ilyesmi. 88 00:05:34,840 --> 00:05:36,090 Alkalmazás keretet. 89 00:05:36,090 --> 00:05:41,590 >> Szeretnék beszélni arról, hogy a projekt keretében Android épülnek, 90 00:05:41,590 --> 00:05:44,830 aztán megyünk egy gyors példa, és remélhetőleg 91 00:05:44,830 --> 00:05:48,820 lehet kérdéseket bármely pontján, és jól érzik magukat a végét. 92 00:05:48,820 --> 00:05:50,090 Van néhány zsargon először. 93 00:05:50,090 --> 00:05:55,330 Egy tevékenység olyan, mint a képernyőn lát, amikor elindítja egy kb. 94 00:05:55,330 --> 00:05:57,840 Az egész élmény maga a tevékenység, 95 00:05:57,840 --> 00:06:00,790 így lehet gondolni rá, mint egy képernyő vagy a nézet, 96 00:06:00,790 --> 00:06:04,540 de valójában a forráskód oldalát. 97 00:06:04,540 --> 00:06:12,680 Még mindig hívja a tényleges felület része a kilátás. 98 00:06:12,680 --> 00:06:17,230 Ez a fajta, mint például, hogy a Pset 7 volt a vezérlő, majd a kilátást. 99 00:06:17,230 --> 00:06:20,690 A tevékenység több vagy kevesebb a vezérlő, 100 00:06:20,690 --> 00:06:23,360 és a kilátás az, amit csinálunk szempontjából az XML 101 00:06:23,360 --> 00:06:25,260 társított e tevékenység. 102 00:06:25,260 --> 00:06:29,340 Töredékek valami, ami végre Ice Cream Sandwich jövőre. 103 00:06:29,340 --> 00:06:36,380 Ez csak egy ötlet, hogy része azon a véleményen van, vagy a tevékenység 104 00:06:36,380 --> 00:06:39,990 és elosztjuk őket külön területre, hogy mi is 105 00:06:39,990 --> 00:06:45,030 tegyük kód is használható az ilyen sok különböző eszközöket 106 00:06:45,030 --> 00:06:51,890 hogy meg kell támogatni, és ez csak egy módja, hogy megpróbáljuk 107 00:06:51,890 --> 00:06:54,290 is tényező többet kódot. 108 00:06:54,290 --> 00:07:01,090 A szolgáltatások háttér dolgok, mint a zenelejátszás és navigációs irányok lehetséges. 109 00:07:01,090 --> 00:07:05,640 A tartalomszolgáltatók, ezek API-k az operációs rendszer 110 00:07:05,640 --> 00:07:09,070 hogy lehetővé teszi a hozzáférést megosztott adatok, például elérhetőségi adatait, 111 00:07:09,070 --> 00:07:12,790 , majd egy szándék van valami, amit majd használni akarjuk indítani 112 00:07:12,790 --> 00:07:17,210 egy új tevékenység a jelenlegi tevékenységet. 113 00:07:17,210 --> 00:07:20,980 >> Helló Android, ez lesz a projekt, hogy beszéljük meg. 114 00:07:20,980 --> 00:07:25,410 Én valójában nem ez az Ön számára, és aztán csinál egy dolgot, amikor kattintson a gombra 115 00:07:25,410 --> 00:07:27,650 néhány szöveg és elindít egy új tevékenységet. 116 00:07:27,650 --> 00:07:30,110 Nagyon egyszerű, de azt akarom, hogy menjen át 117 00:07:30,110 --> 00:07:34,480 mi megy egy ilyen projekt. 118 00:07:34,480 --> 00:07:39,260 Amikor, hogy az új projekt látni fogod a Eclipse 119 00:07:39,260 --> 00:07:41,900 itt van ez a projekt az úgynevezett Helló Android. 120 00:07:41,900 --> 00:07:43,470 Aztán ott van egy csomó mappa itt. 121 00:07:43,470 --> 00:07:46,760 Azok, akiket igazán érintett a forrás mappa, 122 00:07:46,760 --> 00:07:54,540 az erőforrás mappa a res, és bizonyos mértékig a libs mappa a könyvtáraknak. 123 00:07:54,540 --> 00:08:00,070 És csak hogy az ugyanazon az oldalon, hogy a 124 00:08:00,070 --> 00:08:03,240 Ha úgy döntesz, hogy hozzon létre egy új projektet, 125 00:08:03,240 --> 00:08:08,270 akkor ezt itt, így ha azt akarom nevezni HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 és akkor automatikusan csinál egy csomó információt számunkra. 127 00:08:11,100 --> 00:08:14,110 A csomag neve állítólag egy egyedi azonosítót 128 00:08:14,110 --> 00:08:16,710 amely általában kapcsolódó honlap, ha van neki. 129 00:08:16,710 --> 00:08:24,430 >> Például, hívja ezt net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 És már készül a projekt egyszerre. 131 00:08:30,070 --> 00:08:40,059 Oké, sajnálom. Nevezzük HelloCS50. 132 00:08:40,059 --> 00:08:42,929 És akkor meg fogja kérdezni a dolgokat, mint hogy milyen ikon akarunk tenni. 133 00:08:42,929 --> 00:08:48,840 Ez mind azért, mert az Android Developer Tools felület, 134 00:08:48,840 --> 00:08:53,350 a plugin, amit hozzáadott Eclipse, így lehet választani a dolgokat, mint 135 00:08:53,350 --> 00:08:58,320 amit ikon akarunk, és hogy menne abba a mélység, ha akarunk. 136 00:08:58,320 --> 00:09:04,360 De a végén, csak, hogy a projekt 137 00:09:04,360 --> 00:09:07,040 és minden felbukkan itt. 138 00:09:07,040 --> 00:09:10,030 Ahogy azt mutatta, a másik képernyőn 139 00:09:10,030 --> 00:09:14,070 megvan a forrás mappát, és fogok beszélni arról, hogy mit jelent mindez hamarosan, 140 00:09:14,070 --> 00:09:19,090 de látni, hogy azonnal tart minket a HelloCS50 képernyőre. 141 00:09:19,090 --> 00:09:24,690 Vannak gombok itt a hozzá szöveget és a szöveg mezőbe elrendezés. 142 00:09:24,690 --> 00:09:28,910 Ez a fajta, mint XCode de sajnos nem annyira áramvonalas. 143 00:09:28,910 --> 00:09:37,790 De a klip lesz a barátod, és ADT különösen ezt. 144 00:09:37,790 --> 00:09:40,920 >> Oké, a forrás mappát, ahol 145 00:09:40,920 --> 00:09:43,820 A Java fájlokat tárolja, és ez valójában a dob a program. 146 00:09:43,820 --> 00:09:45,990 Ez alapvetően, mint a vezérlők. 147 00:09:45,990 --> 00:09:49,020 Az erőforrás mappa vagy a res, ahol mi folyamatosan képernyő elrendezések, 148 00:09:49,020 --> 00:09:54,110 képek, hangok, szöveg, animáció és minden mást, könyvtárak, nyilván, könyvtárak. 149 00:09:54,110 --> 00:10:01,700 És a nyilvánvaló, ez az út, hogy az Android rendszer tudja 150 00:10:01,700 --> 00:10:03,130 hogyan hatnak a kb. 151 00:10:03,130 --> 00:10:07,980 Azt mondja, hogy az engedélyek, és milyen tevékenységeket ténylegesen futni. 152 00:10:07,980 --> 00:10:12,350 Ez az összes lényeges információt, ami szükséges futtatni a kb. 153 00:10:12,350 --> 00:10:17,990 A forrás mappa, ha bővíteni, mint látható itt. 154 00:10:17,990 --> 00:10:23,920 És egy példa arra, hogy a kód nézne-ez az alapértelmezett kód. 155 00:10:23,920 --> 00:10:27,930 Ahogy nevezte, MainActivity. 156 00:10:27,930 --> 00:10:33,230 Alapértelmezésben kapunk OnCreate, ami egy olyan funkció, hogy hívják, amikor ezt a tevékenységet terhelés, 157 00:10:33,230 --> 00:10:37,150 így a hívni kívánt OnCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Ez visszaállítja minden bit információt 159 00:10:40,440 --> 00:10:44,910 abban az esetben az alkalmazás megszakadt. 160 00:10:44,910 --> 00:10:48,790 >> Van egy egész tevékenység életciklusának táblázat, amely akkor nézd meg 161 00:10:48,790 --> 00:10:50,380 ha egy kicsit mélyebb benne, 162 00:10:50,380 --> 00:10:56,210 de a legfontosabb kódsor van ez setContentView funkció 163 00:10:56,210 --> 00:11:00,290 amely betölti a forrás fájlt az elrendezés. 164 00:11:00,290 --> 00:11:03,590 Akkor mi OnCreate itt alapvetően csinál ez mond 165 00:11:03,590 --> 00:11:07,010 amikor létre ezt a tevékenységet szeretném betölteni ezt az elrendezést. 166 00:11:07,010 --> 00:11:12,030 És fogunk beszélni, hogy mi az elrendezés a második. 167 00:11:12,030 --> 00:11:16,230 Ha kellett indítani, hogy itt úgy néz ki, pontosan olyan, mint ez, 168 00:11:16,230 --> 00:11:22,880 és alapértelmezés szerint azért van, mert Eclipse ezt és ADT csinálja nekünk 169 00:11:22,880 --> 00:11:28,210 ez minden boilerplate kód, amely a teremtett számunkra, 170 00:11:28,210 --> 00:11:34,630 és mi lehet lépni, és változtatni a dolgokat, ahogy mi szeretjük. 171 00:11:34,630 --> 00:11:38,190 Az erőforrás mappa, mint mondtam, ez az, ahol tartunk minden elrendezés, 172 00:11:38,190 --> 00:11:41,150 drawables tekintve bármilyen kép- 173 00:11:41,150 --> 00:11:46,360 ők hívják drawables-, majd hangfájlok, menüket. 174 00:11:46,360 --> 00:11:51,170 Ez egy módja annak, egy csomó XML egy szép rendezett módon. 175 00:11:51,170 --> 00:11:58,030 Mint látható, vannak. Hdpi, ldpi, mdpi és xhdpi mappákat az drawables. 176 00:11:58,030 --> 00:12:02,220 Ezek a különböző képernyő sűrűségű, így a nagy sűrűségű pixel per inch, 177 00:12:02,220 --> 00:12:05,710 alacsony sűrűségű, közepes sűrűségű, extra nagy sűrűségű. 178 00:12:05,710 --> 00:12:08,900 >> Ez megint, így tudjuk támogatni ezeket a különböző eszközöket, 179 00:12:08,900 --> 00:12:15,100 és ideális esetben, akkor a különböző képek minden különböző felbontású. 180 00:12:15,100 --> 00:12:20,740 Elrendezések, ahol is a különböző elrendezést, hogy lehet használni a különböző tevékenységek. 181 00:12:20,740 --> 00:12:24,150 Ők is elrendezések töredékek, 182 00:12:24,150 --> 00:12:26,670 ami azt jelenti, részleges tevékenységeket alapvetően. 183 00:12:26,670 --> 00:12:29,610 Ha akarsz valamit, jó, mint amikor forgatni a telefont 184 00:12:29,610 --> 00:12:33,900 azt szeretné, hogy egy másik elrendezés, amit tehetünk, layout-táj, mint egy másik mappába, 185 00:12:33,900 --> 00:12:39,000 és az Android automatikusan egy egész csomó ilyen szabályok a forrás mappát, 186 00:12:39,000 --> 00:12:44,690 így tudni fogja, hogy nézd meg a különböző mappákban alapján a jelenlegi felállás a telefon, 187 00:12:44,690 --> 00:12:46,740 milyen hardvert használ. 188 00:12:46,740 --> 00:12:52,350 Hasonlóképpen, ez az érték-V11 itt és értékek-V14 189 00:12:52,350 --> 00:12:55,460 és az alapértelmezett értékek mappához ez for- 190 00:12:55,460 --> 00:13:01,730 jól, értékek is, ez lesz az alapértelmezett értékek minden változata az operációs rendszer. 191 00:13:01,730 --> 00:13:06,390 Másrészt, V11 és V14 felelnek Méhsejt 192 00:13:06,390 --> 00:13:08,780 és Ice Cream Sandwich, ill. 193 00:13:08,780 --> 00:13:12,800 Megint ezek olyan módon, hogy ezek a mappák, a különböző húrok 194 00:13:12,800 --> 00:13:17,550 és stílusok, így testre a megjelenését a app 195 00:13:17,550 --> 00:13:22,660 vagy esetleg még a funkcionalitás, bár ez valószínűleg egy rossz ötlet, 196 00:13:22,660 --> 00:13:25,890 alapuló változata az operációs rendszer. 197 00:13:25,890 --> 00:13:28,760 >> És beszéltem erről az egészről itt. 198 00:13:28,760 --> 00:13:35,870 Ismét rajzolható, nyers, elrendezés, értékek. 199 00:13:35,870 --> 00:13:41,380 Az alapértelmezett, ha bemegy Helló Android vagy Helló CS50 most 200 00:13:41,380 --> 00:13:43,310 úgy fog kinézni, mint ez. 201 00:13:43,310 --> 00:13:45,800 Azt fogja mondani, hello world. 202 00:13:45,800 --> 00:13:58,430 Mint látható, itt az Android szöveg 203 00:13:58,430 --> 00:14:04,420 A szöveg A szöveg nézet, ami alapvetően csak egy címke, 204 00:14:04,420 --> 00:14:06,900 az, amit mi hívjuk iOS. 205 00:14:06,900 --> 00:14:11,580 Ez a vicces jelölés @ string / hello_world. 206 00:14:11,580 --> 00:14:16,200 Ez azért van így tudjuk, igyekszünk kivonat minden a húrok, 207 00:14:16,200 --> 00:14:19,740 az összes kódolt string Android egy külön mappába, 208 00:14:19,740 --> 00:14:23,610 amely történetesen a values.strings. 209 00:14:23,610 --> 00:14:29,300 Ha megnézzük itt, azt látjuk, hogy van egy kódolt szöveg ide menti 210 00:14:29,300 --> 00:14:33,910 A hello world, és úgy hívják hello world, és ez egyfajta 211 00:14:33,910 --> 00:14:39,230 közös tervezési döntés között számos platformon kívánt, 212 00:14:39,230 --> 00:14:41,780 húrok az a fajta dolog, amit szeretnék, hogy esetleg képes megváltoztatni. 213 00:14:41,780 --> 00:14:48,050 Nem akarjuk, hogy ellenőrizzék F a forráskód fájl az XML. 214 00:14:48,050 --> 00:14:50,760 Azt akarjuk, hogy képes megváltoztatni ezt, amikor megkapjuk az esélyt. 215 00:14:50,760 --> 00:14:53,640 >> Ez az XML fájl, strings.xml, egy módja annak, kitermelése 216 00:14:53,640 --> 00:14:56,710 kódolt karakterláncok, amelyek egyébként a mi elrendezés erőforrások 217 00:14:56,710 --> 00:15:03,530 vagy a forráskód. 218 00:15:03,530 --> 00:15:08,190 A Manifest Itt tartjuk az alapvető információk az alkalmazásról. 219 00:15:08,190 --> 00:15:11,050 Ez magában foglalja a csomag nevét. Ez kell, hogy legyen egy egyedi azonosítót. 220 00:15:11,050 --> 00:15:16,020 Ellentétben az App Store iOS nevét a pályázatok 221 00:15:16,020 --> 00:15:19,980 Nem kell, hogy egyedi, és akkor valóban változtatni a nevét, az alkalmazás 222 00:15:19,980 --> 00:15:23,570 után be, tehát ha elindul Angry Birds, 223 00:15:23,570 --> 00:15:26,840 aztán, hogy egy frissítést, és nem akarom, hogy kiadja az új verzió 224 00:15:26,840 --> 00:15:34,230 Azt hiszem, én is nevezni Angry Birds 2, amíg én vagyok az ugyanazon kiadási ciklushoz. 225 00:15:34,230 --> 00:15:36,780 Ez csak azt mutatják ki, mint egy frissítést. 226 00:15:36,780 --> 00:15:39,790 Az egyetlen dolog, egyedinek kell lennie ez csomag neve, 227 00:15:39,790 --> 00:15:41,280 ami nem sok ember fogja látni. 228 00:15:41,280 --> 00:15:44,680 Nos, azt csak látni, ha keresték meg a forráskódot, vagy ha van valami hiba. 229 00:15:44,680 --> 00:15:47,580 Az elemek közé tartozik tevékenységek, így meg kell, hogy állapítsa meg 230 00:15:47,580 --> 00:15:49,070 bármilyen tevékenység használunk. 231 00:15:49,070 --> 00:15:53,430 Ez az engedély az ilyesmi. 232 00:15:53,460 --> 00:15:58,150 >> Mivel az Android nem rendelkezik ezzel a szigorú pályázati folyamat 233 00:15:58,150 --> 00:16:02,210 benyújtásának apps hanem ők csak mindent alapján le engedélyek 234 00:16:02,210 --> 00:16:04,300 és kijelentette dolgok a Manifest. 235 00:16:04,300 --> 00:16:06,380 Az SDK verzió is fontos. 236 00:16:06,380 --> 00:16:10,330 Tudjuk meg használatra SDK minimálisan verzió valamit. 237 00:16:10,330 --> 00:16:16,010 Nyilvánvaló, hogy szeretne létrehozni kód 238 00:16:16,010 --> 00:16:18,570 és design az újabb operációs rendszerek. 239 00:16:18,570 --> 00:16:20,840 Talán nem a legújabb, talán nem Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Talán szeretne tervezni elsősorban Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 bár nagyjából megegyeznek egymással a tervezési döntések 242 00:16:27,120 --> 00:16:30,550 és a tényleges könyvtárak és API-k. 243 00:16:30,550 --> 00:16:36,250 De ahelyett, hogy az emberek 244 00:16:36,250 --> 00:16:40,050 Az eredeti Android verzió, mint a fánk vissza, amikor- 245 00:16:40,050 --> 00:16:43,420 aki még mindig megtörténhet, hogy használ, hogy megpróbálja letölteni az alkalmazást, majd mondja 246 00:16:43,420 --> 00:16:46,160 ez nem működik a telefonon, akkor a minimális verzió 247 00:16:46,160 --> 00:16:48,620 , és azt, hogy Gingerbread vagy Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 vagy bármi jól érzi magát benyújtása. 249 00:16:53,300 --> 00:16:57,170 És ez egy példa az nyilvánvaló. Azt is nézd meg a tényleges egy kicsit. 250 00:16:57,170 --> 00:17:00,900 >> Oké, csak megy előre a demo most. 251 00:17:00,900 --> 00:17:08,900 Ez az a demo, ha a Google Android építeni az első alkalmazás, vagy valami ilyesmi. 252 00:17:08,900 --> 00:17:12,089 Megyünk át mindent, ami folyik ott, 253 00:17:12,089 --> 00:17:17,690 és sajnálom, csak a referencia, aki itt tudja a Java bármilyen mértékben? 254 00:17:17,690 --> 00:17:28,310 Oké, így a Java új kódolási nyelv a legtöbb ember jön ki a CS50. 255 00:17:28,310 --> 00:17:31,850 Röviden, hogy menjen újra, mit mond itt, 256 00:17:31,850 --> 00:17:35,580 amit akarok, és nem módosíthatja a hello world alkalmazás 257 00:17:35,580 --> 00:17:38,620 hogy csinál ez elindítja, és azt mondja, hello world 258 00:17:38,620 --> 00:17:43,580 és azt mondja, helló CS50 a tetején, mert ez a tevékenység nevét 259 00:17:43,580 --> 00:17:47,190 fogunk kísérletet, hogy egy szöveges mező és a gomb 260 00:17:47,190 --> 00:17:50,680 így amikor megnyomja ezt a gombot, hogy meg fogja tenni a szöveget 261 00:17:50,680 --> 00:17:53,660 a szövegmezőbe, és elindít egy új tevékenység, és azt fogja mondani, 262 00:17:53,660 --> 00:17:58,380 bármit, hogy a szöveg szerint a tevékenység, és ez a viszonylag egyszerű. 263 00:17:58,380 --> 00:18:00,650 Ez nem túl érdekes. Ugye nem akarja, hogy kiadja minden app, mint ez. 264 00:18:00,650 --> 00:18:03,880 De mutatja néhány fontos tervezési dolgot. 265 00:18:03,880 --> 00:18:07,030 >> Mi lesz, hogy befolyásolja a nyilvánvaló, a layout fájlokat, 266 00:18:07,030 --> 00:18:12,440 a forráskódot, és láthatjuk, hogyan lehet indítani egy másik tevékenység. 267 00:18:19,740 --> 00:18:23,060 Kezdjük az elrendezés az első tevékenység, 268 00:18:23,060 --> 00:18:27,320 ami tudom, hogy milyen kicsi, 269 00:18:27,320 --> 00:18:32,660 de mint látható most is ez van azt a logót, amit teremtett, 270 00:18:32,660 --> 00:18:36,310 a tevékenység nevét, és azt mondja, hello world központjában. 271 00:18:36,310 --> 00:18:40,400 Ehelyett, én vagyok az első lesz, hogy ezt a lineáris elrendezés, 272 00:18:40,400 --> 00:18:42,350 relatív elrendezés, és ezek mind olyan dolgok, 273 00:18:42,350 --> 00:18:45,870 meg tudná nézni, és érdemes megy át egy bizonyos ponton szempontjából az elrendezés. 274 00:18:45,870 --> 00:18:47,310 Ez olyan, mint a HTML. 275 00:18:47,310 --> 00:18:52,640 Azt mondta, hogy nem igazán érdemes tudni szempontjából egy programszerű értelemben 276 00:18:52,640 --> 00:18:55,840 de olyan sok különböző elrendezésben lehet ellenőrizni, 277 00:18:55,840 --> 00:18:57,970 és ez, mint CSS szempontjából stílusokat. 278 00:18:57,970 --> 00:19:01,590 >> Van egy csomó folyik csak szempontjából az esztétika itt, 279 00:19:01,590 --> 00:19:08,930 és igen, ez érdemes megtanulni, de ez a fajta dolog, amit meg kell keresni 280 00:19:08,930 --> 00:19:11,810 kirovó és úgy érzed, kell valami új. 281 00:19:11,810 --> 00:19:17,030 Én kihasználhatják egyes ADT eszközök itt legalább, hogy elindul. 282 00:19:17,030 --> 00:19:21,930 Csinálok egy szövegmezőbe, és teszem a gombot. 283 00:19:21,930 --> 00:19:24,100 Tegyük fel a jobb egymás mellett. 284 00:19:24,100 --> 00:19:28,200 Már átméretezni megfelelően. 285 00:19:28,200 --> 00:19:31,320 Sajnálom, megint jön vissza a különbség a lineáris elrendezés és a relatív elrendezés, 286 00:19:31,320 --> 00:19:34,830 lineáris elrendezés ad egy kicsit több funkció 287 00:19:34,830 --> 00:19:38,720 tekintve töltő tér és gondoskodik róla, 288 00:19:38,720 --> 00:19:42,790 mi pozíció dolgok vízszintesen vagy függőlegesen. 289 00:19:42,790 --> 00:19:46,130 A nagy különbség a lineáris elrendezésű relatív elrendezés 290 00:19:46,130 --> 00:19:50,250 a relatív pozíciók elrendezés minden képest más nézeteket, 291 00:19:50,250 --> 00:19:52,630 és a jó dolog az, hogy kevesebb időt, hogy dolgozzon 292 00:19:52,630 --> 00:19:56,120 mert az operációs rendszer úgy néz ki, meg az összes kódot, és azt mondja, ez megy 293 00:19:56,120 --> 00:19:58,270 képest ez itt, itt. 294 00:19:58,270 --> 00:20:03,170 Ez azt jelenti, ez teszi kevesebb mérés, mint egy csomó beágyazott lineáris elrendezés, 295 00:20:03,170 --> 00:20:06,840 amit kellett volna tennie, ha akartam menni a dolgok függőlegesen itt. 296 00:20:06,840 --> 00:20:10,510 >> Én már néhány dolgok vízszintesen, ezért lenne szükség a különböző lineáris elrendezése 297 00:20:10,510 --> 00:20:14,560 a fészek függőlegesen, de ha csinálsz egy relatív elrendezés Mondhatnám 298 00:20:14,560 --> 00:20:18,140 Tartsa meg a bal oldalon, hogy ez a helyes, és ezeket a dolgokat az alábbiakban. 299 00:20:18,140 --> 00:20:21,850 Hanem azért, mert azt akarom, hogy töltse ki most fogom használni a lineáris elrendezés, 300 00:20:21,850 --> 00:20:24,510 és láthatjuk, hogy már nem sok ilyen dolog számunkra. 301 00:20:24,510 --> 00:20:28,890 Minden néző kell, hogy egy ingatlan a szélesség és magasság, 302 00:20:28,890 --> 00:20:33,410 és ez történik, hogy egy 1 tömeg, és ez a súlya 1 303 00:20:33,410 --> 00:20:36,050 úgy, hogy kitölti az egész teret. 304 00:20:36,050 --> 00:20:38,460 De a szélesség és a magasság a legfontosabbak. 305 00:20:38,460 --> 00:20:45,880 Ez az azonosító mezőt itt nem fontos a tényleges elrendezése 306 00:20:45,880 --> 00:20:49,060 kivéve, ha a 'használ egy relatív elrendezés és azt mondom, hogy lehet hivatkozni 307 00:20:49,060 --> 00:20:52,990 Egy nézet pozíciót hivatkozik egy másik. 308 00:20:52,990 --> 00:20:56,170 Ha volt egy relatív elrendezés mondhatjuk helyzetben ez alatt ez 309 00:20:56,170 --> 00:20:59,390 vagy e fölött azonosítója, de ez a szám fontos lesz 310 00:20:59,390 --> 00:21:01,660 amikor mi használja a kódunk, mert lehet hivatkozni 311 00:21:01,660 --> 00:21:05,610 ezek az egyes nézetek ezen a módon. 312 00:21:05,610 --> 00:21:10,350 >> És akkor láthatja a címkét requestFocus, ami az, amit valószínűleg látott Pset 7. 313 00:21:10,350 --> 00:21:15,370 Volt egy autofókusz tag vagy ezekhez hasonlót az egyik területen. 314 00:21:15,370 --> 00:21:22,100 És egy dolog, persze, meg tudjuk csinálni, mint a HTML-ben, 315 00:21:22,100 --> 00:21:25,660 és vegyük észre az egyik szép dolog ADT, hogy automatikus kiegészítéshez itt. 316 00:21:25,660 --> 00:21:29,930 Lehet, hogy nem olyan szép, mint ahogy az Xcode, de ez ennek ellenére, 317 00:21:29,930 --> 00:21:32,860 és azt mondhatjuk, hint, majd adja meg valami szöveg 318 00:21:32,860 --> 00:21:37,070 mint írni egy üzenetet, 319 00:21:37,070 --> 00:21:41,300 és ha adok, hogy egy pillanatra is észre, hogy kapok egy kis hiba itt 320 00:21:41,300 --> 00:21:44,610 mondván, hogy kell használni a szöveges erőforrás ez, 321 00:21:44,610 --> 00:21:48,820 így ha hagyjuk, hogy néhány, a kemény munka számomra 322 00:21:48,820 --> 00:21:57,320 Tudom választani ezt a fonalat, akkor refraktor Android és kivonat Android string. 323 00:21:57,320 --> 00:22:00,570 Tudom, hogy ez a név, írjon egy üzenetet, 324 00:22:00,570 --> 00:22:04,180 és mi volt most ez váltotta fel hard-kódolt karakterláncot 325 00:22:04,180 --> 00:22:07,980 való hivatkozással a string a string. xml fájlban, 326 00:22:07,980 --> 00:22:10,200 ami azt jelenti, most ez itt. 327 00:22:10,200 --> 00:22:15,560 >> És tudom, hogy úgy tűnik, egy kicsit triviális, és mint extra munkát ezen a ponton, 328 00:22:15,560 --> 00:22:17,840 de ha van egy csomó dolog, egy csomó húrok, 329 00:22:17,840 --> 00:22:20,750 ez nagyon fontos, és különösen a lokalizáció 330 00:22:20,750 --> 00:22:26,920 mert ahogy korábban említettem, Android egy nagyon globálisan használt operációs rendszer 331 00:22:26,920 --> 00:22:35,950 hogy egyszerűen nem érték-en, illetve értékeket-SP 332 00:22:35,950 --> 00:22:44,320 vagy valami angol vagy spanyol, vagy más nyelveken. 333 00:22:44,320 --> 00:22:50,210 És akkor valószínűleg még nem volt ez az élmény még 334 00:22:50,210 --> 00:22:53,030 mert mi nem sokat JavaScript szempontjából a webes programozás, 335 00:22:53,030 --> 00:22:56,850 de mi is csinálni ezen a területen az úgynevezett onClick a gomb, 336 00:22:56,850 --> 00:23:02,350 és ez az egyik módja a hivatkozás a mi elrendezés 337 00:23:02,350 --> 00:23:06,570 hogy szeretne egy bizonyos funkciót, hogy hívják a mi forráskód. 338 00:23:06,570 --> 00:23:09,420 Fogom hívni ezt SendMessage, 339 00:23:09,420 --> 00:23:13,390 és annak érdekében, hogy ez a munka azt jelenti, hogy a fő tevékenység van 340 00:23:13,390 --> 00:23:19,180 Én létre kell hozni, hogy a funkció az állami 341 00:23:19,180 --> 00:23:22,250 úgy, hogy elérhető legyen a layout. 342 00:23:22,250 --> 00:23:25,930 Ez érvénytelen, mert csak nem akarom, hogy vissza semmit. 343 00:23:25,930 --> 00:23:37,760 Hívjuk meg SendMessage, és tart annak érdekében, 344 00:23:37,760 --> 00:23:43,690 amely egyfajta kontextus, hogy ezt a módszert is horgonyt 345 00:23:43,690 --> 00:23:47,160 az, hogy az egyes view amikor kifutunk azt. 346 00:23:47,160 --> 00:23:50,090 >> És nem tudom, hogy észrevette-nos, akkor nem lett volna észre, 347 00:23:50,090 --> 00:24:02,370 de ezen a ponton itt 348 00:24:02,370 --> 00:24:06,930 ez a nézet egy olyan típus, amely még nem szerepel, 349 00:24:06,930 --> 00:24:10,630 és persze, mindenki tudja, hogy nem a CS50 beleértve típusok. 350 00:24:10,630 --> 00:24:13,120 A szép dolog olyan, mint Eclipse IDE, hogy 351 00:24:13,120 --> 00:24:17,520 ha elfelejti, hogy tartalmazza a típus fog hangsúlyozni egy kis piros squiggly 352 00:24:17,520 --> 00:24:19,680 majd adja meg a lehetőséget, hogy importálni a nézetet. 353 00:24:19,680 --> 00:24:23,130 Egy gyors módja ennek, hogy az irányítás váltás O, és ez lesz importálni 354 00:24:23,130 --> 00:24:27,070 az összes fájlt, hogy kell. 355 00:24:27,070 --> 00:24:33,670 Most, hogy ezt a funkciót SendMessage, 356 00:24:33,670 --> 00:24:46,560 ami lesz küldése a MainActivity egy új tevékenység, 357 00:24:46,560 --> 00:24:55,230 mi kell majd használni a szándékkal, hogy indítson az új tevékenység ez, 358 00:24:55,230 --> 00:25:02,240 így akkor érdemes létrehozni egy globális konstans vagy is különösen a nyilvánosság állandó 359 00:25:02,240 --> 00:25:06,240 , amely segít bennünket, hogyan fogunk hivatkozni a string 360 00:25:06,240 --> 00:25:09,090 mert amikor létrehoz egy szándék mi nem csak hív egy új tevékenység, 361 00:25:09,090 --> 00:25:11,520 de mi is, hogy ez egy csomó információt. 362 00:25:11,520 --> 00:25:14,720 A csomag valójában a kifejezés, hogy az Android használ, 363 00:25:14,720 --> 00:25:21,470 és ez így a mondás, hogy ez extra adat, amely nem lehet a nagyon kifinomult adattípust, 364 00:25:21,470 --> 00:25:24,510 de lehet feltétlenül tartalmaznia Logikai vagy szövegek és ints. 365 00:25:24,510 --> 00:25:29,750 Ez a fajta dolog. 366 00:25:29,750 --> 00:25:34,230 >> Nyugodtan kérdezni bármelyik selejtezők itt, 367 00:25:34,230 --> 00:25:36,900 nyilvános, a végső, statikus. 368 00:25:36,900 --> 00:25:38,610 Közönség a fontos. 369 00:25:38,610 --> 00:25:47,090 Ez azt jelenti, hogy akkor érheti el ezt a változót más forráskód fájlokat 370 00:25:47,090 --> 00:25:49,590 mint például amikor egy új tevékenységet. 371 00:25:49,590 --> 00:25:52,190 Mi lehet hivatkozni a szöveg ebben a fájlban. 372 00:25:52,190 --> 00:25:57,160 Ha ez saját, ez azt jelenti, hogy csak erre az egyes fájlok itt. 373 00:25:57,160 --> 00:26:02,430 De hívjuk ezt valahogy így extra üzenetet. 374 00:26:16,260 --> 00:26:23,300 Most tették ezt a funkciót, és ha rákattint a gombra, ez a funkció kerül meghívásra. 375 00:26:23,300 --> 00:26:27,970 De nem csinált semmit, nyilván, és a funkciót. 376 00:26:27,970 --> 00:26:33,130 Amit akarok most egy új tevékenység, 377 00:26:33,130 --> 00:26:35,350 a tevékenység, hogy valóban indul. 378 00:26:35,350 --> 00:26:44,330 A Eclipse mondhatjuk új Android tevékenység üres tevékenység. 379 00:26:44,330 --> 00:26:46,530 Adhatunk neki nevet. 380 00:26:46,530 --> 00:26:57,050 Nevezzük ezt az eredmény tevékenységet. 381 00:26:57,050 --> 00:27:04,430 És akkor ez a hierarchikus szülő a területen egy módja a meghatározó 382 00:27:04,430 --> 00:27:08,180 hogy a tevékenységek kapcsolódnak egymáshoz. 383 00:27:08,180 --> 00:27:11,020 Mert ez az egyik indul a többi tevékenység 384 00:27:11,020 --> 00:27:27,520 meg kell határozni, hogy az a szülő fő tevékenysége. 385 00:27:27,520 --> 00:27:31,220 >> És tudtam, hogy csattant a következő területen van, ami azt mondta nekünk 386 00:27:31,220 --> 00:27:33,830 néhány opcionális mezők azt is beleértve, 387 00:27:33,830 --> 00:27:38,800 de a szép dolog ADT, megint az, hogy ha én lapozás itt 388 00:27:38,800 --> 00:27:45,740 A Manifest ne feledjük, hogy mindez tényleg alapértelmezés szerint tartalmazza 389 00:27:45,740 --> 00:27:48,930 amikor eredetileg a projekt 390 00:27:48,930 --> 00:27:53,090 és most, mert már használta ezt egy új tevékenység, nem pedig csak 391 00:27:53,090 --> 00:27:58,610 hozzátéve a saját class fájlt, mert mentünk keresztül GUI ezt 392 00:27:58,610 --> 00:28:01,930 már hozzá mindez a nyilvánvaló számunkra, 393 00:28:01,930 --> 00:28:06,020 ami csak azt jelenti, hogy most már az operációs rendszer nem fog panaszkodni 394 00:28:06,020 --> 00:28:09,400 amikor megpróbálja elindítani ezt a tevékenységet. 395 00:28:09,400 --> 00:28:14,620 És ez is, persze, adott neki egy címke, ami azt is mutatja fel szálakat. 396 00:28:14,620 --> 00:28:17,340 Ez nem egy csomó dolgot a háttérben számunkra. 397 00:28:17,340 --> 00:28:20,140 Különben is, most, hogy van ez az eredmény tevékenységet is, 398 00:28:20,140 --> 00:28:23,810 a tényleges forráskód fájlt a forrás mappa, 399 00:28:23,810 --> 00:28:33,540 és láthatjuk, hogy röviden érinteni this- 400 00:28:33,540 --> 00:28:37,790 mert azt mondták, hogy ezt a hierarchikus szülő 401 00:28:37,790 --> 00:28:46,640 ez adta a területen android.r.ide.home ebben onOption kiválasztott dolog. 402 00:28:46,640 --> 00:28:49,020 >> Amit ez alapvetően mondani, hogy van egy menü gombot már 403 00:28:49,020 --> 00:28:53,110 hogy a bal felső sarokban 404 00:28:53,110 --> 00:29:02,220 ha visszamegyek a PowerPoint, ahol először beszélt akció bar 405 00:29:02,220 --> 00:29:05,380 mivel a hierarchikus szülő most van egy kis nyíl vissza 406 00:29:05,380 --> 00:29:10,610 és ez kattintható így kell tenni, hogy-miután tényleg futtatni ezt app- 407 00:29:10,610 --> 00:29:15,360 menj vissza, és ez a módja a megtakarítás minket egy kis kódot is. 408 00:29:26,220 --> 00:29:40,180 Most ebben a hát, úgy tűnik, hogy panaszkodnak, hogy egy pillanatra. 409 00:29:40,180 --> 00:29:43,910 Nézzük elmondták, hogy ki. 410 00:29:43,910 --> 00:29:48,260 Most, annak érdekében, hogy valóban kölcsönhatásba ezekkel 2 tevékenységek 411 00:29:48,260 --> 00:29:55,020 Hozzunk létre olyan szándékot, amely magában foglalja az összes ezeket az adatokat. 412 00:29:55,020 --> 00:29:58,950 A SendMessage most megyek, hogy az óceánjáró valamilyen bit kód 413 00:29:58,950 --> 00:30:00,700 és magyarázza, hogy mivel megyek. 414 00:30:00,700 --> 00:30:06,280 A szándék, mint mondtam, egy módja annak, hogy indítson egy tevékenységet egy másik. 415 00:30:06,280 --> 00:30:10,000 Szándék az a típus. Hozunk létre egy változó myIntent. 416 00:30:10,000 --> 00:30:13,980 >> És ez valójában egy tárgy, ezért is meg kell hívni az új. 417 00:30:13,980 --> 00:30:18,500 Ez a közös használat Java van, ami egy kicsit szokni kell. 418 00:30:18,500 --> 00:30:23,900 Ez azt jelenti, amit használ a tevékenység vagy az osztály MainActivity, 419 00:30:23,900 --> 00:30:28,630 és a szándék az, hogy azon a módon tevékenység ez megy a 420 00:30:28,630 --> 00:30:36,060 és a tevékenység is fog, vagy ahogy mi hívjuk ResultActivity, 421 00:30:36,060 --> 00:30:38,170 és ez a saját kategóriájában. 422 00:30:38,170 --> 00:30:41,720 Közé tartozik, hogy. 423 00:30:41,720 --> 00:30:47,370 Aztán ahogy már említettem, adtunk, hogy az ID a szerkesztés szövegmezőbe 424 00:30:47,370 --> 00:30:53,710 és a szöveg nézet, ezért annak érdekében, hogy programozottan elfog 425 00:30:53,710 --> 00:31:01,860 a szöveget, hogy létezik a EditText 426 00:31:01,860 --> 00:31:06,710 használjuk ezt a funkciót nevezik findViewByID, 427 00:31:06,710 --> 00:31:13,660 amely hasonló a valami, amit akkor használ, amikor megpróbál mezőket a DOM. 428 00:31:13,660 --> 00:31:17,560 Talán David beszél az előadás. 429 00:31:17,560 --> 00:31:26,600 De ez csak egy módja annak, hogy azok, hogy emiatt tag ezeket a dolgokat ezeken a területeken. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Ez már automatikusan kiegészülő meg ott. 432 00:31:35,220 --> 00:31:42,010 >> És akkor majd is-ez EditText most, hogy a területen 433 00:31:42,010 --> 00:31:47,640 belül a program minden findViewByID nem alapvetően 434 00:31:47,640 --> 00:31:50,870 akkor gondolj rá, mint nekünk egy hivatkozást, amely EditText. 435 00:31:50,870 --> 00:31:54,570 Most azt akarjuk, hogy a szöveg, vagy az üzenet 436 00:31:54,570 --> 00:32:00,670 belül EditText amit tehetünk az a- 437 00:32:00,670 --> 00:32:03,360 gondolkodnunk EditText mint a struktúra- 438 00:32:03,360 --> 00:32:07,600 hívjuk egy tárgy Java-egy csomó különböző módszerek 439 00:32:07,600 --> 00:32:10,650 vagy mezők és attribútumok kapcsolódik. 440 00:32:10,650 --> 00:32:15,510 Amikor azt mondom, EditText. ez ad nekem az esélyt, hogy hozzáférést 441 00:32:15,510 --> 00:32:19,770 olyan módszerrel, mint például Gettext, amely megkapja a jelenlegi szöveg 442 00:32:19,770 --> 00:32:23,990 abban EditText majd átalakítani, hogy kifejezetten 443 00:32:23,990 --> 00:32:26,520 egy string, és mentette az üzenetet. 444 00:32:26,520 --> 00:32:32,730 Most tényleg akar valamit csinálni, hogy a szándék hoztuk létre pillanatok óra. 445 00:32:32,730 --> 00:32:40,250 Teszek extra ahogy hívják a szándék, 446 00:32:40,250 --> 00:32:43,330 ami megint, mint már mondtam, ez az egyik módja, hogy megteremtse a csomag 447 00:32:43,330 --> 00:32:45,980 egy csomó adat. 448 00:32:45,980 --> 00:32:50,920 Extra üzenet a tag, így tudjuk, hogy mi vagyunk a mentés alatt, 449 00:32:50,920 --> 00:32:56,700 és akkor én vagyok köztük az üzenetet. 450 00:32:56,700 --> 00:33:04,870 >> És akkor mi is valójában a tevékenység kezdetét azáltal, hogy a paraméter myIntent. 451 00:33:04,870 --> 00:33:10,630 És ez valóban elindítja a tevékenység, így most, mert én frissített Windows 8 452 00:33:10,630 --> 00:33:15,870 talán akad egy kis hiba, hogy megjelenik röviden, de próbáld figyelmen kívül hagyni őket. 453 00:33:28,010 --> 00:33:30,310 És ez az Android emulátor. 454 00:33:30,310 --> 00:33:33,540 Remélhetőleg a kód valóban felbukkan egy pillanatra. 455 00:33:33,540 --> 00:33:36,680 Ismét, figyelmen kívül hagyva azokat a kis dolgokat. 456 00:33:36,680 --> 00:33:42,290 De az Android emulátor segítségével emulálni bármelyik változata az operációs rendszer 457 00:33:42,290 --> 00:33:45,180 a legkorábbi is, fánk, mézeskalács. 458 00:33:45,180 --> 00:33:49,640 Ez a Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 De mint látható most, ez az, amit tettünk. 460 00:33:53,150 --> 00:33:55,780 Ez a MainActivity a EditText a gombot. 461 00:33:55,780 --> 00:34:01,550 Azt is írja valamit, de mit is hiányzik ezen a ponton? 462 00:34:01,550 --> 00:34:05,190 Mi történt a területen a MainActivity hogy fog elküldeni az üzenetet 463 00:34:05,190 --> 00:34:08,570 A másik tevékenység, de ezen a ponton 464 00:34:08,570 --> 00:34:12,330 nem tettünk semmit a többi tevékenység, így nem fog kapni semmit. 465 00:34:12,330 --> 00:34:18,800 Fejezzük ki azt a részét, mielőtt tovább megyünk. 466 00:34:18,800 --> 00:34:25,760 >> Ez az eredmény tevékenység, amit akkor kell tennie, akkor kell tennie, hogy mi kell, 467 00:34:25,760 --> 00:34:30,070 azt is hivatkozni a szándék belül ezt a tevékenységet, 468 00:34:30,070 --> 00:34:33,580 így van, hogy rögzítse a szándék, ami nagyon egyszerű. 469 00:34:33,580 --> 00:34:40,780 Ez egy funkciót tevékenységhez tartozó osztály, 470 00:34:40,780 --> 00:34:47,610 így csak mondani, hogy "Szerezd meg az üzenetet a szándék." 471 00:34:47,610 --> 00:34:56,260 "Szándék myIntent = getIntent." 472 00:34:56,260 --> 00:35:00,030 És ez ad nekünk, most myIntent egy objektum, 473 00:35:00,030 --> 00:35:05,380 amely egy hivatkozás a szándék vezetett bennünket, hogy ezt a tevékenységet. 474 00:35:05,380 --> 00:35:10,130 MainActivity hívások és ad további információt az eredménylistához tevékenységet. 475 00:35:10,130 --> 00:35:14,070 Eredmény tevékenység most úgy néz ki, a szándék vezetett, hogy itt, 476 00:35:14,070 --> 00:35:23,540 és mi az üzenet, amit létrehozott a másikat, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, és ez autocomplete nekem. 478 00:35:26,370 --> 00:35:31,190 Aztán emlékszem, ahogy mi címkézett, hogy kicsit az adatok 479 00:35:31,190 --> 00:35:38,400 volt, azáltal, hogy ezen a téren itt, ezt a nyilvános string, 480 00:35:38,400 --> 00:35:42,080 amely a tag a szöveg valójában is. 481 00:35:42,080 --> 00:35:48,450 >> Ha azt mondom, MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 ott van, és ez a fajta, mint a paraméter neve 483 00:35:52,200 --> 00:35:55,330 amikor elhaladtunk kódot a vezérlő a sablon, 484 00:35:55,330 --> 00:35:57,680 amikor azt mondanám, hogy címet nyíl valamit. 485 00:35:57,680 --> 00:36:01,140 Ez ugyanaz a fajta elképzelés van. 486 00:36:01,140 --> 00:36:07,130 Nos, emlékezz erre. 487 00:36:07,130 --> 00:36:12,230 Mi is volt az automatikus létre, vagy automatikusan generált kód 488 00:36:12,230 --> 00:36:16,410 aktivitás az eredményhez, amely magában foglalja a szöveges nézet közepén 489 00:36:16,410 --> 00:36:19,690 azt mondja hello world. 490 00:36:19,690 --> 00:36:27,510 Azt esetleg tenni, hogy nagyobb. 491 00:36:27,510 --> 00:36:33,980 Csináljuk az első. 492 00:36:33,980 --> 00:36:39,550 Tudtuk, hogy ez 40 sűrűség független pixel. 493 00:36:39,550 --> 00:36:42,670 Lássuk, ez szuper nagy. Ez rendben lesz. 494 00:36:42,670 --> 00:36:48,180 És akkor, hogy hivatkozni ez az egyedi szöveges nézetben a kódunkat 495 00:36:48,180 --> 00:36:53,890 mi kell, hogy ez egy azonosítót, 496 00:36:53,890 --> 00:36:58,350 és annak érdekében, hogy ezt, hogy mondjuk @ + id, ami azt jelenti, hogy hozzá, hogy ID. 497 00:36:58,350 --> 00:37:02,480 Ha csak azt mondta @ id lenne feltételezni, mi hivatkozik egy azonosítót, amely már létezik, 498 00:37:02,480 --> 00:37:07,760 és nevezzük ezt a resultTextView. 499 00:37:07,760 --> 00:37:10,570 És észre, hogy az XML-ben nincs szükség a pontosvessző, vagy ilyesmi. 500 00:37:10,570 --> 00:37:12,380 Minden ezekben a címkéket. 501 00:37:12,380 --> 00:37:15,530 Ez nagyon hasonlít a HTML-ben a sok érzékeit. 502 00:37:15,530 --> 00:37:22,760 >> Beletelik egy kis megszokni, de végül akkor úgy érzi, elég kényelmes vele. 503 00:37:22,760 --> 00:37:31,320 Nézzük frissíti a szöveget a szöveg eredmény szerint 504 00:37:31,320 --> 00:37:35,650 és, mint mi, amikor mi voltunk, hogy egyre szerkesztő mezőbe a mi más tevékenység 505 00:37:35,650 --> 00:37:46,630 A MainActivity itt is hasonlóképpen, 506 00:37:46,630 --> 00:37:54,890 megtaláljuk a nézetet az azonosítót. 507 00:37:54,890 --> 00:37:59,640 És R, ha nem említettem ezt korábban, az a hivatkozás, hogy a források mappába 508 00:37:59,640 --> 00:38:05,350 majd ID egy utalás mindent a Resources mappában, mind az azonosítók, 509 00:38:05,350 --> 00:38:10,060 és resultTextView. 510 00:38:10,060 --> 00:38:13,010 És ahogy korábban, resultTextView egy objektum, 511 00:38:13,010 --> 00:38:15,780 ami azt jelenti, hogy ezeket a tulajdonságokat az összes társított. 512 00:38:15,780 --> 00:38:20,610 Amikor használja Gettext a Szöveg szerkesztése A szöveg mező vagy a szöveges nézet 513 00:38:20,610 --> 00:38:23,980 tudjuk ténylegesen használni setText, 514 00:38:23,980 --> 00:38:26,960 és akkor már megtalálta az üzenetet a szándék, 515 00:38:26,960 --> 00:38:35,760 így azt mondhatom üzenetet, és ez valóban meg az üzenetet. 516 00:38:35,760 --> 00:38:41,820 >> Ez egy pillanatra, hogy indítsanak, és akkor láthatjuk-e vagy sem, hogy összetörik, 517 00:38:41,820 --> 00:38:48,670 de bármilyen kérdése van a folyamat ott, hogy az a fajta interakció? 518 00:38:48,670 --> 00:38:51,490 Sok szempontból ez egyértelmű. 519 00:38:51,490 --> 00:38:53,960 Azért megyek át valami viszonylag egyszerű 520 00:38:53,960 --> 00:38:57,330 is, újra, mert akkor kap, hogy a kölcsönhatás az elrendezés, 521 00:38:57,330 --> 00:38:59,520 a forráskódot, hogy hogyan hivatkozás dolgok 522 00:38:59,520 --> 00:39:07,680 és talán egy kicsit expozíció hogyan Java ott dolgozik. 523 00:39:07,680 --> 00:39:16,500 Ha tényleg írja itt valami, mint a ohai, aztán kattintson a gombra, 524 00:39:16,500 --> 00:39:22,260 elindítja egy új tevékenység, és a szöveg nézet szerint ohai. 525 00:39:22,260 --> 00:39:27,640 Ez nagyon egyszerű, de remélhetőleg utána példa 526 00:39:27,640 --> 00:39:32,310 Ha valami, hogyan működik ez a kölcsönhatás, és most, hogy a rendetlenség a kép 527 00:39:32,310 --> 00:39:36,870 a bal oldalon az összes ilyen projekt mappákat, remélhetőleg tudja, hol kell keresni most. 528 00:39:36,870 --> 00:39:38,700 Ez az Ön forráskód területen. 529 00:39:38,700 --> 00:39:41,760 >> Layout valóban az egyetlen dolog, amit kezelni, amíg nem tartalmaz képeket 530 00:39:41,760 --> 00:39:46,370 és a drawables vagy bármi, és értékek, amelyek tartalmazzák húrok, 531 00:39:46,370 --> 00:39:51,960 mint már említettük, majd stílus van valami, hogy ez a fajta, mint a CSS. 532 00:39:51,960 --> 00:39:56,410 Cím, ha akarsz, de addig, amíg úgy érzi, kényelmes extra hangulattal 533 00:39:56,410 --> 00:40:02,520 hogy az alkalmazás nem kell aggódni, hogy túl sokat. 534 00:40:02,520 --> 00:40:07,410 Csak azért, hogy lezárja egy másik dolog, amit feltétlenül szeretne felvenni, 535 00:40:07,410 --> 00:40:13,010 feltételezve azt szeretné, hogy integrálja hűvös jellegét, és mentse magát egy kis extra kódolás- 536 00:40:13,010 --> 00:40:16,460 lenne, hogy 3rd party könyvtárak. 537 00:40:16,460 --> 00:40:19,840 Itt van a kis Android srác a Sherlock Holmes kalapot. 538 00:40:19,840 --> 00:40:23,040 Ez egy akció bar Sherlock könyvtár, 539 00:40:23,040 --> 00:40:25,390 ami lényegében azt jelenti, hogy a cselekvés bar láttad korábban, 540 00:40:25,390 --> 00:40:29,590 amely most szabvány Ice Cream Sandwich és a Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 ha azt akarjuk, hogy ez a fajta felhasználói élményt a felhasználók számára a régebbi verziók 542 00:40:33,100 --> 00:40:39,290 , és mentse magát kell aggódnia, hogy a felhasználó fog navigálni 543 00:40:39,290 --> 00:40:42,490 A régebbi verziók, amikor ez a dolog nem ott is ezt a könyvtárat 544 00:40:42,490 --> 00:40:46,770 és akkor csak azt kell referencia helyett az alapértelmezett Android 545 00:40:46,770 --> 00:40:50,250 könyvtárak az intézkedés bar, akkor hivatkozni ez a támogatás könyvtárat. 546 00:40:50,250 --> 00:40:53,090 >> Dolgok, mint Scoreloop, ez nagyszerű, ha lesz is egy játék. 547 00:40:53,090 --> 00:40:57,280 Ez lehetővé teszi hozzá vezető lapok és eredményeket játékokat. 548 00:40:57,280 --> 00:41:00,900 AdMob a megfogalmazás hirdetéseket az alkalmazásokat 549 00:41:00,900 --> 00:41:02,900 az esetre, ha szeretnénk, hogy egy kis pénzt le róla. 550 00:41:02,900 --> 00:41:05,730 Természetesen van a Facebook és a Twitter integrálására van 551 00:41:05,730 --> 00:41:08,170 Ha meg szeretné osztani a dolgokat könnyedén, satöbbi. 552 00:41:08,170 --> 00:41:15,120 Dropbox, hasonlóképpen, és a Google Analytics, hogy a táblázat keres ott. 553 00:41:15,120 --> 00:41:19,070 Ez nagyon fontos lesz, ha valóban szeretnénk látni, aki kölcsönhatásban 554 00:41:19,070 --> 00:41:25,800 a app, vagy ki az, hogyan hatnak egymásra, satöbbi. 555 00:41:25,800 --> 00:41:30,650 Google, alapértelmezés szerint azt mondja, sok a statisztikát, aki telepítette a app 556 00:41:30,650 --> 00:41:35,020 és milyen telefonok vannak, milyen operációs rendszer verziói vannak. 557 00:41:35,020 --> 00:41:38,080 De ha azt akarjuk, hogy ki használja napi rendszerességgel, és hogyan használja 558 00:41:38,080 --> 00:41:42,860 akkor majd szeretnénk felvenni valamilyen nyomkövető rendszer, mint ezt. 559 00:41:42,860 --> 00:41:44,990 >> Ha készen áll, hogy osztja a app 560 00:41:44,990 --> 00:41:46,930 Nem kell belemenni, hogy túl sok mélység. 561 00:41:46,930 --> 00:41:49,090 Kattints a linkre itt, a Google Lejátszás. 562 00:41:49,090 --> 00:41:51,080 Régen az Android Market. 563 00:41:51,080 --> 00:41:53,470 Ők átnevezte mindent Google Play, 564 00:41:53,470 --> 00:41:55,230 így most már be ezt. 565 00:41:55,230 --> 00:41:57,140 Ez nagyon egyszerű. 566 00:41:57,140 --> 00:42:01,070 Meg kell szerepeltetni, néhány kép. 567 00:42:01,070 --> 00:42:05,660 Mint mondtam, nincs jóváhagyási folyamat, mint iOS. 568 00:42:05,660 --> 00:42:07,270 És hová tovább? 569 00:42:07,270 --> 00:42:09,450 Megmutattam, hogy egy nagyon egyszerű példát. 570 00:42:09,450 --> 00:42:13,270 Remélhetőleg, ha úgy tűnik, borzasztóan egyszerű 571 00:42:13,270 --> 00:42:15,740 akkor ez talán egy jó jel. 572 00:42:15,740 --> 00:42:20,080 Ha egyáltalán úgy érezte, egy kicsit zavaros, vagy nem biztos, hogy pontosan mit is írja 573 00:42:20,080 --> 00:42:26,160 ez is rendben van, de innen megy a Google útmutatók. 574 00:42:26,160 --> 00:42:28,330 Ez egy nagyszerű kiindulópont. 575 00:42:28,330 --> 00:42:31,460 Ez beszélni végig mit várnak szempontjából az alkalmazások tervezése, 576 00:42:31,460 --> 00:42:33,380 hogy a felhasználók általában kölcsönhatásba vele. 577 00:42:33,380 --> 00:42:36,450 Ez sokkal több, szabad formában, mint iOS, azt mondanám, 578 00:42:36,450 --> 00:42:41,330 amely úgy tűnik, asztal nézetek, nem is tudom, hogy ez a kenyér és a vaj. 579 00:42:41,330 --> 00:42:44,690 Minden egy tábla nézet csúszott fel és le. 580 00:42:44,690 --> 00:42:48,160 Az Android határozottan ösztönzi az embereket, hogy nézd meg, hogy 581 00:42:48,160 --> 00:42:51,720 egy csomó különböző perspektívák. 582 00:42:51,720 --> 00:42:56,000 >> Amikor is a Software Development Kit ebben ADT 583 00:42:56,000 --> 00:43:03,010 alapértelmezés szerint van egy csomó minta projektek Android. 584 00:43:03,010 --> 00:43:05,470 Itt, Android, Android minta projekt. 585 00:43:05,470 --> 00:43:11,870 Ha rákattint a, akkor választhat egy változata, amely a minta projektek alkalmazni. 586 00:43:11,870 --> 00:43:13,300 Van egy csomó különböző dolgokat. 587 00:43:13,300 --> 00:43:16,690 Úgy indul az akció bar kompatibilitás, 588 00:43:16,690 --> 00:43:24,610 gyorsulásmérő játék, biztonsági mentés és visszaállítás, Bluetooth, gesztus építője. 589 00:43:24,610 --> 00:43:28,930 JetBoy egy példa játék kapsz, mint LunarLander. 590 00:43:28,930 --> 00:43:31,250 Van egy csomó minta alkalmazás itt, 591 00:43:31,250 --> 00:43:35,290 és ők mind célzó különböző aspektusait Android API, 592 00:43:35,290 --> 00:43:41,520 és az ötlet is, hogy mint te, hogy az alkalmazás 593 00:43:41,520 --> 00:43:44,110 nem kell tanulni mindent, hogy egy Android Android app. 594 00:43:44,110 --> 00:43:47,300 Csak meg kell tanulni a részeket, hogy te tényleg fog használni. 595 00:43:47,300 --> 00:43:49,340 Nézd meg ezeket a minta könyvtárakban. 596 00:43:49,340 --> 00:43:51,510 Nyugodtan másolja be a kódot, és újra azt. 597 00:43:51,510 --> 00:43:53,850 Ez egy nagyszerű dolog, hogy nézd nehezebb kód 598 00:43:53,850 --> 00:43:57,060 és próbálja megérteni, ami persze miért CS50 599 00:43:57,060 --> 00:44:01,510 gyakran ad nagy mennyiségű forráskód. 600 00:44:01,510 --> 00:44:04,620 Nézd meg néhány ilyen, ha akarsz használni hasonló könyvtárak 601 00:44:04,620 --> 00:44:08,630 majd alkalmazni, hogy a saját kódját. 602 00:44:08,630 --> 00:44:10,430 És persze, vannak oktató. 603 00:44:10,430 --> 00:44:12,690 Keresése oktató. 604 00:44:12,690 --> 00:44:17,020 Én találtam egy csomó jó is on-line, amely hozhat Önnek, hogy gyorsítsa 605 00:44:17,020 --> 00:44:20,080 , amit töredékek valójában, és hogyan használhatja őket. 606 00:44:20,080 --> 00:44:22,240 >> Néhány ilyen új design dolgokat, mint a töredékek, 607 00:44:22,240 --> 00:44:26,840 tényleg nem kell aggódik, ha még van egy 608 00:44:26,840 --> 00:44:30,560 Elég nagy kiterjedésű, projektben. 609 00:44:30,560 --> 00:44:32,510 Ezek azok a dolgok, hogy a Google igyekszik, hogy fokozatosan be 610 00:44:32,510 --> 00:44:35,570 StackOverflow természetesen a barátod. 611 00:44:35,570 --> 00:44:37,930 Remélem el egy kicsit az Android, 612 00:44:37,930 --> 00:44:41,640 felismerve, hogy ez sokkal könnyebb megközelíteni szempontjából csak a kódolási nyelvet. 613 00:44:41,640 --> 00:44:45,970 Java Azt mondanám, sokkal könnyebb megérteni, mint Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android növekszik szerintem sokkal több, mint iOS. 615 00:44:50,780 --> 00:44:54,890 Úgy értem, az adatok ott is, eltekintve attól, amit gondolok. 616 00:44:54,890 --> 00:44:56,920 Ez lesz egy darabig, 617 00:44:56,920 --> 00:45:00,880 és ezek néhány évvel lemaradva a tervezési ciklus, 618 00:45:00,880 --> 00:45:04,690 így egyfajta érthető, hogy ők még mindig dolgoznak át néhány ilyen 619 00:45:04,690 --> 00:45:09,080 következetesség kérdést, mint például ez a fellépés a sáv egy új dolog számukra is, 620 00:45:09,080 --> 00:45:16,010 valami ami hasonló felhasználói élményt nyújt minden apps. 621 00:45:16,010 --> 00:45:20,650 Remélhetőleg akkor megy előre, és most nyit Eclipse 622 00:45:20,650 --> 00:45:22,870 és a saját Android alkalmazások. 623 00:45:22,870 --> 00:45:30,240 >> Van valakinek bármilyen kérdése, mielőtt lezárja a valamit? 624 00:45:30,240 --> 00:45:34,410 Azt lehet mondani, a válasz 42. 625 00:45:34,410 --> 00:45:41,990 Nos, boldog kódolás mindenki, és sok szerencsét. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]