1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Семинар] [Андроид апликации (Сега со Желе Грав!)] 2 00:00:02,610 --> 00:00:04,210 [Јордан Jozwiak] [Универзитетот Харвард] 3 00:00:04,210 --> 00:00:06,780 [Ова е CS50.] [CS50.TV] 4 00:00:06,780 --> 00:00:11,600 >> Здраво на сите, и добредојде на Андроид апликации (Сега со Желе Грав!) Семинар. 5 00:00:11,600 --> 00:00:14,530 Таа се вика Сега со Желе Грав, се разбира, затоа што 6 00:00:14,530 --> 00:00:17,310 најновата верзија на оперативниот систем се нарекува Желе Грав. 7 00:00:17,310 --> 00:00:22,950 Кога ми зборуваше за Андроид минатата година и го направи ова во основа иста семинар 8 00:00:22,950 --> 00:00:29,150 Бев презентирање на шеми на дизајн и стилски избор за Gingerbread, 9 00:00:29,150 --> 00:00:31,250 иако Сладолед Сендвич излегоа во тоа време, 10 00:00:31,250 --> 00:00:33,680 и ова е нешто што ние ќе зборуваме за одење напред малку. 11 00:00:33,680 --> 00:00:35,720 Андроид, се разбира, има некои проблеми со фрагментација, 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 Андроид е многу подобро отколку iOS. 16 00:00:53,000 --> 00:00:56,410 Океј, ние ќе зборуваме за Андроид наспроти 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, па Јава е веќе нема да биде 24 00:01:22,100 --> 00:01:27,220 поинаква перспектива, и на овој начин ќе Засукајте ги ракавите 25 00:01:27,220 --> 00:01:31,540 и се чувствуваат малку повеќе удобно со него се надевам. 26 00:01:31,540 --> 00:01:35,330 А брз преглед, Андроид наспроти iOS. 27 00:01:35,330 --> 00:01:39,200 Во Андроид, тука е тоа едно време инвеститорот такса од $ 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 Прозорци, или некои Линукс машина. 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 ти си веројатно со поголема веројатност да имаат корист од Андроид. 39 00:02:17,450 --> 00:02:20,630 >> И едно нешто што е отсекогаш бил познат за Андроид 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 Андроид е многу слободна форма, и има толку многу повеќе можности. 44 00:02:40,180 --> 00:02:42,530 Океј, некои дизајн парадигми. 45 00:02:42,530 --> 00:02:49,600 Забележи само како iOS има таблети и iPhone и iPod допира 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 многу различни телефони со различни хардверски работи Андроид сите во исто време, 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 на дното е Желе Грав, кој излезе во текот на летото, 58 00:03:39,330 --> 00:03:42,970 и може да се види токму сега веројатно околу 2% од телефони го имаат. 59 00:03:42,970 --> 00:03:45,520 >> Сладолед Сендвич излезе пред една година, 60 00:03:45,520 --> 00:03:47,770 а една четвртина од телефони го имаат. 61 00:03:47,770 --> 00:03:53,910 Постојат уште многу телефони кои се користат OS верзија од пред години. 62 00:03:53,910 --> 00:03:57,820 Едно нешто што Google се обидува да направи да се направи на корисникот искуство 63 00:03:57,820 --> 00:04:01,400 многу повеќе доследни низ апликации започнува со саќе, 64 00:04:01,400 --> 00:04:04,320 кој е таблета верзија, тогаш Сладолед Сендвич и Желе Грав, 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 Тие имаат да инсталирате пакети, да го преземете Eclipse Classic верзија, 81 00:05:05,160 --> 00:05:07,450 иако, се разбира, ние сме кодирање во Јава. 82 00:05:07,450 --> 00:05:12,190 Тие препорачуваат овој еден, а потоа оваа ADT, на Андроид развој на алатки, 83 00:05:12,190 --> 00:05:17,300 е додаток кој ќе се инсталира во Eclipse која ви овозможува да 84 00:05:17,300 --> 00:05:20,550 имаат многу повеќе рационализација искуство со Андроид во рамките на 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 >> Сакам да се зборува за тоа како проекти во рамките на Андроид се структурирани, 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 Фрагменти се нешто што е имплементиран во Сладолед Сендвич оди напред. 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 Содржината на услуги, овие се API-јата во рамките на оперативниот систем 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 >> Здраво Андроид, ова се случува да биде проект што ќе се зборува. 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 има овој проект наречен Здраво Андроид. 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 Ова е за сите, бидејќи на Андроид Алатки за програмери интерфејс, 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 Јава датотеки се одржа, а тоа е, всушност, лансирањето на својата програма. 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 И Манифестот, тоа е начинот на кој систем Андроид знае 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 и стандардно бидејќи имаме Eclipse тоа и ADT тоа го прават за нас 169 00:11:22,880 --> 00:11:28,210 ова е за сите boilerplate код кој е создаден за нас, 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 цртежи во однос на било кој вид на слики- 173 00:11:41,150 --> 00:11:46,360 тие се наречени цртежи, а потоа и звучни датотеки, менија. 174 00:11:46,360 --> 00:11:51,170 Тоа е начин на целиот куп на XML во еден убав подредени модата. 175 00:11:51,170 --> 00:11:58,030 Како што можете да видите, постојат. Hdpi, ldpi, mdpi и xhdpi папки за цртежи. 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 Распоред се таму каде што ги вклучува сите различни скици кои ќе се користат во различни активности. 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 и Андроид автоматски има цел куп на овие правила во рамките на ресурс папка, 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 кореспондираат со саќе 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 На стандардно, ако одиме во Здраво Андроид или Здраво 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 Како што можете да видите овде со текстот Андроид 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 сите на хард-кодирани жици во Андроид во посебна папка, 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 откако ќе го поднесе, па ако јас започне со Лути птици, 223 00:15:23,570 --> 00:15:26,840 и тогаш јас се направи ажурирање и не сакам да издаде нова верзија 224 00:15:26,840 --> 00:15:34,230 Претпоставувам дека би можеле да го наречеме Лути птици 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 >> Бидејќи Андроид не ја имаат оваа ригорозна примена процес 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 Можеби не најновата, можеби не Желе Грав. 240 00:16:20,840 --> 00:16:23,610 Можеби сакате да дизајн првенствено за Сладолед Сендвич, 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 на оригиналниот Андроид верзија-како поничка на враќање, кога- 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 Андроид се изгради својата прва стан или нешто слично. 252 00:17:08,900 --> 00:17:12,089 Ќе одиме преку сето она што се случува таму, 253 00:17:12,089 --> 00:17:17,690 и жал, само за референца кои овде знае Јава на било кој степен? 254 00:17:17,690 --> 00:17:28,310 Океј, па Јава е ново кодирање јазик за доаѓање повеќето луѓе надвор од CS50. 255 00:17:28,310 --> 00:17:31,850 Накратко кажано, да одиме одново она што го кажува тука, 256 00:17:31,850 --> 00:17:35,580 она што сакаме да направите е да наместо коригира оваа Hello World апликација 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 Овој проект поле, токму тука не е важно во рамките на реалните распоред 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 или над овој проект, но овој проект ќе биде важно 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 Јас можам да одберам овој стринг, дали рефрактор Андроид и екстракт Андроид стринг. 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 бидејќи како што споменав порано, Андроид е многу глобално ниво користи на оперативниот систем 331 00:22:26,920 --> 00:22:35,950 дека можете едноставно да го направите вредности-ен или вредности-СП 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 ако сте заборавиле да го вклучите тип ќе подвлечам со малку црвена squiggly 352 00:24:17,520 --> 00:24:19,680 а потоа ти даде опција за увоз на гледање. 353 00:24:19,680 --> 00:24:23,130 А брз начин тоа е контрола промена О, и тоа ќе увоз 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 А пакет е, всушност, поимот дека Андроид користи, 363 00:25:14,720 --> 00:25:21,470 и тоа е начин на велејќи дека тоа даде дополнителни податоци, кој не може да биде на многу софистициран тип на податоци, 364 00:25:21,470 --> 00:25:24,510 но ние дефинитивно може да вклучуваат booleans или жици или ints. 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 Јавноста е важно. 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, можеме да кажеме нов, Андроид активност, празно активност. 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 Сега, со цел да се всушност комуницирате со овие 2 работи, 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 Намерата е тип. Ние сме создавање променлива myIntent. 416 00:30:10,000 --> 00:30:13,980 >> И ова е всушност објект, кој е зошто ние треба да распише нови. 417 00:30:13,980 --> 00:30:18,500 Тоа е заедничка Јава употреба таму, што би можело да потрае малку се користи за добивање. 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 А потоа, како што веќе напоменав претходно, ние го даде тој проект во текстот уреди поле 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 која е слична на нешто што ќе го користите кога се обидува да добие полиња од ДОМ. 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 како struct- 438 00:32:03,360 --> 00:32:07,600 ние ја нарекуваме објект во Јава-со целиот куп на различни методи 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 Дополнителни порака е нашиот таг па ние знаеме што си заштеда овој под, 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 И ова е Андроид емулатор. 454 00:33:30,310 --> 00:33:33,540 Се надевам дека го кодот всушност ќе pop-up во еден момент. 455 00:33:33,540 --> 00:33:36,680 Повторно, игнорирајќи сите оние мали нешта. 456 00:33:36,680 --> 00:33:42,290 Но емулатор Андроид може да се емулира било која верзија на оперативниот систем 457 00:33:42,290 --> 00:33:45,180 од најраните оние, поничка, Gingerbread. 458 00:33:45,180 --> 00:33:49,640 Ова е Желе Грав 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 па ние само може да се каже "Земи ја пораката од намерата." 471 00:34:47,610 --> 00:34:56,260 "Намери 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 ние ќе мора да го даде проект, 496 00:36:53,890 --> 00:36:58,350 а со цел да го направат тоа ние велиме @ + ID, што значи дека ние го додели проект. 497 00:36:58,350 --> 00:37:02,480 Ако ние едноставно се рече @ ид тоа би се претпостави ние сме референцирање на проект што веќе постои, 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 ќе најдеме поглед од страна на проект. 507 00:37:54,890 --> 00:37:59,640 И Р во случај јас не се споменуваат тоа порано, е повикување на нашите ресурси папка, 508 00:37:59,640 --> 00:38:05,350 а потоа проект е повикување на се што е во ресурси папка, сите ИД, 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 а можеби и да се добие малку изложеност на тоа како Јава работи таму. 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 >> Распоред е навистина само нешто што ќе се справи со се додека не вклучуваат слики 530 00:39:41,760 --> 00:39:46,370 и цртежи или што, и вредности, кои ќе вклучуваат жици, 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 ќе биде да се вклучуваат 3-ти библиотеки. 537 00:40:16,460 --> 00:40:19,840 Тука е малку Андроид момчето со Шерлок Холмс капа. 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 кој сега е стандард во Сладолед Сендвич и Желе Грав, 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 и тогаш едноставно мора да се референтен наместо стандардната Андроид 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 Се разбира, постои Фејсбук и Твитер за интегрирање таму 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 Гугл, по дифолт, што кажува многу на статистиката за тоа кој има инсталирано вашиот стан 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 Play. 562 00:41:49,090 --> 00:41:51,080 Се користи за да биде на пазарот Андроид. 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 тоа е, исто така, во ред, но од тука отидете на 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 Со Андроид тие дефинитивно ги охрабри луѓето да се погледне во него од 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 од стандардните имате целиот куп на примерок проекти во Андроид. 584 00:43:03,010 --> 00:43:05,470 Токму тука, Андроид, Андроид примерок на проект. 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 Андроид, 592 00:43:35,290 --> 00:43:41,520 а идејата е дека како што го направи вашето барање 593 00:43:41,520 --> 00:43:44,110 не треба да дознаете сè за Андроид да се направи еден стан Андроид. 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 Се надевам дека ќе се продаваат малку на Андроид, 612 00:44:37,930 --> 00:44:41,640 реализација на тоа е многу повеќе лесно да се пријде во смисла на само кодирање јазик. 613 00:44:41,640 --> 00:44:45,970 Јава е јас би рекол многу полесно да се разбере отколку Objective-C. 614 00:44:45,970 --> 00:44:50,780 Андроид расте мислам многу повеќе отколку 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 Се надевам дека ќе може да оди напред сега и ќе отвори Затемнувањето 622 00:45:20,650 --> 00:45:22,870 и направи свој Андроид апликации. 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]