[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 во многих смыслах. Это займет немного привыкнуть, но в итоге вы будете чувствовать себя очень комфортно с ним. Давайте обновим наш текст для просмотра текста результат, и, как мы сделали, когда мы получали, что поле ввода текста в других наших activity В MainActivity Здесь мы также рассмотрим также- мы узнаем результаты по ID. И R, в случае, если я не упомянул об этом раньше, является ссылка на наш folder ресурсов, а затем 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]