1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Семінари] [Android програми та додатки (Тепер з Jelly Beans!)] 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 >> Привіт всім, і ласкаво просимо в Android програми та додатки (Тепер з Jelly Beans!) Семінар. 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 хоча Сендвіч Морозиво вийшли в той час, 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 іншої точки зору, і таким чином ви будете отримати ваші ноги мокрі 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 Вікна, або деякі Linux машини. 34 00:01:59,600 --> 00:02:03,730 Звичайно, з прошивкою ви повинні використовувати 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 має таблеток і iPhone'ов і док штрихи 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 >> Сендвіч Морозиво вийшов більше року тому, 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 багато більш однаковим програми починається з стільниковим, 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, скачати Затемнення класична версія, 81 00:05:05,160 --> 00:05:07,450 хоча, звичайно, ми кодування в Java. 82 00:05:07,450 --> 00:05:12,190 Вони рекомендують, це одне, а то ця ADT, Android Development 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 Фрагменти є чимось, що реалізовано в сендвіч Морозиво йти вперед. 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 Постачальники контенту, ці інтерфейси в операційній системі 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 Коли ви робите новий проект ви побачите в Затемнення 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 Папка ресурсів, ВДЕ, і в деякій мірі бібліотеки папки для бібліотек. 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 плагін, який ми додали до Затемнення, тому ми можемо вибрати речі, як 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 Ресурс або папку RES, де ми будемо тримати екран макети, 148 00:09:49,020 --> 00:09:54,110 зображення, звуки, текст, анімацію і все інше, бібліотеки, очевидно, бібліотек. 149 00:09:54,110 --> 00:10:01,700 І маніфест, це чином, що система 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 і за замовчуванням, тому що ми робимо це в Eclipse і 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 вводиться коефіцієнта з точки зору будь-якого роду образів- 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 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 відповідає стільникові 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 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 а потім я зробити оновлення, і я не хочу, щоб випустити нову версію 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 і це буде пряник або 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 те, що ми хочемо зробити, це замість коригування цього додатка Hello світі 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 або вище цього 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 Швидкий спосіб зробити це є управління перемиканням О, і вона буде імпортувати 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 Розшарування насправді термін, який використовує 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 Громадськість важлива. 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 Тепер, для того щоб реально взаємодіяти з цими 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 Це загальне використання 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 Додаткове повідомлення наш тег, тому ми знаємо, що ми економимо під цим, 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 так що ми можемо просто сказати: "отримати повідомлення від наміру". 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 ми повинні дати йому ID, 496 00:36:53,890 --> 00:36:58,350 і для того, щоб зробити це ми говоримо @ ID +, що означає, ми призначаємо ID. 497 00:36:58,350 --> 00:37:02,480 Якщо ми тільки що сказали, @ 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 ми дійсно можемо використовувати зейТех, 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 >> Макет дійсно єдине, що ви будете мати справу з поки не містять у собі зображення 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 Ось маленький хлопець 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 Play. 562 00:41:49,090 --> 00:41:51,080 Раніше вважалося, Android Market. 563 00:41:51,080 --> 00:41:53,470 Вони всі ребрендинг з Play 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 З 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 Sample Project. 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 Сподіваюся, ви можете піти вперед, то й відкрити Затемнення 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]