[Powered by Google Translate] [Семінари] [Android програми та додатки (Тепер з Jelly Beans!)] [Йорданії Jozwiak] [Гарвардський університет] [Це CS50.] [CS50.TV] Привіт всім, і ласкаво просимо в Android програми та додатки (Тепер з Jelly Beans!) Семінар. Вона називається Тепер з драже, звичайно, тому що остання версія ОС називається Jelly Bean. Коли я говорив про Android в минулому році і зробив це в основному ж семінарі Я уявляв шаблонів проектування і стилістичних варіантів для Gingerbread, хоча Сендвіч Морозиво вийшли в той час, і це те, що ми будемо говорити про майбутнє небагато. Android, звичайно, є деякі проблеми з фрагментацією, тому останні Google операційної системи, як правило насправді не збирався стати поширені серед користувачів для потенційно до одного року, на жаль. Але урахування того, що, ми будемо говорити про багато причин, чому Android набагато краще, ніж IOS. Гаразд, ми поговоримо про Android проти IOS, Дизайн деяких парадигм, як ви будете отримати створений тільки в одному слайді, і велика різниця між цим і минулим роком я просто хочу зум через деякі концептуальні речі працюючи з операційної системи, а потім перейти в дійсно простий приклад. Справді, просто приклад, який описує Google для створення першого додатку і ми пройдемо його разом, і просто описати. Я знаю, багато хто з вас тільки закодовані в C, так що Java вже буде іншої точки зору, і таким чином ви будете отримати ваші ноги мокрі і відчувати себе трохи більш комфортно з ним, ми сподіваємося. Короткий огляд, Android проти IOS. В Android є це одноразовий розробник збір у розмірі $ 25, Жоден з цієї речі $ 100 на рік. Там немає ніяких обмежень, що означає, що якщо я хочу, щоб представити програми, Я просто уявити його, і немає ніякого процесу затвердження, що є для IOS. Ви добираєтеся, щоб розвиватися з Java Використання Eclipse, яка є крос-платформний, так що це не має значення, якщо у вас є Mac, Вікна, або деякі Linux машини. Звичайно, з прошивкою ви повинні використовувати XCode на Mac, Android і використовується набагато більше людей, так що якщо ви хочете, щоб ваші програми, щоб мати якусь видимість або, можливо, заробити трохи грошей від реклами Ви, ймовірно, найбільше виграють від Android. І одна річ, яка завжди була відома про Android є крайня кількість налаштування, тоді як IOS дуже зафіксовані в їх шляху так, що вони можуть підтримувати безпеку і контроль над кожним аспектом мало конструкції в рамках своєї операційної системи і окремих додатків. Android дуже вільній формі, і є ще багато можливостей. Добре, деякі конструктивні парадигм. Зверніть увагу, тут так само, як IOS має таблеток і iPhone'ов і док штрихи вони повинні підтримувати, скажімо, як десятка пристроїв, якщо ви хочете підтримувати історичні речі. З Android ви повинні підтримувати сотні пристроїв, так що є деякі речі, які Google намагається реалізувати щоб зробити роботу користувачів трохи більш послідовну, але ми також поговоримо про те, як це означає, що є проблеми фрагментації що ви постійно повинні бути в курсі підтримки. Дроблення означає, що існує багато різних операційних систем багато різних телефонів з різними обладнання під управлінням Android все в той же час, так що це граф тут сходить протягом 6 місяців. Так, 6 місяців, і ви можете побачити, як сама темна смуга на дно Jelly Bean, який вийшов протягом літа, і ви можете побачити прямо зараз, ймовірно, близько 2% телефонів є. Сендвіч Морозиво вийшов більше року тому, і чверть телефонів є. Є ще багато телефонів, що використовують версію операційної системи від кілька років тому. Одна річ, яку Google намагалася зробити, щоб зробити роботу користувачів багато більш однаковим програми починається з стільниковим, яка є планшетній версії, то Ice Cream Sandwich, і Jelly Bean, вони дійсно намагаються підкреслити використання цієї панелі дій, яких є те, що ви можете бачити у верхній тут, все прямо тут, в тому числі ця маленька кнопка налаштування. Це вибір дизайну. Тепер, коли ви бачите 3 точки це означає, натисніть на цю, і там буде меню, що випадає, в якому є якась налаштування. Це тільки показує, тому що я натиснув на цю кнопку. Це те, що вони намагаються використовувати, щоб зробити програми трохи більш послідовними за всіма напрямками і, так що користувач має кращу сенсі рівномірної досвіду. Отже, у разі, якщо ви цього не зробили, або якщо ви спостерігаєте у себе вдома , То ви можете виконати наступні дії, щоб налаштувати середу кодування. У ньому візьмуть участь, перейшовши на сайт тут. Ви можете встановити Google Android SDK і дотримуйтеся кількох описів там. Вони кажуть вам все. Вони мають установки SDK, скачати Затемнення класична версія, хоча, звичайно, ми кодування в Java. Вони рекомендують, це одне, а то ця ADT, Android Development Tools, це плагін, який ви встановлюєте в Eclipse, який дозволяє мають набагато більш раціональний досвід роботи з Android в Eclipse. Це дасть вам деякі графічні користувальницькі інтерфейси для проектування погляди, і це дасть вам набагато більше підтримки і можливість запуску за допомогою емулятора і все таке подібне. Застосування бази. Я хочу поговорити про те, як проекти в рамках Android структуровані, і потім ми поїдемо в невеликий приклад, і, сподіваюся, Ви можете задати питання в будь-який момент і відчувати себе комфортно в кінці його. У нас є деякі жаргону першим. Діяльності, як на екрані ви бачите, коли ви запускаєте додаток. Весь досвід є самої діяльності, так що ви можете думати про це як екран або зору, але насправді боку вихідний код його. Ми до цих пір називають фактичним інтерфейсну частину його зору. Це ніби як в PSET 7 у нас була контролера, а потім вигляд. Діяльність є більш-менш контролера і вигляд, що ми робимо з точки зору XML , Пов'язаний з цією активності. Фрагменти є чимось, що реалізовано в сендвіч Морозиво йти вперед. Це просто ідея приймати частину виду або активність і розділити їх на окремі ділянки, щоб ми могли зробити наш код більш зручним для цих багато різних пристроїв що ми повинні підтримувати, а це всього лише спосіб спробувати також фактор більше коду. Послуги є фоновими речі, як відтворення музики або навігаційні вказівки потенційно. Постачальники контенту, ці інтерфейси в операційній системі , Що дозволяє отримати доступ до загальних даних, такі як контактна інформація, а потім намір те, що ми будемо використовувати, коли ми хочемо почати Нові дії в нашої поточної діяльності. Hello Android, це буде проект, який ми будемо говорити про. Я насправді зробити це за вас, і тоді ми будемо робити речі, де ми натисніть кнопку з текстом і почати нову діяльність. Дуже просто, але я хочу, щоб пройти те, що буде йти в такому проекті. Коли ви робите новий проект ви побачите в Затемнення Тобто цей проект під назвою Hello Android. Крім того, є ціла купа папок тут. Ті, що ви насправді пов'язані з є вихідною папці, Папка ресурсів, ВДЕ, і в деякій мірі бібліотеки папки для бібліотек. І саме так, ми знаходимося на тій же сторінці, що з якщо ви повинні були створити новий проект, Ви можете зробити це прямо тут, так що якщо я хочу назвати його HelloAndroid, а потім автоматично робить ціла купа інформації для нас. Ім'я пакета повинно бути унікальним ідентифікатором , Які зазвичай пов'язані з веб-сайту, якщо у вас один. Наприклад, я буду називати цей net.cs50.helloandroid. І я вже зробив цей проект один раз. Гаразд, вибачте. Давайте назвемо це HelloCS50. І тоді він буде просити такі речі, як те, що свого роду іконою ми хочемо зробити. Це все тому, що інтерфейс Android Developer Tools, плагін, який ми додали до Затемнення, тому ми можемо вибрати речі, як яка іконка ми хочемо, і що буде йти в глибину, що, якщо ми хочемо. Але врешті-решт, просто переконайтеся, проекту, і все показує прямо тут. Як я вже показав, на іншому екрані, у нас є вихідна папка, і я буду говорити про те, що все це означає, скоріше, але ви можете бачити, що відразу це веде нас до HelloCS50 екрану. Є деякі кнопки тут для додавання макетів тексту та текстового поля. Це ніби як XCode, але на жаль не настільки впорядкована. Але кліпи будуть вашим другом і ADT зокрема для цього. Добре, вихідну папку, де Java файли проводяться, і це насправді запуск вашої програми. Це в основному як контролери. Ресурс або папку RES, де ми будемо тримати екран макети, зображення, звуки, текст, анімацію і все інше, бібліотеки, очевидно, бібліотек. І маніфест, це чином, що система Android знає як взаємодіяти з вашим додатком. Повідомляє їй про дозволи і які заходи насправді буде працювати. Це всю необхідну інформацію, що необхідно для запуску вашої програми. Папка з вихідними файлами, якщо ми розширюємо його, як ви можете побачити прямо тут. І приклад того, що код буде виглядати-це код за замовчуванням. Як ми називали його, MainActivity. Типово, ми отримуємо OnCreate, яка є функцією, яка викликається, коли ця діяльність навантаженнях, так що ви хочете зателефонувати OnCreate (savedInstanceState). Це дозволить відновити будь біт інформації У разі, якщо додаток було призупинено. Там цілий цикл життєдіяльності графіку якого ви можете подивитися на коли ви отримуєте трохи більш поглиблений в ньому, але найважливіша рядок коду є ця функція setContentView який буде завантажувати файл ресурсу для макета. Тоді що OnCreate тут в основному роблять це говорить коли я створюю цю діяльність я хочу завантажити цей макет. І ми будемо говорити про те, що розкладка клавіатури в секунду. Якби ми мали запустити, що ось вона виглядає точно так само, як це, і за замовчуванням, тому що ми робимо це в Eclipse і ADT роблю це для нас це все шаблонного коду, який створюється для нас, і ми можемо рухатися далі і змінити стан речей, як нам подобається. Папка ресурсів, як я сказав, це те, де ми проводимо всі макети, вводиться коефіцієнта з точки зору будь-якого роду образів- вони називаються вводиться коефіцієнта, а потім звукові файли, меню. Це спосіб цілу купу XML в хорошому відсортований моди. Як бачите, є. HDPI, ldpi, MDPI xhdpi і папки для вводиться коефіцієнта. Ці різні щільності екрану, так високу щільність пікселів на дюйм низької щільності, середньої щільності, додаткові високої щільності. Це, знову ж таки, так що ми можемо підтримувати всі ці різні пристрої, і, в ідеалі, ви будете мати різні зображення для кожного різним дозволом. Макети, де ми включаємо всі різні макети, які будуть використовуватися в різних видах діяльності. Вони могли б також включати макети фрагментів, що означає часткову діяльності в принципі. Якщо ви хочете зробити щось круте, як всякий раз, коли ви повертаєте телефон Ви хочете, щоб мати різне розташування ви можете зробити макет ландшафту в іншій папці, Android автоматично і має цілу купу цих правил у папку ресурсів, тому він буде знати, щоб подивитися на різні папки на основі поточної налаштування телефону, які апаратні ви використовуєте. Крім того, це значення тут-V11 і V14-значення і значення за замовчуванням папка це для- Ну, значення саме по собі, це буде значення за замовчуванням у всіх версіях операційної системи. З іншого боку, v11 і v14 відповідає стільникові і Ice Cream Sandwich, відповідно. Знову ж, ці способи, які-в цих папках різні рядки і стилів, так що ви можете налаштувати зовнішній вигляд вашого додатки або потенційно навіть його функціональності, хоча це, ймовірно, буде поганою ідеєю, на основі версії операційної системи. І я говорив про все це тут. Знову ж, полотно, сировину, верстка, цінностей. Типово, якщо ми йдемо в Hello Android CS50 або привіт прямо зараз вона буде виглядати саме так. Вона скаже привіт світ. Як ви можете бачити прямо тут з текстом Android текст цього тексту зору, яка в основному тільки етикеткою, те, що ми назвали б це в IOS. Він має позначення цій кумедній @ рядка / hello_world. Це так, ми можемо-ми спробуємо витягти всі рядки, все жорстко-закодованих рядків в Android в окрему папку, який буває в values.strings. Якщо ми подивимося тут, ми бачимо, що у нас є жорстко-закодованих рядків збережені тут для привет світ, і це називається привіт світ, і це є свого роду спільне рішення дизайну на багатьох платформах, що ви хочете- рядка виду речей, які ми хочемо бути потенційно в змозі змінити. Ми не хочемо контролювати F у нашому файлі з вихідним кодом в нашому XML. Ми хочемо, щоб мати можливість змінити це всякий раз, коли ми отримуємо шанс. Цей файл XML, strings.xml, є спосіб вилучення жорстко-закодованих рядків, що б в іншому випадку наші ресурси макета або в нашому вихідному коді. Маніфест де ми тримаємо цю важливу інформацію про програму. Вона включає в себе ім'я пакета. Це має бути унікальним ідентифікатором. На відміну від App Store для IOS назви додатків Не повинно бути унікальним, і ви можете насправді змінити ім'я вашої програми після відправки, так що якщо я починаю з Angry Birds, а потім я зробити оновлення, і я не хочу, щоб випустити нову версію Думаю, я міг назвати це Angry Birds 2, поки я в той же цикл випуску. Було б просто показати як оновлення. Єдине, що повинен бути унікальним, це ім'я пакета, яких не так багато людей побачать. Ну, ви тільки подивитися, якщо ви дивилися на вихідний код або, якщо є якась помилка. Компоненти включають в себе заходи, тому ми повинні оголосити будь-якого роду діяльності ми використовуємо. Цей дозвіл роду речі. Тому що Android не має такої суворий процес додатки подання додатка замість цього вони просто роблять все засновані від дозволів і оголосити речей у маніфесті. Версія SDK, також важливо. Ми можемо встановити використання в якості версії SDK щось мінімуму. Очевидно, що ви хочете створити код та дизайн для нових операційних системах. Можливо, не найновіше, можливо, не Jelly Bean. Може бути, ви хочете, щоб дизайн в першу чергу для Ice Cream Sandwich, хоча вони в значній мірі те ж саме з точки зору проектних рішень і фактичної бібліотек і API. Але замість того, є люди, оригінальної версії Android, як зворотний шлях, коли Donut- які до цих пір, трапляється, використовують, які намагаються завантажити програму, а потім сказати він не працює на моєму телефоні можна встановити мінімальну версію і це буде пряник або Ice Cream Sandwich або що ви відчували себе комфортно відправкою. І це приклад маніфест. Ми можемо подивитися на фактичну в небагато. Добре, ми просто підемо вперед з демо-версію зараз. Це демо, якщо ви Google Android побудувати свій Перший додаток або щось на зразок цього. Ми розглянемо все, що там відбувається, і шкода, просто для довідки хто тут знає Java в якійсь мірі? Отже, нова Java кодування мови для більшості людей, що виходять з CS50. Коротенько, щоб піти знову, що тут написано, те, що ми хочемо зробити, це замість коригування цього додатка Hello світі що всі вона робить це він запускає і він каже, привіт світ і він каже, привіт CS50 у верхній, тому що це ім'я операції ми збираємося спробувати зробити текстове поле і кнопку так що, коли ми натискаємо цю кнопку вона прийме текст з текстового поля і почати нову діяльність, і він буде говорити що б це не текстом сказав у своїй діяльності, і це відносно просто. Це не дуже цікаво. Ви не хотіли б, щоб звільнити будь-який додаток, як це. Але він демонструє деякі важливі речі, дизайну. Ми повинні взаємодіяти з маніфестом, з розташуванням файлів, з вихідним кодом, і ви можете бачити, як запустити один вид діяльності від іншого. Ми почнемо з макетом для нашого першого заходу якого я знаю, що це частково невеликі, але, як ви можете побачити прямо зараз, все це він має наш логотип, який ми створили, ім'я операції, і він каже, привіт світ в центрі. Замість цього, я перший збираюся зробити це в лінійний макет, відносне розташування, і всі ці речі Ви могли дивитися вгору і коштують переходячи в якийсь момент з точки зору макетів. Він багато в чому схожий на HTML. Ми сказали, що це насправді не варто знати з точки зору програмної сенсі, але є так багато різних макетів ви можете контролювати, і це так само, як з точки зору CSS стилів. Там дуже багато відбувається тільки з точки зору естетики тут, і так, це коштує навчання, але це така справа, треба знайти як ви йдете, і ви відчуваєте, що потрібно щось нове. Я можу скористатися деякими з інструментів ADT тут принаймні, щоб почати с. Я зроблю текстове поле, і Я зроблю кнопки. Покладіть їх поруч один з одним. Вони вже змінити розмір відповідним чином. На жаль, знову ж таки, повертаючись до різниці між лінійної плануванням і відносне розташування, лінійне планування дає трохи більше функціональності з точки зору заповнення простору і переконавшись, ми позиціонуємо речі горизонтально або вертикально. Велика різниця між лінійної плануванням і відносне розташування відносне розташування позицій все, в порівнянні з іншими видами, і хороша річ про це є те, що це займає менше часу, щоб привернути , Оскільки операційна система дивиться на весь код і каже, що це йде по відношенню до цього тут, тут. Це означає, що він робить менше вимірювань, ніж цілу купу вкладених лінійних макети, який я мав би зробити, якщо я хочу, щоб все було тут вертикально. У мене вже є деякі речі, збирається горизонтально, так що я потрібна інша лінійне планування вкладати їх у вертикальному положенні, але якщо б я робив щодо макета я можу сказати, зберегти цей наліво, це право, і ці речі нижче. Але тому що я хочу, щоб вони заповнили Прямо зараз я збираюся використовувати лінійний макет, і ви можете побачити вже зараз він багато з цих речей для нас. Всі точки зору повинні мати властивості ширини і висоти, і це відбувається, щоб мати вагу 1, а це має вагу 1 так, що він заповнює весь простір. Однак ширина і висота є найбільш важливими. Цей ідентифікатор поля тут не важлива в межах фактичного розташування якщо ми не за допомогою відносного розташування і кажу, що ми може посилатися один вид положення по відношенню до іншого. Якби ми мали відносно макета ми можемо сказати, це положення нижче цього або вище цього ID, але це ID буде мати важливе значення коли ми використовуємо її в код, тому що ми можемо посилатися ці особисті думки в цей шлях. І тоді ви зможете побачити requestFocus мітки, тобто те, що ви, напевно, бачили в PSET 7. Був теги автофокус або щось в цьому напрямку для одного з полів. І ще одна річ, звичайно, ми можемо зробити так само, як в HTML, і зверніть увагу, одна з хороших речей про ADT є те, що тут autocompletes. Може бути, не так добре, як це було в XCode, але вона, тим не менш, і ми можемо сказати, підказки, а потім дати йому якусь рядок хотів написати повідомлення, і якщо я даю йому момент, також помітив, що я отримую трохи помилки тут кажуть, що ми повинні використовувати рядок ресурсу для цього, так що якщо я нехай це роблять деякі з важкою роботою для мене Я можу вибрати цей рядок, зробити рефрактор Android і Android екстракт рядок. Я можу дати йому це ім'я, написати повідомлення, і те, що він зараз є, що він замінив жорстко-закодованих рядків з посиланням на рядок. файл XML-рядок, що означає тепер це тут. І я знаю, що здається трохи тривіально і, як додаткову роботу в цій точці, але коли у вас є ціла купа речей, ціла купа рядків, це дуже важливо, особливо для локалізації тому що, як я згадував раніше, Android є дуже глобально використовуваної операційної системи що ви можете просто зробити значення-ан або значень-SP або щось для англійською або іспанською мовою або іншими мовами. І тоді ви, ймовірно, не було цього досвіду ще так як ми не робили багато чого JavaScript з точки зору веб-програмування, але ми також можемо зробити це поле, зване OnClick для кнопки, і це спосіб посилання в наш макет що ми хочемо певну функцію, яка викликається в нашому вихідному коді. Я буду називати це SendMessage, і для того, щоб зробити цю роботу, що означає, в основному активність тут Мені доведеться створити функцію, яка є суспільним так що вона може бути доступна макета. Це порожнеча, тому що ви просто не хочете, щоб він нічого повертати. Ми назвемо це SendMessage, і вона приймає вигляд, яка є свого роду контекст, який ми можемо закріпити цей метод цій особі зору, коли ми біжимо його. І я не знаю, якщо ви помітили, ну, ви б не помітили, але в цей момент прямо тут це подання типу, який до цих пір не включені І, звичайно, ви все знаєте з CS50 про не включаючи типи. Саме прекрасне, як Eclipse IDE є те, що якщо ви забули включити типу вона буде підкреслювати за слабкий червоною хвилястою а потім дати вам можливість імпортувати зору. Швидкий спосіб зробити це є управління перемиканням О, і вона буде імпортувати всі файли, які він повинен. Тепер у нас є ця функція SendMessage, яка збирається відправте повідомлення з MainActivity в нову діяльність, ми збираємося повинні використовувати намір запустити новий вид діяльності від цього, таким чином, ми, ймовірно, захочете створити глобальну константу або також особливо публічна константа які допоможуть нам знати, як ми будемо посилатися на рядок тому що, коли ми створюємо наміри ми не просто викликом нового виду діяльності, але ми також можемо дати йому набір інформації. Розшарування насправді термін, який використовує Android, і це спосіб сказати, дати йому додаткові дані, які вона не може бути дуже складного типу даних, але ми можемо виразно включати логічні значення або рядки або цілі. Такого роду речі. Не соромтеся запитувати про будь-якому з цих відбіркових тут, громадськості, фінал, статична. Громадськість важлива. Це означає, що ми можемо отримати доступ цієї змінної з інших файлів вихідного коду наприклад, коли ми створюємо нову діяльність. Ми можемо посилатися на рядки в цьому файлі. Якщо це приватне, це означає, що він обмежується цим окремий файл тут. Але ми називаємо це щось на зразок додаткового повідомлення. Тепер ми зробили цю функцію, і якщо ми натискаємо кнопку, ця функція буде викликана. Але ми нічого не зробили, очевидно, з функцією. Те, що ми хочемо зараз зробити, це створити новий вид діяльності, діяльність, яка насправді буде запущений. У Eclipse можна сказати, нове, Android діяльності, порожній діяльності. Ми можемо дати йому ім'я. Давайте назвемо це результат нашої діяльності. А потім ця ієрархічна поле батьків є спосіб завдання яким чином діяльність пов'язані один з одним. Тому що це одна буде запущена з іншої діяльності ми повинні вказати, що він має батька основної діяльності. І я міг би натиснули на наступне поле там, які сказали б нам деякі додаткові поля, що вона була і в тому числі, але хороша річ про ADT, знову ж таки, в тому, що якщо я тут прокрутити вниз У маніфесті пам'ятати, що все це дійсно було включено за замовчуванням коли ми спочатку створеного проекту, і зараз, тому що ми використовували це створити новий вид діяльності, а не тільки з'явився власний файл класу, тому що ми пройшли їх GUI для цього це вже додали все це в маніфест для нас, який просто означає, що тепер операційна система не буде скаржитися коли ми намагаємося запустити цю діяльність. І це також, звичайно, дали йому етикетку, яка також відображається у рядках. Він робить багато речей, на задньому кінці для нас. У всякому разі, тепер у нас є цей результат діяльності, а, фактичний файл вихідного коду у вихідній папці, і ви можете бачити, коротко зупинитися на цьому- тому що ми сказали, що це про це ієрархічна батьків він дав цій області android.r.ide.home в цьому onOption вибраної річчю. Те, що це в основному кажу, є кнопка меню тепер , Що у верхньому лівому куті екрану Якщо я повернуся в PowerPoint, де ми вперше заговорили про панелі дій через ієрархічної батьків тепер є маленька стрілочка сюди і це є інтерактивним, тому ми повинні бути в змозі після-ми насправді це додаток- повернутися, і це спосіб врятувати нас трохи код. Зараз у цьому, ну, це, здається, скаржаться, що на мить. Давайте коментувати це. Тепер, для того щоб реально взаємодіяти з цими 2 заходи, ми повинні створити намір яка включає в себе всі ці дані. У SendMessage тепер я збираюся в круїз через деякі фрагменти коду і пояснити, що, як я йду. Наміри, як я вже сказав, це спосіб для запуску одного виду діяльності від іншого. Намір типу. Ми створюємо змінну myIntent. І це насправді об'єкт, який є, чому ми повинні призначити нові. Це загальне використання Java там, що може зайняти трохи звикнути. Це означає, що ми використовуємо діяльності або класу MainActivity, і наміри таким чином займає діяльність він збирається з і активність, що це збирається, яку ми називаємо ResultActivity, і це свій власний клас. Увімкніть це. А потім, як я вже говорив, ми дали цьому ID в поле редагування тексту і текстовому вигляді, тому для того, щоб захопити програмно текст, який існує в EDITTEXT Ми використовуємо цю функцію називають findViewByID, який схожий на те, що ви будете використовувати при спробі отримати поля з DOM. Можливо, Девід говорить про це в лекції. Але це всього лише спосіб отримати ці-от чому ми тег ці речі з цих полів. Id.editText1. Це вже autocompleting мене там. І тоді ми будемо також вмикати-за EDITTEXT тепер у нас є поле в нашій програмі, все, що зробив, було findViewByID основному Ви могли думати про нього, як дати нам посилання на цей EDITTEXT. Тепер ми хочемо отримати рядок або повідомлення в межах цієї EDITTEXT які ми можемо зробити за допомогою параметра- ви могли б подумати EDITTEXT як структура- ми називаємо це об'єкт в Java-з цілим букетом різних методів або поля і атрибути, прикріплені до нього. Коли я кажу EDITTEXT. це дає мені можливість доступу такий метод, як GetText, яка отримає нинішній текст в цьому EDITTEXT, а потім перетворити, які явно в рядок, і ми врятували повідомленні. Тепер ми дійсно хочемо зробити щось з цим наміром ми створили всього кілька хвилин тому. Вкласти додаткові, як це називається в намірах, які, знову ж таки, як я вже говорив, це спосіб створення розшарування з цілою купою даних. Додаткове повідомлення наш тег, тому ми знаємо, що ми економимо під цим, і я в тому числі повідомлення. І тоді ми зможемо реально розпочати діяльність, даючи йому параметр myIntent. І це буде дійсно запустити діяльності, так що тепер, так як я підвищено до Windows 8 там можуть бути деякі помилки, які показують, на короткий час, але намагаюся не помічати їх. І це емулятор Android. Будемо сподіватися, що код буде насправді з'являються в момент. Знову ж, ігноруючи всі ті дрібниці. Але емулятор Android ви можете емулювати будь-яку версію операційної системи від самих ранніх, Donut, Gingerbread. Це Jelly Bean 4.1. Але, як ви можете побачити прямо зараз, це те, що ми зробили. Це має MainActivity, EDITTEXT, кнопка. Я можу надрукувати щось тут, але те, що нам не вистачає в даний момент? Ми зробили поле в MainActivity що відбувається, щоб відправити повідомлення до іншої діяльності, але в цей момент ми нічого не зробили в іншій діяльності, так що він не збирається нічого отримувати. Давайте закінчимо цю частину перш ніж рухатися далі. Цей результат діяльності, те, що нам потрібно зробити, це нам потрібно зробити, це нам потрібно- ми також можемо посилатися на наміри у цій діяльності, так що ми повинні захопити мета, яка насправді просто. Це функція включена в активності класу так що ми можемо просто сказати: "отримати повідомлення від наміру". "Намір myIntent = getIntent". І це дасть нам тепер-myIntent є об'єктом, який є посиланням на намір, яке привело нас до цієї діяльності. MainActivity дзвонить і дає додаткову інформацію привести діяльність. Результат діяльності тепер дивиться на намір, яке привело його тут, і ми можемо отримати доступ повідомлення, яке ми створили в іншій, getStringExtra, і це буде для мене автозаповнення. А потім пам'ятаю, як ми метиться біт даних був, давши йому це поле прямо тут, це громадське рядки, яка служить ярлик рядок, яку ми фактично включені. Якщо я скажу, MainActivity.Extra_Message це тут же, і це ніби як ім'я параметра коли ми пройшли коду з контролера в шаблон, коли ми щось сказати назву стрілки. Це така ж ідея є. Тепер, пам'ятайте про це. У нас також був створений цей автомобіль або автоматично згенерований код в результаті активності, який включає в текстовому вигляді в середині , Що говорить привіт світ. Ми могли б зробити, що потенційно більше. Давайте зробимо це першими. Ми могли б зробити це 40 незалежних щільністю пікселів. Давайте подивимося, що це супер величезний. Це буде в порядку. І тоді для того, щоб посилатися на цей індивідуальний погляд текст у наш код ми повинні дати йому ID, і для того, щоб зробити це ми говоримо @ ID +, що означає, ми призначаємо ID. Якщо ми тільки що сказали, @ ID було б припустити, ми посилаємося на ідентифікатор, який вже існує, і назвемо цей resultTextView наших. І зауважте, що в XML немає необхідності коми або що-небудь. Все в цих тегах. Він дуже схожий на HTML в багатьох сенсах. Це займе трохи звикнути, але в кінці кінців ви будете почувати себе дуже комфортно з ним. Давайте відновимо текст для нашого виду тексту результат, і, як ми робили, коли ми отримували, що поле введення тексту в інших наших діяльність У MainActivity Тут ми також розглянемо також- ми дізнаємося результати по ID. І R, у разі, якщо я не згадав про це раніше, є посилання на наш папка ресурсів, а потім ID є посилання на все, що в папці ресурсів, всі ідентифікатори, і resultTextView. І так само, як і раніше, resultTextView є об'єктом, яка означає, що вона має всі ці властивості, пов'язані з ним. Коли ми використовуємо GetText для редагування тексту в цьому полі тексту або перегляду тексту ми дійсно можемо використовувати зейТех, і тоді ми вже знайшли повідомлення від намірів, Тому я можу сказати повідомлення, і це буде насправді набір повідомлень. Це скористатися моментом, щоб почати, і тоді ми зможемо побачити або чи не він виходить з ладу, але є питання з приводу цього процесу тут же, такого роду взаємодії? У багатьох відношеннях це просто. Тому я йду через щось відносно просте , Знову ж таки, тому що ви можете бачити взаємодія між макет, вихідний код, як вам речі посилання і, можливо, отримати мало впливу на Java як там працює. Якщо я насправді щось типу в тут, як Ohai, а потім, натиснувши на кнопку, він запускає новий вид діяльності, і цей текст зору говорить Ohai. Це дуже простий, але, сподіваюся, після цього прикладу ви як би подивитися, як це взаємодія працює, і тепер, коли безлад файли на лівій стороні для всіх цих папках проекту, сподіваюся, ви знаєте, де шукати тепер. Це ваш вихідний код області. Макет дійсно єдине, що ви будете мати справу з поки не містять у собі зображення і вводиться коефіцієнта або будь-який інший, і цінності, які можуть бути рядки, як ми вже згадували, а потім стилів є те, що ніби як CSS. Адреса його, коли ви хочете, але, поки ви не відчуєте себе комфортно з додаванням додаткового чуття для вашої програми немає необхідності турбуватися про це занадто багато. Просто, щоб обернути одну річ, яку ви напевно хочете, щоб включати- якщо ви хочете інтегрувати цікаві функції і заощадити трохи додаткового кодування- буде включати в себе 3-х фірм. Ось маленький хлопець Android з Шерлоком Холмсом капелюх. Ця дія барі Шерлок бібліотека, який в основному означає, що панель дій ви вже бачили, який в даний час стандартом в Ice Cream Sandwich, і Jelly Bean, Якщо ви хочете, щоб принести таку користувальницький досвід для користувачів на старих версіях і врятувати себе від турбот про те, як користувач буде переміщатися на старіших версіях, коли ця річ не їсти ви можете включити цю бібліотеку а потім ви просто повинні довідково-а не за замовчуванням Android бібліотеки для панелі дій, ви посилаєтеся на цю підтримку бібліотек. Такі речі, як Scoreloop, це здорово, якщо ви збираєтеся включити в гру. Ви можете додавати таблиці лідерів і досягнення в іграх. Admob це спосіб розміщення реклами в додатках У випадку, якщо ви хочете, щоб зробити трохи грошей з нього. Звичайно, є Facebook і Twitter для інтеграції є Якщо ви хочете поділитися речі легко, і так далі. Dropbox, те ж саме, і Google Analytics є те, що графік шукає нікого. Це буде дуже важливо, якщо ви дійсно хочете, щоб бачити, хто взаємодіє з вашим додатком або хто це, як вони взаємодіють, і так далі. Google, за замовчуванням, говорить вам багато статистики про те, хто встановив додаток і те, що телефон у них, що версія операційної системи у них є. Але якщо ви хочете дізнатися, хто використовує його на щоденній основі, і як вони використовують його то ви хочете, щоб включати в себе якісь системи стеження подібне. Коли ви будете готові, щоб поширювати свої додатки Мені не потрібно йти в тому, що в занадто великій глибині. Натисніть на посилання тут, Google Play. Раніше вважалося, Android Market. Вони всі ребрендинг з Play Google, Отже, тепер ви уявити, що. Це дуже просто. Ви повинні включати в себе опис, кілька скріншотів. Як я вже казав, немає ніякої процес затвердження, як IOS. І куди йти далі? Я показав вам дуже простий приклад. Сподіваюся, якщо це здається жахливо простий то це, напевно, хороший знак. Якщо ви взагалі відчував себе трохи плутають або не впевнені точно, що я друкував це теж добре, але звідси піти в Google Довідники. Це прекрасне місце для початку. Він говоритиме вам, що вони очікують з точки зору розробки додатків, як користувачі зазвичай взаємодіяти з ним. Це набагато більш вільній формі, ніж IOS, я б сказав, яка здається, що таблиця погляди-Я не знаю, це їхній хліб з маслом. Усі таблиці ковзання вгору і вниз. З Android вони, безумовно, заохочувати людей, щоб подивитися на це з ціла купа різних точок зору. При включенні комплект розробки програмного забезпечення в цій ADT Типово у вас є ціла купа прикладів проектів в Android. Прямо тут, Android, Android Sample Project. Якщо я натискаю на це, то я можу вибрати версію, для якої із прикладів проектів застосовуються. Там ціла купа різних речей. Вона починається з дією сумісності бар, акселерометр ігри, резервне копіювання і відновлення, Bluetooth, жест будівельника. Jetboy приклад гру вони дають вам, як LunarLander. Є ціла купа прикладів додатків тут, і всі вони орієнтовані на різні аспекти API Android, і ідея в тому, що, як ви зробите ваш додаток Вам не потрібно, щоб дізнатися все про Android зробити додаток Android. Ви тільки повинні дізнатися про частини, які ви насправді збираєтеся використовувати. Подивіться на ці приклади бібліотек. Не соромтеся, щоб скопіювати і вставити код і повторно використовувати це. Це відмінна річ, щоб подивитися на більш важким код і спробувати зрозуміти його, що, звичайно, чому в CS50 ми часто дають вам велику кількість вихідного коду. Подивіться на деякі з них, якщо ви збираєтеся використовувати подібні бібліотеки , А потім застосувати його на свій власний код. І, звичайно, є підручники. Шукати підручники. Я знайшов багато хороших онлайн, який може принести вам до швидкості з тим, що фрагменти насправді і як їх можна використовувати. Деякі з цих нових речей дизайну, як фрагменти, Ви дійсно не повинні бути стурбовані, якщо ви не робите досить великий за своїми масштабами проект. Вони те, що Google намагається поетапно дюйма Stackoverflow звичайно, ваш друг. Сподіваюся, я продав вам трохи на Android, розуміючи це набагато більш легко підходити з точки зору тільки кодування мови. Java, я б сказав, що набагато легше зрозуміти, ніж Objective-C. Android росте я думаю, набагато більше, ніж IOS. Я маю на увазі, дані там теж, крім того, що я думаю. Це буде приблизно в той час, і вони кілька років позаду точки зору їх циклів проектування, так це начебто зрозуміло, що вони все ще працюють через деякі з цих послідовність питань, як це дію барі нова річ для них до цих пір, Сортувати створення подібний досвід користувачів у всіх своїх додатках. Сподіваюся, ви можете піти вперед, то й відкрити Затемнення і зробити свої власні програми для Android. Хто-небудь є які-небудь питання, перш ніж ми підсумкове ні про що? Я можу сказати вам відповідь 42. Ну, щасливого кодування всіх, і удача. [CS50.TV]