1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Семинар] [Android Apps (Сега с желирани бонбони!)] 2 00:00:02,610 --> 00:00:04,210 [Jordan Jóźwiak] [Harvard University] 3 00:00:04,210 --> 00:00:06,780 [Това е CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Здравейте на всички, и добре дошли в Android Apps (Сега с желирани бонбони!) Семинар. 5 00:00:11,600 --> 00:00:14,530 Тя се нарича сега с желирани бонбони, разбира се, защото 6 00:00:14,530 --> 00:00:17,310 най-новата версия на операционната система се нарича Jelly Bean. 7 00:00:17,310 --> 00:00:22,950 Когато се говори за Android през миналата година и е направил това основно същия семинар 8 00:00:22,950 --> 00:00:29,150 Бях представяне на моделите на дизайна и стилистични решения за Gingerbread, 9 00:00:29,150 --> 00:00:31,250 въпреки че Ice Cream Sandwich е дошъл по това време, 10 00:00:31,250 --> 00:00:33,680 и това е нещо, което ние ще говорим за в бъдеще малко. 11 00:00:33,680 --> 00:00:35,720 Android, разбира се, има някои проблеми с фрагментацията, 12 00:00:35,720 --> 00:00:40,240 така че последната Google операционна система е обикновено 13 00:00:40,240 --> 00:00:44,710 не наистина ще се превърне в обичайна сред потребителите за потенциално до една година, за съжаление. 14 00:00:44,710 --> 00:00:49,960 >> Но не зачита този, ние ще говорим за много причини, поради които 15 00:00:49,960 --> 00:00:53,000 Android е много по-добре от IOS. 16 00:00:53,000 --> 00:00:56,410 Добре, ние ще говорим за Android срещу IOS, 17 00:00:56,410 --> 00:00:59,770 няколко дизайнерски парадигми, как вие ще получите, създадени само за един слайд, 18 00:00:59,770 --> 00:01:03,410 и голяма разлика между тази и миналата година, е, че просто искам да 19 00:01:03,410 --> 00:01:06,860 мащабиране чрез някои концептуални неща, работещи с 20 00:01:06,860 --> 00:01:09,950 операционната система и след това да отиде в наистина основен пример. 21 00:01:09,950 --> 00:01:13,730 В действителност, само пример, че Google се описва за изграждането на вашия първи ап, 22 00:01:13,730 --> 00:01:17,070 и ние ще мине през него заедно и просто да се опише. 23 00:01:17,070 --> 00:01:22,100 >> Знам, че много от вас са само кодирани в C, Java, така вече ще бъде 24 00:01:22,100 --> 00:01:27,220 друга гледна точка, и по този начин вие ще получите краката си wet 25 00:01:27,220 --> 00:01:31,540 и се чувствам малко по-комфортно с него се надяваме. 26 00:01:31,540 --> 00:01:35,330 Един бърз резюме, Android срещу IOS. 27 00:01:35,330 --> 00:01:39,200 В Android има това еднократно разработчик такса от $ 25 28 00:01:39,200 --> 00:01:42,390 Нищо от това 100 щ.д. на година нещо. 29 00:01:42,390 --> 00:01:45,440 Няма ограничения, което означава, че ако искам да представя един апартамент, 30 00:01:45,440 --> 00:01:51,560 Току-що го представят, и няма процес на одобрение като има за IOS. 31 00:01:51,560 --> 00:01:53,890 Може да се развиват с Java използва Eclipse, 32 00:01:53,890 --> 00:01:57,090 което е крос платформа, така че няма значение, ако имате Mac, 33 00:01:57,090 --> 00:01:59,600 Windows, Linux или някаква машина. 34 00:01:59,600 --> 00:02:03,730 Разбира се, с IOS вие трябва да използвате Xcode за Mac, 35 00:02:03,730 --> 00:02:06,930 и Android се използва от много повече хора, 36 00:02:06,930 --> 00:02:11,580 така че ако искате приложението си да имат някаква видимост или може би 37 00:02:11,580 --> 00:02:14,110 направи малко пари от реклами 38 00:02:14,110 --> 00:02:17,450 вие вероятно сте по-склонни да се възползват от Android. 39 00:02:17,450 --> 00:02:20,630 >> И едно нещо, което винаги е било известно за Android 40 00:02:20,630 --> 00:02:25,100 е крайната сума на персонализация, като има предвид, IOS е много фиксирани в техните пътища 41 00:02:25,100 --> 00:02:29,380 така че те да могат да поддържат сигурността и контрол върху всеки малък аспект 42 00:02:29,380 --> 00:02:34,180 на проекта в рамките на тяхната операционна система и на отделните приложения. 43 00:02:34,180 --> 00:02:40,180 Android е много свободна форма, а има толкова много повече възможности. 44 00:02:40,180 --> 00:02:42,530 Добре, няколко дизайнерски парадигми. 45 00:02:42,530 --> 00:02:49,600 Забележете, точно като IOS има таблетки и Iphones и докинг докосне 46 00:02:49,600 --> 00:02:53,840 те трябва да се подкрепят, да речем, като дузина устройства, ако искате да подкрепите 47 00:02:53,840 --> 00:02:55,450 исторически неща. 48 00:02:55,450 --> 00:02:58,410 С Android ще трябва да поддържа стотици устройства, 49 00:02:58,410 --> 00:03:01,240 така че има някои неща, които Google се опитва да прилага 50 00:03:01,240 --> 00:03:04,970 да направят работата на потребителите малко по-последователна, 51 00:03:04,970 --> 00:03:08,560 но ние също така ще говорим за това как това означава, че има въпроси, на фрагментацията 52 00:03:08,560 --> 00:03:11,700 че постоянно трябва да е наясно с подкрепа. 53 00:03:11,700 --> 00:03:16,140 Раздробяването означава, че има много различни операционни системи, 54 00:03:16,140 --> 00:03:20,330 много различни телефони с различен хардуер добри Android по едно и също време, 55 00:03:20,330 --> 00:03:29,680 така тази графика тук се връща в продължение на около 6 месеца. 56 00:03:29,680 --> 00:03:36,460 Да, 6 месеца и можете да видите как най-тъмната лента 57 00:03:36,460 --> 00:03:39,330 на дъното е Jelly Bean, който излезе през лятото, 58 00:03:39,330 --> 00:03:42,970 и можете да видите точно сега може би около 2% от телефоните го има. 59 00:03:42,970 --> 00:03:45,520 >> Ice Cream Sandwich излезе преди повече от година, 60 00:03:45,520 --> 00:03:47,770 и една четвърт от телефоните го има. 61 00:03:47,770 --> 00:03:53,910 Все още има много телефони, които използват версия на операционната система от години. 62 00:03:53,910 --> 00:03:57,820 Едно нещо, което Google се е опитал да направя, за да направи работата на потребителя 63 00:03:57,820 --> 00:04:01,400 много по-съгласуван в приложения започват с Honeycomb, 64 00:04:01,400 --> 00:04:04,320 която е таблетка версия, тогава Ice Cream Sandwich и Jelly Bean, 65 00:04:04,320 --> 00:04:06,750 те са наистина се опитва да се подчертае използването на това действие, бар, 66 00:04:06,750 --> 00:04:10,430 което е това, което можете да видите в горната тук, 67 00:04:10,430 --> 00:04:14,730 всичко точно тук, включително този малък бутон настройки. 68 00:04:14,730 --> 00:04:16,079 Това е дизайн избор. 69 00:04:16,079 --> 00:04:18,000 Сега, всеки път, когато се видим на 3 точки, това означава, кликнете върху това, 70 00:04:18,000 --> 00:04:21,880 и няма да има падащо меню, което има някаква настройки. 71 00:04:21,880 --> 00:04:28,900 Това показва само, защото се кликне върху този бутон. 72 00:04:28,900 --> 00:04:32,040 Това е нещо, което те се опитват да използват, за да правят приложения, малко по-последователна 73 00:04:32,040 --> 00:04:39,210 повсеместно и, така че потребителят има по-добро чувство за единна опит. 74 00:04:39,210 --> 00:04:42,640 >> Добре, така че в случай, че не са направили това вече или ако гледаш у дома 75 00:04:42,640 --> 00:04:50,210 След това можете да следвате тези стъпки, за да настроите кодиране среда. 76 00:04:50,210 --> 00:04:52,630 Тя ще включва на следния уебсайт тук. 77 00:04:52,630 --> 00:04:56,260 Можете да инсталирате Google Android SDK 78 00:04:56,260 --> 00:04:59,130 и следват някои описания там. 79 00:04:59,130 --> 00:05:01,310 Те ви кажа всичко. 80 00:05:01,310 --> 00:05:05,160 Те трябва да инсталирате на SDK, изтегляне Eclipse Classic версия, 81 00:05:05,160 --> 00:05:07,450 въпреки че, разбира се, ние сме кодиране в Java. 82 00:05:07,450 --> 00:05:12,190 Те препоръчват това, и след това тази ADT, развитието Android Tools, 83 00:05:12,190 --> 00:05:17,300 е плъгин, който инсталирате в Eclipse, който ви позволява да 84 00:05:17,300 --> 00:05:20,550 имат много по-оптимизирана с Android в Eclipse. 85 00:05:20,550 --> 00:05:24,070 Тя ще ви даде някои графични потребителски интерфейси 86 00:05:24,070 --> 00:05:29,610 за проектиране на мненията, и тя ще ви даде много по-голяма подкрепа 87 00:05:29,610 --> 00:05:34,840 и способността да се започне с емулатор и всички такива неща. 88 00:05:34,840 --> 00:05:36,090 Заявление рамка. 89 00:05:36,090 --> 00:05:41,590 >> Искам да говоря за това как проекти в рамките на Android са структурирани, 90 00:05:41,590 --> 00:05:44,830 и след това ще отида в бърз пример, и да се надяваме 91 00:05:44,830 --> 00:05:48,820 можете да задавате въпроси във всеки един момент и да се чувстват комфортно, като в края на това. 92 00:05:48,820 --> 00:05:50,090 Ние имаме някои жаргон първи. 93 00:05:50,090 --> 00:05:55,330 Една дейност е като на екрана виждате, когато започне един апартамент. 94 00:05:55,330 --> 00:05:57,840 Целият опит е самата дейност, 95 00:05:57,840 --> 00:06:00,790 така че можех да мисля за него като за екрана или оглед, 96 00:06:00,790 --> 00:06:04,540 но всъщност е страната на изходния код на него. 97 00:06:04,540 --> 00:06:12,680 Ние все още наричаме застроена част интерфейс от него цел. 98 00:06:12,680 --> 00:06:17,230 Това е нещо като как в PSET 7 имахме контролер и след това на гледката. 99 00:06:17,230 --> 00:06:20,690 Дейността е повече или по-малко на контролера, 100 00:06:20,690 --> 00:06:23,360 и гледката е това, което правим по отношение на XML 101 00:06:23,360 --> 00:06:25,260 която е свързана с тази дейност. 102 00:06:25,260 --> 00:06:29,340 Фрагментите са нещо, което изпълнява в Ice Cream Sandwich върви напред. 103 00:06:29,340 --> 00:06:36,380 Това е само една идея за предприемане на части на оглед или дейността 104 00:06:36,380 --> 00:06:39,990 и като се раздели ги в отделни области, така че можем да 105 00:06:39,990 --> 00:06:45,030 направи нашия код по-използваеми за тези много различни устройства 106 00:06:45,030 --> 00:06:51,890 че трябва да се подкрепят, а това е просто начин да се опитва да 107 00:06:51,890 --> 00:06:54,290 също фактор повече код. 108 00:06:54,290 --> 00:07:01,090 Услугите са фонови неща, като възпроизвеждане на музика или посоки за навигация потенциално. 109 00:07:01,090 --> 00:07:05,640 Доставчиците на съдържание, това са APIs в рамките на операционната система 110 00:07:05,640 --> 00:07:09,070 които ви позволяват да получите достъп до споделени данни, като информация за контакт, 111 00:07:09,070 --> 00:07:12,790 и след това намерение е нещо, което ще използваме, когато искаме да започне 112 00:07:12,790 --> 00:07:17,210 нова дейност от сегашната ни дейност. 113 00:07:17,210 --> 00:07:20,980 >> Hello Android, това ще бъде един проект, който ние ще говорим за. 114 00:07:20,980 --> 00:07:25,410 Всъщност ще го направи за теб, а след това ние ще направим нещо, когато ние щракнете върху бутона 115 00:07:25,410 --> 00:07:27,650 с някакъв текст и да започне нова дейност. 116 00:07:27,650 --> 00:07:30,110 Много ясно, но аз искам да мине през 117 00:07:30,110 --> 00:07:34,480 това, което ще влезе в подобен проект. 118 00:07:34,480 --> 00:07:39,260 Когато направите нов проект ще видите в Eclipse 119 00:07:39,260 --> 00:07:41,900 има този проект, наречен Hello Android. 120 00:07:41,900 --> 00:07:43,470 След това има цял куп папки тук. 121 00:07:43,470 --> 00:07:46,760 Тези, които наистина се занимават с са източник папка, 122 00:07:46,760 --> 00:07:54,540 ресурса папка, ВЕИ, и до известна степен на LIBS папка за библиотеки. 123 00:07:54,540 --> 00:08:00,070 И също така, че сме на една и съща страница, че 124 00:08:00,070 --> 00:08:03,240 ако ви се налага да създадете нов проект, 125 00:08:03,240 --> 00:08:08,270 можете да направите това тук, така че, ако искате да го наречем HelloAndroid, 126 00:08:08,270 --> 00:08:11,100 и след това автоматично прави цял куп информация за нас. 127 00:08:11,100 --> 00:08:14,110 Името на пакета е трябвало да бъде уникален идентификатор 128 00:08:14,110 --> 00:08:16,710 които обикновено се свързва с уеб сайт, ако има такъв. 129 00:08:16,710 --> 00:08:24,430 >> Например, аз ще се обадя тази net.cs50.helloandroid. 130 00:08:24,430 --> 00:08:30,070 И аз вече са направили този проект веднъж. 131 00:08:30,070 --> 00:08:40,059 Добре, съжалявам. Нека го наречем HelloCS50. 132 00:08:40,059 --> 00:08:42,929 И тогава той ще поиска неща, като какъв вид икона искаме да се направи. 133 00:08:42,929 --> 00:08:48,840 Това е всичко, защото на Android Developer Tools интерфейс, 134 00:08:48,840 --> 00:08:53,350 плъгин, че ние добавен в Eclipse, така че можем да изберем такива неща 135 00:08:53,350 --> 00:08:58,320 какво икона искаме, и че ще отидат в тази дълбочина, ако искаме. 136 00:08:58,320 --> 00:09:04,360 Но в крайна сметка, просто направи проект, 137 00:09:04,360 --> 00:09:07,040 и всичко, което се появява точно тук. 138 00:09:07,040 --> 00:09:10,030 Както показа на друга преграда, 139 00:09:10,030 --> 00:09:14,070 имаме папката източник, и аз ще говоря за онова, всичко това означава най-скоро, 140 00:09:14,070 --> 00:09:19,090 но можете да видите, че веднага ни отвежда към екрана HelloCS50. 141 00:09:19,090 --> 00:09:24,690 Има някои бутони тук за добавяне на текст и текстово поле оформления. 142 00:09:24,690 --> 00:09:28,910 Това е нещо като Xcode, но за съжаление не е толкова опростена. 143 00:09:28,910 --> 00:09:37,790 Но клиповете ще бъде твой приятел и ADT по-специално за това. 144 00:09:37,790 --> 00:09:40,920 >> Добре, източникът папка е мястото, където 145 00:09:40,920 --> 00:09:43,820 на Java файлове се провеждат, и това всъщност е началото на вашата програма. 146 00:09:43,820 --> 00:09:45,990 Това е основно като контролерите. 147 00:09:45,990 --> 00:09:49,020 Ресурсът на папка или ВЕИ е мястото, където ние ще продължаваме екран оформления, 148 00:09:49,020 --> 00:09:54,110 изображения, звуци, текст, анимация и всичко останало, LIBS, очевидно, библиотеки. 149 00:09:54,110 --> 00:10:01,700 И Manifest, това е начинът, по който системата Android знае 150 00:10:01,700 --> 00:10:03,130 как да си взаимодействат с приложението си. 151 00:10:03,130 --> 00:10:07,980 Той я разказва за разрешения и какви дейности ще бъдат реално се изпълнява. 152 00:10:07,980 --> 00:10:12,350 Всичко това е основната информация, която е необходимо да стартирате приложението. 153 00:10:12,350 --> 00:10:17,990 Източникът папка е-ако го разшири, както можете да видите тук. 154 00:10:17,990 --> 00:10:23,920 И даде пример, че би изглеждала-това е по подразбиране код. 155 00:10:23,920 --> 00:10:27,930 Както го нарича, MainActivity. 156 00:10:27,930 --> 00:10:33,230 По подразбиране, ще получите onCreate, което е функция, която се нарича, когато тази дейност товар, 157 00:10:33,230 --> 00:10:37,150 така че искам да се обадя onCreate (savedInstanceState). 158 00:10:37,150 --> 00:10:40,440 Това ще възстанови всички битове информация 159 00:10:40,440 --> 00:10:44,910 В случай, че приложението е на пауза. 160 00:10:44,910 --> 00:10:48,790 >> Има цял диаграма дейност жизнен цикъл, които можете да погледнете 161 00:10:48,790 --> 00:10:50,380 когато се получи малко по-задълбочено в нея, 162 00:10:50,380 --> 00:10:56,210 Но най-важната линия на код има тази функция setContentView 163 00:10:56,210 --> 00:11:00,290 което ще зареди файла ресурс за оформление. 164 00:11:00,290 --> 00:11:03,590 Тогава какво onCreate тук е основно това е тя казва 165 00:11:03,590 --> 00:11:07,010 когато създавам тази дейност Искам да заредите това оформление. 166 00:11:07,010 --> 00:11:12,030 И ние ще говорим за това, че оформлението е в секунди. 167 00:11:12,030 --> 00:11:16,230 Ако трябваше да започне, че тук тя изглежда точно като този, 168 00:11:16,230 --> 00:11:22,880 и по подразбиране, защото сме затъмнение прави това и ADT го прави за нас 169 00:11:22,880 --> 00:11:28,210 всичко това е стереотипния код, който е създаден за нас, 170 00:11:28,210 --> 00:11:34,630 и можем да продължим нататък и да променят нещата, както ни харесва. 171 00:11:34,630 --> 00:11:38,190 Ресурсът на папката, както казах, това е мястото, където държим всички оформления, 172 00:11:38,190 --> 00:11:41,150 drawables по отношение на всякакъв вид изображения- 173 00:11:41,150 --> 00:11:46,360 те се наричат ​​drawables, а после звукови файлове, менюта. 174 00:11:46,360 --> 00:11:51,170 Това е начин на цял куп от XML в хубаво подредени мода. 175 00:11:51,170 --> 00:11:58,030 Както можете да видите, има. Hdpi, ldpi, MDPI и xhdpi папки за drawables. 176 00:11:58,030 --> 00:12:02,220 Това са различни плътности на екрана, така че Висока плътност на пикселите на инч, 177 00:12:02,220 --> 00:12:05,710 ниска плътност, средна плътност, много висока плътност. 178 00:12:05,710 --> 00:12:08,900 >> Това е, отново, за да можем да оказва подкрепа на всички тези различни устройства, 179 00:12:08,900 --> 00:12:15,100 и в идеалния случай, ще имат различни изображения за всяка различна резолюция. 180 00:12:15,100 --> 00:12:20,740 Layouts сме там, където са всички различни оформления, които ще бъдат използвани в различни дейности. 181 00:12:20,740 --> 00:12:24,150 Те биха могли да включват оформления за фрагменти, 182 00:12:24,150 --> 00:12:26,670 което означава, частични дейности основно. 183 00:12:26,670 --> 00:12:29,610 Ако искате да направите нещо готино като всеки път, когато завъртите телефона 184 00:12:29,610 --> 00:12:33,900 искате да има различно оформление можете да направите оформление-пейзаж, в друга папка, 185 00:12:33,900 --> 00:12:39,000 и Android автоматично има цял куп от тези правила в рамките на ресурса папка, 186 00:12:39,000 --> 00:12:44,690 така че ще знаете, за да търсите в различни папки по текущите настройки на телефона, 187 00:12:44,690 --> 00:12:46,740 какъв вид хардуер, който използвате. 188 00:12:46,740 --> 00:12:52,350 Аналогично, настоящата стойности-v11 тук и ценности-v14 189 00:12:52,350 --> 00:12:55,460 и стойностите по подразбиране папката това е за- 190 00:12:55,460 --> 00:13:01,730 Е, стойностите по себе си, това ще бъде стойностите по подразбиране във всички версии на операционната система. 191 00:13:01,730 --> 00:13:06,390 От друга страна, V11 и V14 съответства Honeycomb 192 00:13:06,390 --> 00:13:08,780 и Ice Cream Sandwich, съответно. 193 00:13:08,780 --> 00:13:12,800 Отново, това са начините, по които-в рамките на тези папки са различни струни 194 00:13:12,800 --> 00:13:17,550 и стилове, така че можете да настроите външния вид на приложението си 195 00:13:17,550 --> 00:13:22,660 или потенциално дори неговата функционалност, макар че вероятно би било лоша идея, 196 00:13:22,660 --> 00:13:25,890 на базата на версията на операционната система. 197 00:13:25,890 --> 00:13:28,760 >> И аз говорихме за всичко това тук. 198 00:13:28,760 --> 00:13:35,870 Отново рисуваемо, суровини, оформление, ценности. 199 00:13:35,870 --> 00:13:41,380 По подразбиране, ако отидем в Hello Hello Android или CS50 сега 200 00:13:41,380 --> 00:13:43,310 тя ще изглежда точно по този начин. 201 00:13:43,310 --> 00:13:45,800 Той ще каже здравей свят. 202 00:13:45,800 --> 00:13:58,430 Както можете да видите тук с текста Android 203 00:13:58,430 --> 00:14:04,420 текста за този текст изглед, който е основно само на етикета, 204 00:14:04,420 --> 00:14:06,900 е това, което ние бихме го наричат ​​в IOS. 205 00:14:06,900 --> 00:14:11,580 Той има тази забавна нотация @ низ / hello_world. 206 00:14:11,580 --> 00:14:16,200 Това е така, можем да-ние се опитваме да се извлекат всички струни, 207 00:14:16,200 --> 00:14:19,740 всички трудно кодирани струни в Android в отделна папка, 208 00:14:19,740 --> 00:14:23,610 който се случва да бъде в values.strings. 209 00:14:23,610 --> 00:14:29,300 Ако погледнем тук, можем да видим, че имаме твърд кодирани низ спасени тук 210 00:14:29,300 --> 00:14:33,910 за здравей свят, и тя се нарича здравей свят, и това е нещо като 211 00:14:33,910 --> 00:14:39,230 еднакъв дизайн решение в много платформи, които искате да- 212 00:14:39,230 --> 00:14:41,780 струни са вид неща, които искаме да потенциално да може да се промени. 213 00:14:41,780 --> 00:14:48,050 Ние не искаме да контролира F в нашия сорс в нашия XML. 214 00:14:48,050 --> 00:14:50,760 Ние искаме да бъдем в състояние да промени това всеки път, когато имат възможност. 215 00:14:50,760 --> 00:14:53,640 >> Този файл XML, strings.xml, е начин за извличане на 216 00:14:53,640 --> 00:14:56,710 трудно кодирани низове, които иначе биха били в нашите оформление ресурси 217 00:14:56,710 --> 00:15:03,530 или в нашия код. 218 00:15:03,530 --> 00:15:08,190 Манифестът е мястото, където ние продължаваме тази съществена информация за приложението. 219 00:15:08,190 --> 00:15:11,050 Тя включва името на пакета. Това трябва да е уникален идентификатор. 220 00:15:11,050 --> 00:15:16,020 За разлика от App Store за IOS имената на приложения 221 00:15:16,020 --> 00:15:19,980 не трябва да бъде уникален, а вие в действителност може да промените името на вашата кандидатура 222 00:15:19,980 --> 00:15:23,570 след като го представи, така че, ако се започне с Angry Birds, 223 00:15:23,570 --> 00:15:26,840 и след това I направим актуализация, и аз не искам да пусне нова версия 224 00:15:26,840 --> 00:15:34,230 Предполагам, че може да го наричат ​​Angry Birds 2, докато аз съм на същия цикъл освобождаване. 225 00:15:34,230 --> 00:15:36,780 Той просто се появи като актуализация. 226 00:15:36,780 --> 00:15:39,790 Единственото нещо, което трябва да бъде уникален е този пакет, име, 227 00:15:39,790 --> 00:15:41,280 който не много хора ще видят. 228 00:15:41,280 --> 00:15:44,680 Е, ще видите само ако търсите изходния код или ако има някаква грешка. 229 00:15:44,680 --> 00:15:47,580 Компонентите включват дейности, така че ние трябва да декларират 230 00:15:47,580 --> 00:15:49,070 каквато и да е дейност, ние използваме. 231 00:15:49,070 --> 00:15:53,430 Това е разрешение такива неща. 232 00:15:53,460 --> 00:15:58,150 >> Тъй като Android не разполага с тази строг процес на прилагане 233 00:15:58,150 --> 00:16:02,210 за подаване на приложения, вместо те просто правят всичко на базата на разстояние от разрешения 234 00:16:02,210 --> 00:16:04,300 и обявява неща в манифеста. 235 00:16:04,300 --> 00:16:06,380 Версията SDK също е важно. 236 00:16:06,380 --> 00:16:10,330 Ние можем да настроите употреба като нещо SDK минимална версия. 237 00:16:10,330 --> 00:16:16,010 Очевидно е, че искате да създадете код 238 00:16:16,010 --> 00:16:18,570 и дизайн за по-новите операционни системи. 239 00:16:18,570 --> 00:16:20,840 Може би не е най-новият, не може би Jelly Bean. 240 00:16:20,840 --> 00:16:23,610 Може би искате да проектирате предимно за Ice Cream Sandwich, 241 00:16:23,610 --> 00:16:27,120 въпреки че те са почти еднакви по отношение на дизайнерските решения 242 00:16:27,120 --> 00:16:30,550 и действителните библиотеки и API. 243 00:16:30,550 --> 00:16:36,250 Но вместо да има хора 244 00:16:36,250 --> 00:16:40,050 на първоначалната версия Android-подобен начин Donut назад, когато- 245 00:16:40,050 --> 00:16:43,420 , които все още се случи да се използва, че се опитват да изтеглите приложението и след това казват 246 00:16:43,420 --> 00:16:46,160 тя не работи на телефона си можете да зададете минимална версия 247 00:16:46,160 --> 00:16:48,620 и да го бъде Gingerbread или Ice Cream Sandwich 248 00:16:48,620 --> 00:16:53,300 или каквото и да се чувствате комфортно изпратили. 249 00:16:53,300 --> 00:16:57,170 И това е един пример на манифеста. Ние можем да погледнем в един действително след малко. 250 00:16:57,170 --> 00:17:00,900 >> Добре, ние просто ще върви напред с демо сега. 251 00:17:00,900 --> 00:17:08,900 Това е демо ако Google Android изгради своя първи апартамент или нещо подобно. 252 00:17:08,900 --> 00:17:12,089 Ще мине през всичко, което става там, 253 00:17:12,089 --> 00:17:17,690 и съжалявам, само за справка, който тук знае Java в някаква степен? 254 00:17:17,690 --> 00:17:28,310 Добре, така че Java е нов език за кодиране, за повечето хора, идващи от CS50. 255 00:17:28,310 --> 00:17:31,850 Накратко, за да премине отново това, което пише тук, 256 00:17:31,850 --> 00:17:35,580 това, което искаме да направим, е по-скоро, отколкото се коригира това здравей прилагането света 257 00:17:35,580 --> 00:17:38,620 че всичко, което прави е той стартира и то се казва здравей свят 258 00:17:38,620 --> 00:17:43,580 и то се казва здравей CS50 на върха, защото това е дейност име 259 00:17:43,580 --> 00:17:47,190 ние ще се опитаме да направим текстово поле и бутон 260 00:17:47,190 --> 00:17:50,680 така че когато натиснете този бутон, тя ще вземе текста 261 00:17:50,680 --> 00:17:53,660 от текстово поле и да започне нова дейност, и тя ще каже 262 00:17:53,660 --> 00:17:58,380 независимо, че текста се казва в дейността, а това е сравнително прост. 263 00:17:58,380 --> 00:18:00,650 Това не е много интересно. Може би не искате да се освободи всяко приложение, като тази. 264 00:18:00,650 --> 00:18:03,880 Но то показва някои важни неща, дизайн. 265 00:18:03,880 --> 00:18:07,030 >> Ние ще трябва да си взаимодействат с Манифест, с оформлението файлове, 266 00:18:07,030 --> 00:18:12,440 с изходния код, и можете да видите как да се започне една дейност в друга. 267 00:18:19,740 --> 00:18:23,060 Ще започнем с оформлението за първата ни дейност, 268 00:18:23,060 --> 00:18:27,320 което знам, че това е вид на малки, 269 00:18:27,320 --> 00:18:32,660 но както виждате в момента, всичко е е че има логото ни, че сме създали, 270 00:18:32,660 --> 00:18:36,310 дейността име, и то се казва здравей свят в центъра. 271 00:18:36,310 --> 00:18:40,400 Вместо това, аз съм първо ще направи това в линейни оформление, 272 00:18:40,400 --> 00:18:42,350 относителна оформление, а това са всички неща 273 00:18:42,350 --> 00:18:45,870 можете да погледнете нагоре и да са на стойност преминавате в някакъв момент от гледна точка на структурата. 274 00:18:45,870 --> 00:18:47,310 Това е много прилича на HTML. 275 00:18:47,310 --> 00:18:52,640 Ние казахме, че не е наистина си струва да знае по отношение на програмна смисъл, 276 00:18:52,640 --> 00:18:55,840 но има толкова много различни оформления можете да контролирате, 277 00:18:55,840 --> 00:18:57,970 и това е просто като CSS по отношение на стилове. 278 00:18:57,970 --> 00:19:01,590 >> Има много неща се случват само от гледна точка на естетиката тук, 279 00:19:01,590 --> 00:19:08,930 и да, това си струва живот, но това е от нещата, които трябва да погледнете 280 00:19:08,930 --> 00:19:11,810 както и да отидеш и да се чувстваш като имате нужда от нещо ново. 281 00:19:11,810 --> 00:19:17,030 Мога да се възползват от някои от ADT инструменти тук поне да започнем с. 282 00:19:17,030 --> 00:19:21,930 Ще направя текстово поле, и ще направя един бутон. 283 00:19:21,930 --> 00:19:24,100 Сложете ги в непосредствена близост един до друг. 284 00:19:24,100 --> 00:19:28,200 Те вече преоразмерите по подходящ начин. 285 00:19:28,200 --> 00:19:31,320 За съжаление, отново се върна на разликата между линейни оформление и относителната оформление, 286 00:19:31,320 --> 00:19:34,830 линейна оформление дава малко по-голяма функционалност 287 00:19:34,830 --> 00:19:38,720 от гледна точка на попълване пространство и като се уверите, 288 00:19:38,720 --> 00:19:42,790 ние позиция неща хоризонтално или вертикално. 289 00:19:42,790 --> 00:19:46,130 Голямата разлика между линейна оформление и относителна оформление 290 00:19:46,130 --> 00:19:50,250 е относителното разположение позиции всичко по отношение на други изгледи, 291 00:19:50,250 --> 00:19:52,630 и доброто нещо за него е, че е необходимо по-малко време да се направи 292 00:19:52,630 --> 00:19:56,120 защото операционната система изглежда изобщо кода и казва, че това отива 293 00:19:56,120 --> 00:19:58,270 в сравнение с това тук, тук. 294 00:19:58,270 --> 00:20:03,170 Това означава, че прави по-малко измервания, отколкото цял куп вложени линейни оформления, 295 00:20:03,170 --> 00:20:06,840 което аз ще трябва да направя, ако искам нещата да отидат вертикално тук. 296 00:20:06,840 --> 00:20:10,510 >> Вече имам някои неща ще хоризонтално, така че аз ще се нуждаят от различни линейни оформление 297 00:20:10,510 --> 00:20:14,560 да ги гнездо вертикално, но ако се опитваха относителен план мога да кажа, 298 00:20:14,560 --> 00:20:18,140 запази тази в ляво, тази в дясно и тези неща по-долу. 299 00:20:18,140 --> 00:20:21,850 Но тъй като аз искам да запълни точно сега аз ще използвам линеен оформление, 300 00:20:21,850 --> 00:20:24,510 и можете да видите, че вече прави много от тези неща за нас. 301 00:20:24,510 --> 00:20:28,890 Всички мнения трябва да са собственост на ширина и височина, 302 00:20:28,890 --> 00:20:33,410 и това се случва да има тегло от 1, и това е с тегло от 1 303 00:20:33,410 --> 00:20:36,050 така, че да запълва цялото пространство. 304 00:20:36,050 --> 00:20:38,460 Но ширината и височината са най-важни. 305 00:20:38,460 --> 00:20:45,880 Това ID областта точно тук не е важно в рамките на реалния оформление 306 00:20:45,880 --> 00:20:49,060 освен ако ние използваме относително оформление и да кажеш, че да позоваване 307 00:20:49,060 --> 00:20:52,990 един изглед позиция по отношение на друг. 308 00:20:52,990 --> 00:20:56,170 Ако ние, а относителният им оформление може да се каже това по-долу позиция на този 309 00:20:56,170 --> 00:20:59,390 или над това ID, но това ID ще бъде важно 310 00:20:59,390 --> 00:21:01,660 когато го използвате в нашия код, защото можем да позоваване 311 00:21:01,660 --> 00:21:05,610 тези индивидуални мнения по този начин. 312 00:21:05,610 --> 00:21:10,350 >> И тогава можете да видите requestFocus етикет, което е нещо, което вероятно вижда в PSET 7. 313 00:21:10,350 --> 00:21:15,370 Имаше един етикет автофокус или нещо подобно за едно от полетата. 314 00:21:15,370 --> 00:21:22,100 И едно нещо, което, разбира се, можем да направим, точно като в HTML, 315 00:21:22,100 --> 00:21:25,660 и забележете, един от най-хубави неща за ADT е, че тя autocompletes тук. 316 00:21:25,660 --> 00:21:29,930 Може би не е толкова добре, както го е направил в Xcode, но тя все пак, 317 00:21:29,930 --> 00:21:32,860 и можем да кажем, намек, а след това да му дадете някакъв низ 318 00:21:32,860 --> 00:21:37,070 като напишете съобщение, 319 00:21:37,070 --> 00:21:41,300 и ако аз я давам момент, също така да забележите, че се получи малко грешки тук 320 00:21:41,300 --> 00:21:44,610 казва, че ние трябва да използваме ресурс низ за това, 321 00:21:44,610 --> 00:21:48,820 Така че, ако аз го оставете да свърши някои от упорита работа за мен 322 00:21:48,820 --> 00:21:57,320 Мога да избера този низ, направете рефрактор Android и екстракт от Android низ. 323 00:21:57,320 --> 00:22:00,570 Мога да го даде това име, напишете съобщение, 324 00:22:00,570 --> 00:22:04,180 и за какво е сега е заменен толкова трудно кодирани низ 325 00:22:04,180 --> 00:22:07,980 с позоваване на низ инча файл низа базиран на XML, 326 00:22:07,980 --> 00:22:10,200 което означава, че сега това е тук. 327 00:22:10,200 --> 00:22:15,560 >> И знам, че изглежда малко тривиално и като допълнителна работа в този момент, 328 00:22:15,560 --> 00:22:17,840 но когато имаш един куп неща, цял куп струни, 329 00:22:17,840 --> 00:22:20,750 това е наистина важно, и по-специално за локализиране 330 00:22:20,750 --> 00:22:26,920 защото, както споменах по-рано, Android е много в световен мащаб използват операционната система 331 00:22:26,920 --> 00:22:35,950 , че можете просто да направите стойности-ен или стойности-SP 332 00:22:35,950 --> 00:22:44,320 или нещо за английски или испански или друг език. 333 00:22:44,320 --> 00:22:50,210 И тогава най-вероятно не са имали това преживяване още 334 00:22:50,210 --> 00:22:53,030 тъй като не сме направили много JavaScript от гледна точка на уеб програмиране, 335 00:22:53,030 --> 00:22:56,850 но ние можем да направим това поле, наречено OnClick на бутона, 336 00:22:56,850 --> 00:23:02,350 и това е начин на съотнасяне в нашата оформление 337 00:23:02,350 --> 00:23:06,570 че искаме определена функция да се нарича в нашия код. 338 00:23:06,570 --> 00:23:09,420 Аз ще се обадя на този SendMessage, 339 00:23:09,420 --> 00:23:13,390 и за да се направи тази работа това означава, че в основната дейност тук 340 00:23:13,390 --> 00:23:19,180 Ще трябва да се създаде функция, която е публично 341 00:23:19,180 --> 00:23:22,250 , така че да могат да бъдат достъпни от оформление. 342 00:23:22,250 --> 00:23:25,930 Това е нищожен, защото просто не искам това да се върне нищо. 343 00:23:25,930 --> 00:23:37,760 Ще го наречем SendMessage и отнема оглед, 344 00:23:37,760 --> 00:23:43,690 която е нещо като връзка, че ние можем да закотвят този метод 345 00:23:43,690 --> 00:23:47,160 към това лице изглед, когато сме го изпълняват. 346 00:23:47,160 --> 00:23:50,090 >> И аз не знам дали сте забелязали-добре, може би не сте забелязали, 347 00:23:50,090 --> 00:24:02,370 но на този етап тук 348 00:24:02,370 --> 00:24:06,930 тази гледна точка е вид, който все още не е включена, 349 00:24:06,930 --> 00:24:10,630 и разбира се, всички знаете от CS50 за да не се включи видове. 350 00:24:10,630 --> 00:24:13,120 Хубавото като Eclipse IDE е, че 351 00:24:13,120 --> 00:24:17,520 ако сте пропуснали да включва типа, който ще подчертае с малка червена вълнообразна 352 00:24:17,520 --> 00:24:19,680 и след това ви даде възможност да внасят на гледката. 353 00:24:19,680 --> 00:24:23,130 Един бърз начин за това е контрол на смяната O, и тя ще импортира 354 00:24:23,130 --> 00:24:27,070 всички файлове, които са му необходими за да. 355 00:24:27,070 --> 00:24:33,670 Сега, когато имаме тази функция SendMessage, 356 00:24:33,670 --> 00:24:46,560 който ще прати съобщение от MainActivity за нова дейност, 357 00:24:46,560 --> 00:24:55,230 ние ще трябва да се използва намерение за започване на нова дейност, от това, 358 00:24:55,230 --> 00:25:02,240 така че ние вероятно ще искате да се създаде глобална постоянен или също особено обществена постоянно 359 00:25:02,240 --> 00:25:06,240 че ще ни помогне да знаем как ще указването на низ 360 00:25:06,240 --> 00:25:09,090 защото, когато ние създаваме намерение не сме просто свикване на нова дейност, 361 00:25:09,090 --> 00:25:11,520 но ние можем да му се даде набор от информация. 362 00:25:11,520 --> 00:25:14,720 A пакет всъщност е термин, който се използва Android, 363 00:25:14,720 --> 00:25:21,470 и това е начин да се каже, е допълнителни данни, които не могат да бъдат от един много сложен тип данни, 364 00:25:21,470 --> 00:25:24,510 но определено можем да включват булеви или низове или интеджър. 365 00:25:24,510 --> 00:25:29,750 Такива неща. 366 00:25:29,750 --> 00:25:34,230 >> Чувствайте се свободни да попитам за някоя от тези квалификации тук, 367 00:25:34,230 --> 00:25:36,900 обществеността, окончателен, статично. 368 00:25:36,900 --> 00:25:38,610 Public е важна. 369 00:25:38,610 --> 00:25:47,090 Това означава, че ние можем да достъп до тази променлива от други файлове с изходен код 370 00:25:47,090 --> 00:25:49,590 като например, когато ние създаваме една нова дейност. 371 00:25:49,590 --> 00:25:52,190 Ние да позоваване на низ в този файл. 372 00:25:52,190 --> 00:25:57,160 Ако това е лично, това означава, че е ограничен до това лице файл тук. 373 00:25:57,160 --> 00:26:02,430 Но ние ще наричаме това нещо като допълнително съобщение. 374 00:26:16,260 --> 00:26:23,300 Сега сме направили тази функция и ако щракнете върху бутона, тази функция ще се нарича. 375 00:26:23,300 --> 00:26:27,970 Но ние не сме направили нищо, очевидно, с функцията. 376 00:26:27,970 --> 00:26:33,130 Това, което искаме да направим, е да се създаде една нова дейност, 377 00:26:33,130 --> 00:26:35,350 дейността, която действително ще бъде пуснат. 378 00:26:35,350 --> 00:26:44,330 В Eclipse можем да кажем, нов, Android дейност, празно дейност. 379 00:26:44,330 --> 00:26:46,530 Ние можем да му се даде име. 380 00:26:46,530 --> 00:26:57,050 Нека го наречем нашия резултат активност. 381 00:26:57,050 --> 00:27:04,430 И тогава тази йерархична областта майка е начин на определяне 382 00:27:04,430 --> 00:27:08,180 как дейности са свързани един с друг. 383 00:27:08,180 --> 00:27:11,020 Защото това ще бъде стартиран от друга дейност 384 00:27:11,020 --> 00:27:27,520 ние трябва да се уточни, че тя е майка основна дейност. 385 00:27:27,520 --> 00:27:31,220 >> И аз можех да кликне върху следващото поле там, които биха ни каза, 386 00:27:31,220 --> 00:27:33,830 някои допълнителни полета, които също така е, включително, 387 00:27:33,830 --> 00:27:38,800 но хубавото ADT, отново, е, че ако аз превъртете надолу тук 388 00:27:38,800 --> 00:27:45,740 в манифеста не забравяйте, че всичко това наистина е включена по подразбиране 389 00:27:45,740 --> 00:27:48,930 когато първоначално е създаден по проекта, 390 00:27:48,930 --> 00:27:53,090 и сега, защото ние използвахме този създадете нова дейност, а не само 391 00:27:53,090 --> 00:27:58,610 добавяне на нашата собствена клас файл, защото минахме през тяхната GUI за този начин 392 00:27:58,610 --> 00:28:01,930 тя вече е добавен всичко това с Манифест за нас, 393 00:28:01,930 --> 00:28:06,020 което просто означава, че сега на операционната система няма да се оплакват 394 00:28:06,020 --> 00:28:09,400 когато се опитваме да започне тази дейност. 395 00:28:09,400 --> 00:28:14,620 И също така, разбира се, даде етикет, който също се появява в низове. 396 00:28:14,620 --> 00:28:17,340 Той прави много неща на гърба си край за нас. 397 00:28:17,340 --> 00:28:20,140 Както и да е, сега, когато имаме този резултат дейност, както и, 398 00:28:20,140 --> 00:28:23,810 действителната сорс в папката източник, 399 00:28:23,810 --> 00:28:33,540 и можете да видите-накратко да засегна този- 400 00:28:33,540 --> 00:28:37,790 защото ни разказа за тази йерархична майка 401 00:28:37,790 --> 00:28:46,640 я даде тази област android.r.ide.home в тази onOption избрания нещо. 402 00:28:46,640 --> 00:28:49,020 >> Това, което основно се казва, е, че има меню бутона сега 403 00:28:49,020 --> 00:28:53,110 че в горния ляв ъгъл на екрана 404 00:28:53,110 --> 00:29:02,220 ако се върна към PowerPoint, където за първи път се говори за действие бар 405 00:29:02,220 --> 00:29:05,380 поради йерархичната майка сега има малка стрелка тук 406 00:29:05,380 --> 00:29:10,610 и това е кликва затова трябва да бъдем в състояние да-след като ние всъщност работи това приложение- 407 00:29:10,610 --> 00:29:15,360 се върна, и това е начин за спестяване на нас малко код там. 408 00:29:26,220 --> 00:29:40,180 Сега в рамките на този-и, изглежда, да се оплакват, че за момент. 409 00:29:40,180 --> 00:29:43,910 Нека да коментирам това. 410 00:29:43,910 --> 00:29:48,260 Сега, за да се действително взаимодействат с тези две дейности, 411 00:29:48,260 --> 00:29:55,020 ние трябва да създадем намерение, което включва всички тези данни. 412 00:29:55,020 --> 00:29:58,950 В SendMessage сега аз ще преминете през някои бита на код 413 00:29:58,950 --> 00:30:00,700 и обясни, че като отида. 414 00:30:00,700 --> 00:30:06,280 Намерение, както казах, е начин да се започне една дейност в друга. 415 00:30:06,280 --> 00:30:10,000 Intent е тип. Ние създаваме променлива myIntent. 416 00:30:10,000 --> 00:30:13,980 >> И това всъщност е един обект, който е защо трябва да се обадя на нов. 417 00:30:13,980 --> 00:30:18,500 Това е обща Java използване там, което може да отнеме малко време за опознаване. 418 00:30:18,500 --> 00:30:23,900 Това означава, че използваме на дейността или MainActivity клас, 419 00:30:23,900 --> 00:30:28,630 и намерения по този начин отнема дейността, че ще от 420 00:30:28,630 --> 00:30:36,060 и дейността, че ще, което ние наричаме ResultActivity, 421 00:30:36,060 --> 00:30:38,170 и че е неговата собствена класа. 422 00:30:38,170 --> 00:30:41,720 Включи това. 423 00:30:41,720 --> 00:30:47,370 И тогава, както споменах и преди, ние дадохме, че ID в текстовото поле редактиране 424 00:30:47,370 --> 00:30:53,710 и гледката текст, така че, за да се улови програмно 425 00:30:53,710 --> 00:31:01,860 текста, който съществува в editText 426 00:31:01,860 --> 00:31:06,710 ние използваме тази функция, наречена findViewByID, 427 00:31:06,710 --> 00:31:13,660 което е подобно на нещо, което ще използвате, когато се опитвате да получите полета от DOM. 428 00:31:13,660 --> 00:31:17,560 Може би Давид говори за това в лекцията. 429 00:31:17,560 --> 00:31:26,600 Но това е само начин за получаване на тези, затова маркирам тези неща с тези области. 430 00:31:26,600 --> 00:31:31,110 Id.editText1. 431 00:31:31,110 --> 00:31:35,220 Той вече autocompleting за мен там. 432 00:31:35,220 --> 00:31:42,010 >> И тогава ние също така ще включват-това editText сега, че ние имаме областта 433 00:31:42,010 --> 00:31:47,640 в рамките на нашата програма, всичко, което направих беше основно findViewByID 434 00:31:47,640 --> 00:31:50,870 можете да мислите за него като ни даде препратка към този editText. 435 00:31:50,870 --> 00:31:54,570 Сега искаме да получите низ или съобщение 436 00:31:54,570 --> 00:32:00,670 в рамките на този editText които можем да направим с помощта на- 437 00:32:00,670 --> 00:32:03,360 може да ви хрумне editText като структура- 438 00:32:03,360 --> 00:32:07,600 ние го наричаме обект в Java-с цял куп различни методи 439 00:32:07,600 --> 00:32:10,650 или полета и атрибути, свързани с него. 440 00:32:10,650 --> 00:32:15,510 Когато казвам editText. това ми дава възможност за достъп до 441 00:32:15,510 --> 00:32:19,770 метод, като GetText, който ще получите като сегашният текст 442 00:32:19,770 --> 00:32:23,990 в тази editText и след това преобразуване, които изрично 443 00:32:23,990 --> 00:32:26,520 в низ, и ние сме спасени съобщението. 444 00:32:26,520 --> 00:32:32,730 Сега ние всъщност искам да направя нещо с това намерение ние създадохме само преди няколко минути. 445 00:32:32,730 --> 00:32:40,250 Аз ще поставя допълнително както се нарича в намерение, 446 00:32:40,250 --> 00:32:43,330 което, отново, както казах и преди, това е начин за създаване на пакет 447 00:32:43,330 --> 00:32:45,980 с цял куп данни. 448 00:32:45,980 --> 00:32:50,920 Extra съобщение е нашият етикет така че ние знаем какво спестяване този под, 449 00:32:50,920 --> 00:32:56,700 и тогава аз съм включително съобщението. 450 00:32:56,700 --> 00:33:04,870 >> И тогава ние действително може да започне дейност чрез предоставяне на параметъра myIntent. 451 00:33:04,870 --> 00:33:10,630 И това действително ще започне дейността, така и сега, тъй като аз обновен до Windows 8 452 00:33:10,630 --> 00:33:15,870 може да има някои грешки, които се появяват за кратко, но се опитват да ги игнорира. 453 00:33:28,010 --> 00:33:30,310 И това е Android емулатор. 454 00:33:30,310 --> 00:33:33,540 Надяваме кода действително ще изскочи в един миг. 455 00:33:33,540 --> 00:33:36,680 Отново, игнорирайки всички тези малки неща. 456 00:33:36,680 --> 00:33:42,290 Но емулатор Android можете да подражават всички версии на операционната система 457 00:33:42,290 --> 00:33:45,180 от най-ранните от тях, Donut, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 Това е Jelly Bean 4.1. 459 00:33:49,640 --> 00:33:53,150 Но както виждате в момента, това е нещо, което направихме. 460 00:33:53,150 --> 00:33:55,780 Това има MainActivity, на editText, бутона. 461 00:33:55,780 --> 00:34:01,550 Мога да объркате нещо тук, но това, което пропускаме в този момент? 462 00:34:01,550 --> 00:34:05,190 Направихме полето в MainActivity, че ще изпрати съобщението 463 00:34:05,190 --> 00:34:08,570 с друга дейност, но на този етап 464 00:34:08,570 --> 00:34:12,330 че не сме направили нищо в друга дейност, така че няма да получат нищо. 465 00:34:12,330 --> 00:34:18,800 Нека да довърша тази част преди да преминем. 466 00:34:18,800 --> 00:34:25,760 >> Този резултат дейност, това, което ще трябва да направите, е, че ще трябва да направите, е, че ние ще трябва да се- 467 00:34:25,760 --> 00:34:30,070 ние също може да препращат към намерения в тази дейност, 468 00:34:30,070 --> 00:34:33,580 така че ние трябва да улови намерение, което е много проста. 469 00:34:33,580 --> 00:34:40,780 Това е функция, включени в дейността клас, 470 00:34:40,780 --> 00:34:47,610 така че можем да кажем, "Get съобщението от намерения." 471 00:34:47,610 --> 00:34:56,260 "Intent myIntent = getIntent." 472 00:34:56,260 --> 00:35:00,030 И това ще даде на нас-сега myIntent е обект, 473 00:35:00,030 --> 00:35:05,380 което е препратка към целта, която ни доведе до тази дейност. 474 00:35:05,380 --> 00:35:10,130 MainActivity обажда и дава допълнителна информация, за да доведе до активност. 475 00:35:10,130 --> 00:35:14,070 Резултати дейност сега гледа на намерението, че това доведе тук, 476 00:35:14,070 --> 00:35:23,540 и ние можем да получите достъп до съобщение, което сме създали в другата, 477 00:35:23,540 --> 00:35:26,370 getStringExtra, и това ще автоматичното попълване за мен. 478 00:35:26,370 --> 00:35:31,190 И след това не забравяйте, начина, по който сложи етикет, че малко на данни 479 00:35:31,190 --> 00:35:38,400 е, като му дава тази област тук, това обществено низ, 480 00:35:38,400 --> 00:35:42,080 която е маркер за низ ние реално се включват. 481 00:35:42,080 --> 00:35:48,450 >> Ако кажа MainActivity.Extra_Message 482 00:35:48,450 --> 00:35:52,200 това е точно там, а това е нещо като името на параметъра 483 00:35:52,200 --> 00:35:55,330 когато минахме код от контролера към шаблона, 484 00:35:55,330 --> 00:35:57,680 когато бихме казали нещо стрелката заглавие. 485 00:35:57,680 --> 00:36:01,140 Това е същото нещо като идеята там. 486 00:36:01,140 --> 00:36:07,130 Сега, не забравяйте това. 487 00:36:07,130 --> 00:36:12,230 Ние също имахме този автомобил е създаден или автоматично генериран код 488 00:36:12,230 --> 00:36:16,410 Резултати дейност, която включва текста изглед в центъра 489 00:36:16,410 --> 00:36:19,690 който казва здравей свят. 490 00:36:19,690 --> 00:36:27,510 Ние може потенциално да направи това по-голям. 491 00:36:27,510 --> 00:36:33,980 Да го направим първи. 492 00:36:33,980 --> 00:36:39,550 Бихме могли да направим това плътност 40 независими пиксела. 493 00:36:39,550 --> 00:36:42,670 Нека да видим, че е супер огромен. Това ще бъде наред. 494 00:36:42,670 --> 00:36:48,180 И тогава, за да упоменете отделно показване на текст в нашия код 495 00:36:48,180 --> 00:36:53,890 ние ще трябва да го даде ID, 496 00:36:53,890 --> 00:36:58,350 и за да се направи това казваме @ + ID, което означава, че тя възлага ID. 497 00:36:58,350 --> 00:37:02,480 Ако току-що каза @ ID ще приемем, че сте съотнасяне на ID, което вече съществува, 498 00:37:02,480 --> 00:37:07,760 и нека наречем това ни resultTextView. 499 00:37:07,760 --> 00:37:10,570 И забележи, че в XML няма нужда за точка и запетая или нещо подобно. 500 00:37:10,570 --> 00:37:12,380 Всичко е в рамките на тези тагове. 501 00:37:12,380 --> 00:37:15,530 Това е много подобен на HTML в много сетива. 502 00:37:15,530 --> 00:37:22,760 >> Това отнема малко време за опознаване, но в крайна сметка вие ще се чувствате доста комфортно с него. 503 00:37:22,760 --> 00:37:31,320 Да се ​​актуализира текста за нас резултат текст, 504 00:37:31,320 --> 00:37:35,650 и както направихме, когато бяхме се, че текстът редактиране поле в друго нашата дейност 505 00:37:35,650 --> 00:37:46,630 в MainActivity тук ние също ще също- 506 00:37:46,630 --> 00:37:54,890 ще намерим изглед от ID. 507 00:37:54,890 --> 00:37:59,640 И R, в случай, че не се споменава това и преди, е споменаването на ресурси папка, 508 00:37:59,640 --> 00:38:05,350 и след това ID е препратка към всичко в папката ресурси, всички документи за самоличност, 509 00:38:05,350 --> 00:38:10,060 и resultTextView. 510 00:38:10,060 --> 00:38:13,010 И както преди, resultTextView е обект, 511 00:38:13,010 --> 00:38:15,780 което означава, че има всички тези свойства, свързани с него. 512 00:38:15,780 --> 00:38:20,610 Когато използваме GetText за редактиране на текст за това текстово поле или вижте текста 513 00:38:20,610 --> 00:38:23,980 всъщност може да използвате setText, 514 00:38:23,980 --> 00:38:26,960 и тогава ние вече намери съобщение от намерение, 515 00:38:26,960 --> 00:38:35,760 така мога да кажа, съобщение, и това действително ще зададете съобщение. 516 00:38:35,760 --> 00:38:41,820 >> Това, отделете малко време да започне, а след това можем да видим, дали или не забие, 517 00:38:41,820 --> 00:38:48,670 но някакви въпроси относно този процес, точно там, този вид взаимодействие? 518 00:38:48,670 --> 00:38:51,490 В много отношения това е ясно. 519 00:38:51,490 --> 00:38:53,960 Причината че минавам през нещо сравнително прост 520 00:38:53,960 --> 00:38:57,330 е, отново, защото можеш да видиш на взаимодействието между оформление, 521 00:38:57,330 --> 00:38:59,520 изходния код, как си модели неща 522 00:38:59,520 --> 00:39:07,680 и може би се получи малко излагане на Java как работи там. 523 00:39:07,680 --> 00:39:16,500 Ако аз всъщност объркате нещо тук, като Ohai, а след това щракнете върху бутона, 524 00:39:16,500 --> 00:39:22,260 тя започва нова дейност, както и че текстът оглед казва Ohai. 525 00:39:22,260 --> 00:39:27,640 Това е много проста, но да се надяваме, че след като пример 526 00:39:27,640 --> 00:39:32,310 ти нещо да видим как това взаимодействие работи, и сега, че бъркотията на файлове 527 00:39:32,310 --> 00:39:36,870 от лявата страна на всички тези проектни папки, да се надяваме, че знаете къде да гледам сега. 528 00:39:36,870 --> 00:39:38,700 Това е вашия район изходния код. 529 00:39:38,700 --> 00:39:41,760 >> Layout наистина е единственото нещо, което ще се справят с, докато не включват изображения 530 00:39:41,760 --> 00:39:46,370 и drawables или каквото и ценности, които ще включват струни, 531 00:39:46,370 --> 00:39:51,960 както споменахме, и след това стилове е нещо, което е нещо като CSS. 532 00:39:51,960 --> 00:39:56,410 Адрес него, когато си искаш, но докато не се чувстват комфортно с добавяне на допълнително нюх 533 00:39:56,410 --> 00:40:02,520 за кандидатурата Ви, че няма нужда да се притеснявате твърде много за това. 534 00:40:02,520 --> 00:40:07,410 Само да приключи едно друго нещо, вие определено ще искате да включите- 535 00:40:07,410 --> 00:40:13,010 Ако приемем, че искате да интегрирате готини функции и да си спестите някои допълнителни кодиране- 536 00:40:13,010 --> 00:40:16,460 би било да се включат трети страни библиотеки. 537 00:40:16,460 --> 00:40:19,840 Ето и малко момче Android с Шерлок Холмс шапка. 538 00:40:19,840 --> 00:40:23,040 Това е действие, бар Шерлок библиотека, 539 00:40:23,040 --> 00:40:25,390 което означава, че действията бар видяхте по-рано, 540 00:40:25,390 --> 00:40:29,590 която сега е стандарт в Ice Cream Sandwich и Jelly Bean, 541 00:40:29,590 --> 00:40:33,100 Ако искате да се въвеждат такива потребителски опит на потребителите на по-стари версии 542 00:40:33,100 --> 00:40:39,290 и да се спаси от притеснявате за това как потребителят се ще да се движите 543 00:40:39,290 --> 00:40:42,490 на по-стари версии, когато това нещо не е там, можете да включите тази библиотека 544 00:40:42,490 --> 00:40:46,770 и след това просто трябва да се справка-а не на Android по подразбиране 545 00:40:46,770 --> 00:40:50,250 библиотеки за действие бар, можете упоменете библиотека подкрепа. 546 00:40:50,250 --> 00:40:53,090 >> Неща като Scoreloop, това е чудесно, ако ти започваш да се включват игра. 547 00:40:53,090 --> 00:40:57,280 Тя ви позволява да добавите лидер дъски и постижения за игри. 548 00:40:57,280 --> 00:41:00,900 AdMob е начин за поставяне реклами в своите приложения 549 00:41:00,900 --> 00:41:02,900 В случай, че искате да направите малко пари от него. 550 00:41:02,900 --> 00:41:05,730 Разбира се, има Facebook и Twitter за интегриране има 551 00:41:05,730 --> 00:41:08,170 ако искате да споделяте неща, лесно, и така нататък. 552 00:41:08,170 --> 00:41:15,120 Dropbox, също така, и Google Analytics е, че графиката търсите никой. 553 00:41:15,120 --> 00:41:19,070 Това ще бъде много важно, ако искате да видите кой е взаимодействие 554 00:41:19,070 --> 00:41:25,800 с приложението си или който и да е, как те си взаимодействат, и така нататък. 555 00:41:25,800 --> 00:41:30,650 Google, по подразбиране, ви казва много статистически данни за това кой е инсталирал приложението си 556 00:41:30,650 --> 00:41:35,020 и какви телефони имат, каква операционна система версии, които имат. 557 00:41:35,020 --> 00:41:38,080 Но ако искате да видите кой е да го използвате на дневна база и как те го използват 558 00:41:38,080 --> 00:41:42,860 тогава вие ще искате да включите някакъв вид система за проследяване подобно. 559 00:41:42,860 --> 00:41:44,990 >> Когато сте готови да разпространявате приложението си 560 00:41:44,990 --> 00:41:46,930 Не ми трябва да отиде в, че в твърде много дълбочина. 561 00:41:46,930 --> 00:41:49,090 Кликнете върху линка тук, Google Пусни. 562 00:41:49,090 --> 00:41:51,080 Той използва за да бъде на пазара Android. 563 00:41:51,080 --> 00:41:53,470 Те пребоядисаха всичко с изпълнение на Google, 564 00:41:53,470 --> 00:41:55,230 така че сега представя това. 565 00:41:55,230 --> 00:41:57,140 Това е много прост. 566 00:41:57,140 --> 00:42:01,070 Вие трябва да включва описание, някои снимки на екрани. 567 00:42:01,070 --> 00:42:05,660 Както казах, няма процес на одобрение като IOS. 568 00:42:05,660 --> 00:42:07,270 И къде да отида от тук? 569 00:42:07,270 --> 00:42:09,450 Аз ви показах наистина прост пример. 570 00:42:09,450 --> 00:42:13,270 Надяваме се, ако изглежда ужасно прост 571 00:42:13,270 --> 00:42:15,740 тогава това е може би е добър знак. 572 00:42:15,740 --> 00:42:20,080 Ако изобщо чувствах малко объркани или несигурни какво точно пишеше 573 00:42:20,080 --> 00:42:26,160 че това също е добре, но от тук отидете Guides Google. 574 00:42:26,160 --> 00:42:28,330 Това е страхотно място да започнете. 575 00:42:28,330 --> 00:42:31,460 Тя ще ви говори чрез това, което те очакват от гледна точка на дизайна на приложенията, 576 00:42:31,460 --> 00:42:33,380 как потребителите обикновено взаимодействат с него. 577 00:42:33,380 --> 00:42:36,450 Това е много по-свободна форма от IOS, бих казал, 578 00:42:36,450 --> 00:42:41,330 които тя изглежда като трапезни възгледи са-Не знам, това е тяхната прехрана. 579 00:42:41,330 --> 00:42:44,690 Всичко е таблица, изглед плъзгане нагоре и надолу. 580 00:42:44,690 --> 00:42:48,160 С Android те определено насърчават хората да го погледнете от 581 00:42:48,160 --> 00:42:51,720 цял куп от различни гледни точки. 582 00:42:51,720 --> 00:42:56,000 >> Когато включите комплекта за разработка на софтуер в тази ADT 583 00:42:56,000 --> 00:43:03,010 по подразбиране имате цял куп примерни проекти в Android. 584 00:43:03,010 --> 00:43:05,470 Точно тук, Android, Android примерни проекти. 585 00:43:05,470 --> 00:43:11,870 Ако кликнете върху това, тогава може да изберете вариант, за който от пробата проекти прилагат. 586 00:43:11,870 --> 00:43:13,300 Има цял куп различни неща тук. 587 00:43:13,300 --> 00:43:16,690 То започва със съвместимостта действие бар, 588 00:43:16,690 --> 00:43:24,610 акселерометър игра, архивиране и възстановяване, Bluetooth, строител жест. 589 00:43:24,610 --> 00:43:28,930 JetBoy е извадка игра те ни дават, както е LunarLander. 590 00:43:28,930 --> 00:43:31,250 Има цял куп примерни приложения тук, 591 00:43:31,250 --> 00:43:35,290 и всички те са насочени към различни аспекти на API на Android, 592 00:43:35,290 --> 00:43:41,520 и идеята е, че като направите вашата кандидатура 593 00:43:41,520 --> 00:43:44,110 не е нужно да научите всичко за Android да се направи един апартамент Android. 594 00:43:44,110 --> 00:43:47,300 Трябва само да се запознаят с частите, които вие всъщност ще използвате. 595 00:43:47,300 --> 00:43:49,340 Вижте тези примерни библиотеки. 596 00:43:49,340 --> 00:43:51,510 Чувствайте се свободни да копирате и поставите кода и да го приложи отново. 597 00:43:51,510 --> 00:43:53,850 Това е голямо нещо да погледнете по-трудно код 598 00:43:53,850 --> 00:43:57,060 и се опитват да го разберат, което, разбира се защо в CS50 599 00:43:57,060 --> 00:44:01,510 ние често ви дават големи суми на програмния код. 600 00:44:01,510 --> 00:44:04,620 Вижте някои от тях, ако ти започваш да се използват подобни библиотеки 601 00:44:04,620 --> 00:44:08,630 и след това да го прилага по отношение на собствения си код. 602 00:44:08,630 --> 00:44:10,430 И разбира се, има уроци. 603 00:44:10,430 --> 00:44:12,690 Търсене за уроци. 604 00:44:12,690 --> 00:44:17,020 Намерих много добри онлайн, което може да ви донесе до скорост 605 00:44:17,020 --> 00:44:20,080 с това, което наистина са фрагменти и как можете да ги използвате. 606 00:44:20,080 --> 00:44:22,240 >> Някои от тези нови неща дизайн, като фрагменти, 607 00:44:22,240 --> 00:44:26,840 наистина не е нужно да се притеснявате за ако не сте прави 608 00:44:26,840 --> 00:44:30,560 доста голяма в обхвата на проекта. 609 00:44:30,560 --> 00:44:32,510 Те са неща, които Google се опитва постепенно да инча 610 00:44:32,510 --> 00:44:35,570 Stackoverflow е разбира се ти приятел. 611 00:44:35,570 --> 00:44:37,930 Надявам се, че сте продали малко на Android, 612 00:44:37,930 --> 00:44:41,640 осъзнават, че е много по-лесно да се подходи от гледна точка на само на кодиране език. 613 00:44:41,640 --> 00:44:45,970 Java е бих казал, че много по-лесно да се разбере от Objective-C. 614 00:44:45,970 --> 00:44:50,780 Android расте мисля много повече от IOS. 615 00:44:50,780 --> 00:44:54,890 Искам да кажа, данните са там, освен това, което мисля. 616 00:44:54,890 --> 00:44:56,920 Това ще бъде около за известно време, 617 00:44:56,920 --> 00:45:00,880 и те са няколко години назад по отношение на тяхното проектиране цикли, 618 00:45:00,880 --> 00:45:04,690 така че това е нещо разбираемо, че те все още работим по някои от тях 619 00:45:04,690 --> 00:45:09,080 последователност въпроси, като това действие барът е нещо ново за тях все още, 620 00:45:09,080 --> 00:45:16,010 сортиране на създаване подобен на потребителите с всичките им приложения. 621 00:45:16,010 --> 00:45:20,650 Надяваме се, може да продължи напред и да се отворят Eclipse 622 00:45:20,650 --> 00:45:22,870 и да направите свои собствени приложения Android. 623 00:45:22,870 --> 00:45:30,240 >> Дали някой има някакви въпроси, преди да приключи всичко? 624 00:45:30,240 --> 00:45:34,410 Мога да ви кажа, че отговорът е 42. 625 00:45:34,410 --> 00:45:41,990 Е, щастлив кодиране на всички, и на добър час. 626 00:45:41,990 --> 00:45:44,990 [CS50.TV]