Фред Widjaja: Добре. Привіт, всім. Спасибі вітаються приєднатися до мене на цьому семінарі. Отже, сьогодні ми будемо говорити про Як розробляти програми для Android, і, зокрема, ми збираємося бути за допомогою Android Студія в порядку розвивати наші програми. Отже, як ви всі могли знати. Android використовує Java, і тому ми будемо переживає короткого вступу на самому Java. Так що я знаю, що багато з вас тільки досвід програмування на С. Так, це абсолютно нормально, і це тому що Java дуже, дуже аналогічно C, з невеликими відмінностями. Таким чином, типи в Java є фіксується в байтах. Таким чином, в С, то шорти і жадає, і вони відрізняються кількістю бітів від машини до машини. В Java, це вже не встановлений в якості стандарту. Так байти мають вісім біт, шорти є 16 біта, і так далі і так далі. У нас також є символи, логічні, а також плаває і парному розряді. Так як ви програмувати на Java, це дуже схоже. Так, наприклад, у нас є для петель і в той час петель, і якщо і решта звітність точно так само, як ви могли б зробити в C, Гаразд, так Особливість Java є те, що об'єктно-орієнтована. Тепер, що таке об'єкти? Так що, якщо ви подивитеся на речі навколо вас, ви будете зауважити, що кожен об'єкта реального світу має дві загальні характеристики. І це в тому, що вони мають стан і у них є якісь поведінки. Так, наприклад, собак б держави, які : Ім'я, колір, порода, можливо, якщо собака голодна чи ні. А деякі моделі поведінки, що собаки будуть мати буде гавкати або виляючи хвостом, або вилучення м'яч. Отже, ми можемо також застосувати це до неживих предметів. Так, наприклад, автомобілі, вони мають модель, рік випуску, максимальна швидкість, і так далі, і так далі. І у них є деякий поведінку. Наприклад, прискорення або гальмуванні, або збирається в зворотному напрямку. Так об'єкти Java спроб моделювання це за наявності поля і методи. Так поля держави, які об'єкт Java може мати, в той час як метод представлятиме поведінку, яка об'єкт Java матиме. Тому, коли я говорю методи і поля, я дійсно просто означати, змінні і функції. Вони точно так само, за винятком того, що вони застосовуються до конкретного об'єкта. Отже, переходимо до класів. Класи Java схожі Креслення для об'єкта. Вони кажуть вам, що методи він має те, що він має поля, і навіть тут, у нас є щось звані модифікатори доступу, які ми отримаємо в той час. Таким чином, щоб оголосити клас Java, це дуже схожі по синтаксису до C структури. Тут ми починаємо з автомобіля класу громадськості, а то у нас відкриває фігурна дужка, а потім деяка кількість полів, які Ви хочете, щоб об'єкт є. А потім ось у нас є деякі методи, і ми також маємо конструктор об'єкта. Тепер те, що цей конструктор об'єкта робить це говорить об'єкту, ОК, я хочу, щоб ініціалізувати це об'єкт якогось поля. Так от, ми хочемо, щоб кожен автомобіль мати модель і рік. Тому у нас є конструктор тільки спеціально для моделі і року, і Це дозволить створити модельне поле до певного значення, і поле році. Тепер про доступ модифікатори я мав на увазі. Тут ми маємо громадськості та приватні модифікатори доступу. Таким чином, ви можете думати про це як RWX у ваших каталогах. Таким чином, вони дозволяють певних людей читати, і мати доступ по цих полів і методів. Так що, якщо я скажу, що модель і рік і швидкість є приватними, це означає, що інші об'єкти не можуть намагатися отримати доступ до поля цього об'єкта Є приватні. Але коли я встановив доступ Модифікатор бути публічним, Тепер це означає, що інші об'єкти можуть вільно звертатися і навіть використовували методи, які визначені тут. Так що це основний Об'єкт автомобілів, що в мене є. У нас є прискорити, доломить, і методи getSpeed. До цього моменту, це все ясно Об'єкти Java і як їх оголошувати? Круто, все в порядку. Так що якщо ви хочете використовувати Java об'єкт в самій програмі, то ми можемо використовувати це Новий конструктор автомобілів. Так от, ми говоримо, що ми хочемо оголосити Новий об'єкт, який має тип автомобіля. І тут це застосування модель і рік випуску, які ми визначили в цей об'єкт прямо тут. Так що це ще один об'єкта, якщо ви помітили. Це клас для Сама головна програма. І у нас є ця PSVM або громадського статичної сили основних, функції, і його відправною точкою вашої програми, аналогічно основний функція у вашій програмі C. Тут ми можемо отримати доступ і використовувати функції об'єкта в використовуючи точку, а потім Ім'я функції позначення. І ми можемо навіть вказати деякі аргументи або параметри Для цієї функції. Отже, переходимо до спадкоємства. Так об'єктами реального світу, може одні й ті ж характеристики. Так, наприклад, існує Різні типи велосипедів. Наприклад, гірський велосипед, Велосипеди міські або тандемні велосипеди. Тому вони повинні це загальне властивість, що велосипед. І так велосипеди можуть мати два колеса і вони можуть мати ручку, може бути, навіть задній ліхтар або щось подібне. Так Java дає нам це владу представляють об'єкти які мають якийсь загальний характеристики у спадок. Тепер, що спадкування робить, це проходить на полях і методи об'єкта на дочірньому об'єкті. Так, наприклад, якщо є автомобіль, і він має стан має чотири Колеса і один кермо, то ми можемо передати це на деякі різні типи автомобілів. Наприклад, у нас є седан, спортивний автомобіль, і позашляховик. Тепер, ці три різних типи автомобілів все одно б чотири колеса і один кермо, але потім вони може мати певні спеціальні характеристики, таких як має п'ять місць і для седана, наприклад. Таким чином, щоб скористатися цією спадкування функція, ми використовуємо це розширює ключове слово. Так що пам'ятайте, назад до машини заперечити, що я визначив раніше. Тепер я визначити об'єкт седан. Так що це об'єкт Седан буде мати ж поля і функції або методи, що автомобіль буде мати. Але тоді, тут я вказую деякі додаткові функції, Наприклад, безліч Кількість пасажирів і кількість пасажирів отримати. Тут ви також можете помітити, що ми можемо перевизначити методи, і це означає, що ми просто заміна поведінку діяти в деяких випадках по-різному. Так, наприклад, я хочу, щоб встановити максимальну швидкість для нашого автомобіля. А для цього, я перевіряю чи це Швидкість буде йти на максимальній швидкості. А якщо це не так, то я називаю супер клас "прискорити метод. Так що це super.accelerate () дзвінки супер клас "прискорити метод. Нарешті, ми збираємося говорити про інтерфейси. Так інтерфейси спосіб тільки викрити деякі методи з зовнішнім світом. Таким чином, вони, як стіл, Зміст і ви можете думати про них, як, як файли C заголовок, просто як методи з порожніми органів, і вони визначити, який об'єкт або клас повинен мати, або те, що методи об'єкт або клас повинен мати. Так, наприклад, якщо мають інтерфейс велосипедів, і має три різні методи, а от якщо я реалізувати цей інтерфейс, то це означає, що цей велосипед необхідно реалізувати тих же трьох методи, які я, визначені в інтерфейсі. До цього моменту, будь-які інші питання? Гаразд, круто. Так що це було дуже коротким і короткий посібник з Java. Там це спосіб більше функцій і теми на Java, що ви можете пройти. Наприклад, існує дженерики, є типи даних, Є навіть перерахування та інше. Так що якщо ви хочете дізнатися більше про це, зробити наступні посилання, і вони будуть вчити вас про них більше. Отже, давайте перейдемо до Фактичне м'ясо семінару, і що насправді Android програмування. Тому, перш ніж ми насправді дістатися до програмування, Я хочу говорити про якусь жаргону. Так діяльність Спосіб Android, сказати це єдиний екран у додатку. Так, наприклад, якщо у вас є Gmail додатки, ми маємо діяльність переглядати електронну пошту. І потім, якщо ви натиснете впевнений, електронна пошта, що буде показаний ще один діяльності, де це вид електронної пошти діяльності. І тоді у нас також є складати діяльність, або діяльність редагувати повідомлення. І так діяльність як правило, тільки один екран в самому додатку. Тепер, погляди компоненти, що входять в до екрану, або самої діяльності. Так вони привертають впевнений, річ у вашому екрані. Так, наприклад, це може бути текстове поле, це може бути етикетка, це може бути вікно перевірки. Так що багато різних типів поглядів. Так що тепер у нас є наміри, і це повідомлення який передається на інший вид діяльності. І вони містять інформацію про те, те, що ви хочете ця діяльність для виконання. Нарешті, у нас є Файл маніфесту, і що є XML-файл, який дає телефон Вся інформація про вашому додатку. Так от включає в себе версію, а заходи, які ви будете мати. Отже, давайте почнемо. Отже, ми збираємося, щоб бути за допомогою Android Studio. Так що, якщо ви, хлопці, це вже встановлений, не соромтеся слідувати уздовж. Ми постараємося почати з нуля. І тому я збираюся спробувати і створити новий проект. І я збираюся зателефонувати мій проект Android 101. І тут ми ставимо ім'я Проект в поле Ім'я програми. Домен компанії, ви не дійсно потрібно турбуватися про це. Це просто, як Android ідентифікує додаток. Так у вас є доменне ім'я, ви можете ввести в імені домена всередині там вашому. Але якщо ви цього не зробите, ви можете відчувати себе безкоштовно набрати в все, що ви хочете. Так от, я просто наберіть в frederickw.com. І ось, нарешті, я вибираю, де Я хочу зберегти свій проект в. І я збираюся просто вибрати свій робочий стіл. Таким чином, користувачі, Фредерік Widjaja і робочий стіл. ОК. Тоді натисніть кнопку Далі. Тут я буду вибирати Мінімальна API підтримки. Таким чином, в цьому випадку, я вибиратимемо API 15. І це нормально, якщо ви насправді просто вибрати 4,4, який є останнім API. Або 5, насправді. Але тоді ви просто потрібно турбуватися про які телефони ви насправді, що підтримують, і які телефони ви орієнтуєтеся. Натисніть кнопку Далі. Отже, ми прийшли до цього екраном, і ми просто збираєтеся використовувати створити діяльність через це. Так що я збираюся натиснути пробіл діяльність, а потім Далі. Ми збираємося називати його головним діяльність, я думаю, що це добре. Просто буду називати його, прес-Finish прямо тут. Дочекайтеся завантаження, і ми йдемо. Так от ми помічаємо, три в різних папках. У нас є явне папку який містить наш маніфест. Якщо ви відкриваєте його, ми побачимо наш пакет. Або визначає, як Android додаток а то у нас це тег додатки, які містить назву нашого застосування а також в якості значка для програми. Ми можемо реально працювати в цьому Додаток прямій. Так чому б нам не спробувати і зробити це? Я збираюся використовувати Genymotion. Якщо ви принесли свій власний телефон, ви можете пов'язати його і запустити його, якщо хочете. Але я просто хочу, щоб використовувати емулятор, і я збираюся почати в цьому. Ох. Ну, я думаю, що це збирається зайняти деякий час, так що я думаю, що ми просто отримати прямо у поясненні про це докладніше. Так от у нас є каталог Java, або де ваші вихідні файли містяться. Тут ми маємо себе основну діяльність. Ви можете бачити, що це розширює клас активності. Таким чином, наша основна діяльність екрана це буде в нашому додатку. А потім ось ми помічаємо, що число функцій згенеровані автоматично для нас. У нас є функція OnCreate, і що буде називатися whenever-- СТУДЕНТ: Ви не заперечуєте, що робить текст більше? Фред Widjaja: Так, звичайно. Я постараюся, щоб збільшити розмір шрифту. Думаю, що повинно бути добре. Це добре? СТУДЕНТ: Просто трохи вище, як 20 або щось. Фред Widjaja: 20? ОК. Добре, все в порядку. Так от у нас OnCreate Метод, який би викликається, коли наша діяльність створюється в [? показати?]. У нас є onCreateOptionsMenu, і ми бачити, що є насправді Дія бар, а потім ми можемо додати деякі пункти меню на неї. А потім ось у нас є onOptionsItemSelected. Так що це, як слухача подій, так всякий раз, коли вибір в нашому барі дій клацнути це функція буде викликана, і він буде прийнятий певний предмет, що була натиснута. Добре, я збираюся see-- що не працює добре. Давайте спробуємо почати. О, Боже. ОК. Це викликає занепокоєння. Отже, в будь-якому випадку. Тут ми маємо макет для самої нашої діяльності. Це наша основна діяльність, а тут ми помічаємо, що є на панелі дій. А то у нас цей привіт Світ етикетки, і ми можемо насправді редагувати текст прямо тут. Якщо ви йдете і прокрутки до Hello World, ми можемо змінити його на те, що ми хочемо. Наприклад, це може бути, Привіт там. Ласкаво просимо. І там ми йдемо, це змінюється. О, Боже. Цей стиль не працює. Добре, що це турбує. Добре, в будь-якому випадку, ми можемо рухатися далі без цього. Так що зараз, давайте спробуємо зробити деякі дійсно основні речі. І ось ми матимемо етикетки, а потім ми матиме текст view-- вибачте, не текст зору, ми збираємося мати редагування тексту. І це компонент для введення та інше. Отже, ми маємо простий текст, а потім ми просто додамо його в наш інтерфейс. Тут я хотів би також додати деякий запас у верхній частині так, що він виглядає краще. Отже, ми збираємося, щоб перейти до властивості, а потім у верхньому полі, ми збираємося додати в 20 ДПС. Так що тепер, ДПС просто одиниця виміру в Android, і вони стоять за щільності незалежні пікселів. Так що, як ви знаєте, Android, є багато різних типів екранів а потім вони повинні Різні щільності екрана. Так от, це просто буде незалежна щільність пікселів, так що це буде те ж саме у всіх екранах. Перехід продовжити цей редагувати текст, і то я також збираюся додати кнопку. І це скаже ОК. 20 ДПС. ОК. Так що тепер у нас є три різні компоненти. І так ми можемо звернутися до їх у нашому головному класі діяльності це за допомогою цього методу називається findViewByID. Так що я збираюся визначити деякі поля. Таким чином, ми маємо в TextView, так скажемо helloText. І потім, якщо ви використовуєте Android Studio, Ви можете використовувати контекстне чергові, увійти. І натисніть Імпорт класу автоматично імпортувати відповідні класи що нам потрібно. А потім ось я йду, щоб додати ідентифікатор це TextView і назвіть його text_hello. Тепер, коли ми визначили ID для цього TextView, ми можемо використовувати це, щоб звернутися до TextView, що ми тільки що визначили. Так helloText одно TextView findViewByID, а потім ми вказуємо ідентифікатор, який ми хочемо, що r.ID.text_hello. Таким чином, це дуже схоже на JavaScript і JQuery, де ми можемо насправді просто ставляться до певних елементів в макеті просто за допомогою ідентифікатора, який ми вказали. Таким чином, в цілому, для доступу до певний об'єкт або певного поля в нашому макеті, ви будете мати використовувати цей метод findViewByID. І тоді ми будемо робити те ж саме речі для інших двох елементів. Тут я збираюся додати ID text_name. Так. Так само, як для цього. Button_ok. Тепер те, що я хочу, щоб це зробити, це Коли ми натискаємо на кнопку OK, і ми вводиться якийсь імені в текстове поле, то це буде оновлювати це Етикетка сказати, привіт, ім'я, ласкаво просимо. Отже, повернемося в нашому головному клас діяльності, ми також збираюся спробувати і зверніться до ті елементи, які ми повинні знайти. Таким чином, ми маємо EditText nameText. На жаль. Введіть й альтернативний, клас імпорту. А потім ще й кнопку OK. Крім того, ми збираємося зробити те ж саме тут. nameText одно EditText findViewByID, r.ID.text_name. А потім кнопку OK. findViewByID, r.ID, а потім button_ok. Отже, тепер у нас є всі три елементи, які ми хочемо звернутися до. Так що тепер я збираюся докласти на кнопку слухача нашої кнопки для прослуховування кліків користувачів. До цього ми використовуємо тільки setOnClickListener подія. Тепер, ось це говорю, що ми повинні вказати setOnClickListener, і ви можете зробити це, просто маючи Новий onClickListener і натисніть Enter. І тоді у вас є анонімний клас або анонімний об'єкт. І ми також маємо цю OnClick Метод, і це в основному те, що він буде називатися всякий раз, коли натиснута наш кнопки. Так от, я хочу, щоб отримати ім'я, був введений в текстове поле спочатку так Ім'я Рядок одно nameText.getText (). Знову ж таки, це, як Синтаксис Java для посилання на функції в межах об'єкта. Так nameText.getText, а потім ми збирається перетворити його в рядок. Тепер у нас є ім'я, був введений користувачем. А потім ми збираємося створити новий рядок, так що це буде називатися привіт. Я збираюся сказати, привіт, ім'я, ласкаво просимо. І, нарешті, ви хочете оновити helloText. Таким чином, щоб зробити це, ми просто викликаємо helloText.setText (привіт). ОК. На жаль. Я збираюся спробувати і повторно запустити Genymotion один останній раз і подивитися, якщо він працює. Якщо це не так, це абсолютно нормально. ОК. Так що я думаю, що це не працює. Насправді, дозвольте мені спробувати зробити це. Може бути це. Genymotion. ОК. Добре. Так, це працює. ОК. Це було страшно. ОК. Я не хотів цього робити. Отже, у нас є цей Android емулятор. Дозвольте мені вимкнути. Так у нас є для Android емулятора. Отже, ми збираємося, щоб спробувати запустити цю програму, що ми зробили. Просто буду натисніть кнопку відтворення, і скаже, чекаючи АБР. О, Боже. Перезапуск. Добре, я припускаю, що це досі не працює. Добре, по фігу, то. це буде шкода. Але давайте говорити, що ми хочемо створити новий вид діяльності, і ми матимемо картина у цій діяльності. Щоб зробити це, ми можемо просто натисніть цей файл, а потім Створити. І то тут ми можемо вибрати Діяльність, а потім Blank активність. Тут ми збираємося називати Може бути, він CatActivity. ОК, так що тепер він генерує два файла. Одна з них називається activity_cat, а інший називається catActivity, який є класом. Отже, давайте говорити, що ми хочемо, щоб додати зображення кішки прямо тут. Тому, коли ви зробите це, ми збираємося використовувати клас ImageView. Ми збираємося, щоб додати його на тут. А потім встановити поле на 20 DP. І тепер ми збираємося знайти зображення кота на інтернеті. Отже, давайте подивимося. Кат. ОК. Я думаю, це нормально. ОК. Так що тепер у нас є зображення. Отже, ми збираємося додати це в наш проект. Можна зробити це по праву клацання і then-- ми може насправді просто відкрити це, перейти завантажень, вибачте, робочий стіл. Перехід, щоб спробувати знайти його. Кат. Прямо тут. Я збираюся скопіювати його в мою папку. Тепер, це буде задавати мені кілька варіантів. Тепер, я просто хочу, щоб це знаходитись у папці розтяжною, і це буде для всіх різних дозволах екрану. Крім того, ми можемо насправді просто виберіть який здатність екрана хочу на цю фотографію, щоб бути в. Так збираєтеся вибрати полотно папку, натисніть кнопку ОК. Просто буду називати його cat.jpg. Отже, тепер він додається в нашої точки зору зображення. ми збираємося мати, щоб використовувати це джерело прямо тут, і тоді ми зможемо використовувати цю Біп-біп точку кнопку і виберіть зображення кішки. ОК. Так що тепер я хочу зробити так, що це просто правильний розмір. Так що я збираюся вибрати цей відрегулювати дивитися варіант обмежує прямо тут, і автоматично встановлює його до потрібного розміру. ОК. Тепер, насправді почати в цьому діяльність з нашого попереднього діяльності, Ви будете мати, щоб використовувати те, що називається намір. Так що давайте говорити, що я збираюся додати ще один Кнопка, яка запускає активність. Я збираюся додати його тут, прямо тут. І тоді це буде є текст, увімкніть його. На жаль. ОК. Тепер, як ми насправді відкрити новий вид діяльності в рамках цієї діяльності? Так само справа, як і раніше. Нам потрібно додати ідентифікатор цього Кнопка, і називають його button_activate. І тоді в нашій основної діяльності, збирається щоб ця нова кнопка activateButton. А потім ще й використовувати Метод findViewByID. activateButton дорівнює кнопку findViewByID r.ID.button_activate. ОК. І тоді ми також збираємося Додати в onClickListener. Новий onClickListener. А потім ми збираємося використовувати Це те, що називається наміром. Намір одно новий Intent (це). А потім назву діяльність, що ми хочемо показати. Так от в цьому, ми збираємося мати catActivity.class. Вибачте. Ми збираємося мати, щоб вкажіть @ MainActivity.this. Так що тепер .this власності має на увазі до поточного екземпляру об'єкта Сам. ОК. До цього моменту, всі питання? Все добре? Добре. І потім, якщо ви хочете, щоб почати діяльність, це досить просто. Ми просто подзвонити Метод startActivity. І тоді ми проходимо в намірах Об'єкт, який ми тільки що визначили. На жаль, ми не можу показати це. Я сподівався, що ми можемо реально працювати це і показати його по в семінарі, але, на жаль, немає. О, Боже. Розумію. О, ми збираємося, щоб спробувати убити ATB.exe. ОК. Перезапуск. Хіба це працює? О, добре. Так що тепер це насправді компіляції. Ох. На жаль, є пристрою не працює. Давайте спробуємо перезавантажити емулятор. Ах, там ми йдемо. Це виявилося. ОК. Так що я збираюся почати мій додаток на моєму емуляторі Android. І у нас є речі, що ми визначили тільки зараз. Отже, ми маємо етикетку, вид Текст, текстове поле, а потім кнопку. Так що я збираюся вхід моє ім'я прямо тут, і там ми йдемо, він змінив текст. Так що, якщо ми введемо в Фу, з це збирається змінювати в Foo. І якщо я натискаю Актівіровть, що ми пов'язані насправді запустити новий вид діяльності, ми сподіваємося, що це буде працювати, там ми йдемо. Він запускає нову діяльність. Щоб повернутися назад, ми можемо натиснути Кнопка Назад прямо тут. Чи ні. О, там ми йдемо. На жаль. Це було погано. ОК. Так що тепер ми впровадили деякі основні речі в Android, ми можемо спробувати і зробити деякі більш складні речі. Отже, спочатку давайте спробуємо передавати повідомлення від одного виду діяльності до іншого. Так що давайте говорити, що ми хочемо пройти по Назва від основної діяльності Коту діяльності. І ім'я буде витягується з цієї nameText. Отже, по-перше, ми збираємося отримати ім'я прямо тут. Ім'я Рядок одно nameText.getText (). ToString (). ОК. І тоді ми зможемо використовувати цю річ називається intent.putExtra (ім'я), а потім він насправді хоче ключ для цього додаткового поля. Так що я збираюся, щоб визначити новий ключ, ми будемо називати його EXTRA_NAME. Так що я збираюся використовувати це ключ, CatActivity.EXTRA_NAME, а потім передати в самій назві. ОК, так що тепер ми можемо насправді отримати це в новій CatActivity. Щоб зробити це, ми повинні використовувати Мета одно метод getIntent. Так що тепер це буде отримати умислу був використаний для виклику цієї нової діяльності. Так що якщо ви хочете отримати рядок що ми насправді поклав всередині наміри, Ви можете використовувати intent.getStringExtra а потім передати в тому ж ключі, Добре, тепер давайте говорити, що ми вас Щоб змінити це поле. Змінити це поле прямо тут. І давайте зробимо шрифт Розмір цієї області більше. Отже, давайте скажемо, я хочу, щоб це було 20 DP. ОК. І я збираюся додати ID для цього TextView, і я буду називати його text_cat. Вибачте. І ще в CatActivity, Те ж саме справа, як раніше. Ми збираємося визначити деякі поля. Ось це буде TextView catText. А потім catText одно TextView findViewByID, r.ID.text_cat. ОК. А потім назад сюди, я збирається встановити текстовий право після того як ми отримати для це з наміру. SetText (ім'я). Отже, давайте спробуємо це. Натисніть на кнопку відтворення. Я збираюся використовувати той же пристрій. Повернутися в тут. Так що давайте говорити, що я не input-- якщо ми не вказуємо будь-яке ім'я, давайте подивимося, що відбувається. Так що тепер немає нічого, що з'являється. Таким чином ми йдемо назад і вхід наше ім'я, це просто буде сказати Фред. Так що ми можемо насправді передачі повідомлень від одного виду діяльності до іншого. ОК. Так що купа інших поглядів що ви можете використовувати в Android. Так що тепер у нас є прогрес барів, у нас є подання списку, у нас є кнопки-перемикачі, і якщо ви дійсно хотіли, щоб дізнатися більше про те, Ви можете фактично відвідати ці веб-сторінок. Вони містять багато різних ресурсів. Так, наприклад, в API направляти прямо тут насправді дає вам деякі приклади коду для деякі особливості в Android бібліотеці. І ще кілька підручників я знайшов корисним при навчанні Android. Це саме по собі офіційний підручник, а також це інший підручник прямо тут. І, нарешті, ви можете насправді використовувати різні бібліотеки для вашого Android програми. Тепер, ці насправді продовжити функціональність вашого застосування без дійсно написати багато коду. Недоліком є, Звичайно, що ви насправді повинні навчитися бібліотекам себе. Так, наприклад, якщо ви хочете зробити Використання технології хмарних Dropbox, то ви можете використовувати API Dropbox. Подібні з API Facebook. А потім там насправді мало різні інші різні бібліотеки що ви можете використовувати. Якщо ви намагаєтеся отримати, як, JSON з певного веб-сайту, то я думаю, Google JSON Бібліотека буде досить корисно. Так що тепер, що перетворює JSON форматований текст в об'єкт Java, і навпаки. А тут ще з переобладнання і Пікассо. І це, якщо ви хочете, щоб use-- це тому що якщо ви використовуєте API спокою. І Пікассо, якщо ви використовуєте зображення для вашого Android програми. Добре. Велике спасибі, і отримуйте задоволення кодування.