Обзор курса Разработка приложений для Android от Google от Udacity (ссылка на бесплатный курс ниже)

  1. URL, URI и HTTP-запросы — URL (унифицированный указатель ресурса, особый класс унифицированного идентификатора ресурса) [в основном известный как веб-адрес], построенный из различных компонентов. Лучшей практикой является сохранение базового URL-адреса, а также параметров сортировки и запроса в виде констант. Чтобы легко создать URI, мы можем использовать класс Android Uri.builder framework с методами parse() и buildUpon(). URI можно просто преобразовать в URL с помощью метода toString() в конструкторе URL-адресов Java.

    Чтобы получить HTTP-соединение, мы можем создайте объект HttpURLConnection и инициализируйте его, вызвав метод openConnection() нашего URL. Он просто создает объект и еще не устанавливает соединение. Теперь мы можем задать метод запроса, добавить поля заголовков или изменить свойства соединения. Затем > используя getInputStream() для нашего объекта HttpURLConnection, мы получаем входной поток открытого соединения. Чтобы прочитать содержимое входного потока, мы можем использовать Scanner, который используется для простой и быстрой токенизации потоков. В объекте сканера мы используем метод useDelimiter() со значением «\\A», чтобы заставить сканер прочитать все содержимое входного потока в следующий поток маркеров.

    Используя этот метод, мы буферизируем данные, извлекаем их из сети небольшими порциями и обрабатываем буферы разного размера. Он делает это путем выделения и освобождения буферов по мере необходимости и обработки кодировки символов, переводит UTF-8 (кодировка JSON по умолчанию) в UTF-16 (кодировка Android по умолчанию).
  2. Разрешения: при установке нового APK ему присваивается уникальный идентификатор пользователя Linux, а все его файлы, процессы и другие ресурсы недоступны для других приложений. > чтобы убедиться, что это не повлияет на ОС, пользователя или другие приложения.

    Когда ваше приложение пыталось получить доступ к конфиденциальным данным (таким как местоположение GPS, доступ к сети или чтение контактов), вы должны объявить это как разрешение в манифесте приложения. Для Android Зефир (6) многие из этих разрешений предоставляются без диалогового окна разрешения. Некоторые конфиденциальные разрешения должны быть подтверждены пользователем во время работы вашего приложения. Рекомендуется запрашивать абсолютно минимальное количество разрешений.
  3. Основы работы с потоками. Android, как и любая другая современная система, поддерживает многозадачность. Каждое приложение может быть разделено на несколько потоков выполнения, работающих одновременно. Запланированные операционной системой, они могут выполняться на разных ядрах ЦП или распределяться по времени на одном ЦП, то есть каждый поток работает в течение определенного периода времени.

    Приложения для Android имеют один (основной) поток пользовательского интерфейса, который отвечает за получение событий от различных датчиков и настройку следующего кадра для отрисовки.Идеальное время выполнения составляет 60 кадров в секунду, что означает, что все вычисления между отрисовками должны занимать менее 17 миллисекунд.

    Рекомендуется делать в этом основном потоке как можно меньше операций. strong> Итак, если мы хотим подключиться к сети (что может занять секунды), нам нужно запустить вторичный поток выполнения.
  4. AsyncTask.AsyncTask позволяет запускать задачу в фоновом потоке, а результаты публикуются в потоке пользовательского интерфейса. Поток пользовательского интерфейса имеет очередь сообщений и обработчик, который позволяет нам отправлять и обрабатывать исполняемые объекты и сообщения, часто из других потоков. AsyncTask имеет собственный интерфейс для реализации этого поведения.

    AsyncTask — это универсальный класс, что означает что он принимает параметризованные типы (технически проходит как массивы в Java) в своем конструкторе.
    Три типа, используемые AsyncTask, следующие:
    (1)Params — тип параметра, отправляемый задаче при выполнении
    (2) Ход выполнения  — тип, опубликованный для обновления хода выполнения с использованием фоновых вычислений
    (3) Результат — тип результата фоновых вычислений

    Эти 3 параметры соответствуют трем основным функциям, которые вы можете переопределить в AsyncTask: (1) doInBackGround (2) OnProgressUpdate (3) OnPostExecute. Существует также функция onPreExecute, помогающая выполнить шаблон.

    Чтобы выполнить AsyncTask, вы вызываете метод execute с параметрами, которые должны быть установлены для фоновой задачи. Затем AsyncTask проходит несколько этапов:
    (1) вызывает onPreExecute для инициализации всего, что вам может понадобиться в потоке пользовательского интерфейса.
    (2) вызывает doInBackground. > где будет выполняться ваша задача. Должен быть переопределен. Использует переданные ему параметры.
    (3) Вызывает publishProgress на тот случай, если вам потребуется обновить пользовательский интерфейс во время процесса. Использует аргументы Progress. Может вызываться несколько раз.
    (4) когда doInBackground завершается, мы возвращаем аргумент Result. Это вызывает вызов функции OnPostExecute с возвращенным результатом. .

5. JSON — формат JSON — это то, как мы получаем данные из Интернета. JSON означает обозначение объектов Java Script. Это основной формат. метод обмена данными в Интернете. Его формат синтаксически идентичен коду для создания объектов Javascript, а стандартные функции Javascript могут легко читать данные JSON.

Есть 4 причины, по которым JSON широко используется:
(1)Человекочитаемый
(2) Более компактный
(3) Легче писать
(4)Позволяет объявлять массивы

JSON записывается в виде пар "ключ-значение", таких как "имя": "Майк".
Мы можем создать массив, добавив квадратную скобку '[' в объявление и определив объекты внутри .

ССЫЛКИ:

Вы можете найти гораздо больше на бесплатном курсе «Разработка приложений для Android от Google» на веб-сайте Udacity здесь: (проверьте!)

https://www.udacity.com/course/new-android-fundamentals--ud851