Что значит sdk. Разработка под Android: устанавливаем SDK

06.04.2019

Такая популярная операционная система как Android не может обойтись без мощных и простых средств разработки. И именно здесь Android SDK (Software Development Kit или Набор средств для разработки ПО) показывает себя с лучшей стороны. Сегодня мы установим SDK и посмотрим, что он умеет. Это будет цикл статей о разработке приложений и игр для Android

Подготовка к установке

Android SDK поддерживает большинство современных операционных систем под архитектурой x86 и x86_64, в том числе Windows, многие дистрибутивы Linux и Mac OS X. Также на ПК должен быть установлен Java Development Kit (Java 7 или Java 8) , который обязательно потребуется для многих возможностей SDK, ведь Android неразрывно связан с Java.

Стоит заметить, что для встроенного эмулятора Android необходимо хорошее «железо» на PC, как, в принципе, и для других современных средств разработки.

Установка с помощью Android Studio

Уже долгое время существует Android Studio - официальная IDE (Integrated Development Enviroment) для разработки под Android. Туда уже включено всё необходимое и устанавливается в один клик. Достаточно лишь установить IDE, и вы также сможете использовать все возможности SDK, интегрированные внутри среды разработки.

Скачать Android Studio можно с официального сайта . Там же можно найти много полезных гайдов по работе с Android SDK, но, к сожалению, доступны они исключительно на английском языке.

Установка отдельного пакета

Если вы не рассчитываете использовать такой мощный инструмент как Android Studio или у вас уже есть установленная Intellij IDEA, на основе которой и работает эта среда разработки, то вы можете установить Android SDK отдельно. Однако никаких других преимуществ этот метод установки не даст и рекомендуется воспользоваться предыдущим способом.

Для загрузки отдельного пакета инструментов для разработки без IDE необходимо воспользоваться сайтом Android Developer . Игнорируя все возможные упоминания об Android Studio, спускаемся в самый низ страницы и находим раздел «Get just command line tools» - можно также воспользоваться поиском по странице. После скачивания подходящего пакета для вашей операционной системы, достаточно распаковать в любое удобное для вас хранилище - рекомендуется также указать местоположение SDK в Intellij IDEA (Project Structure > SDK).

Запуск и возможности

Для получения доступа ко всему функционалу Android SDK достаточно запустить пакетный файл android, если вы работаете под Windows, или же в терминале выполнить команду «android» в папке «tools/» вашего SDK для запуска на Linux и MacOS X. Вам будет предложено установить инструменты для разных версий API, чем больше инструментов установлено - тем лучше. Загрузка пакетов может занять много времени в зависимости от вашей системы и скорости интернет-соединения.

Перейдём к описанию основных инструментов:

  • Platform-tools включает в себя основные инструменты взаимодействия с Android, такие как ADB, fastboot и systrace. Android Debugging Bridge поможет отследить ошибки в работе приложений на смартфоне, а также выполнять некоторые действия по работе с APK; fastboot, знакомый всем любителям прошивки своих Android-девайсов, работает в паре с ADB и помогает наладить работу устройства ещё до загрузки ОС, а systrace способен анализировать скорость работы процессов в операционной системе;
  • Build-tools работают вместе с Platform-tools, но могут быть обновлены отдельно. Сюда входят такие утилиты как ProGuard для защиты ваших APK-файлов, JOBB для работы с расширениями в формате *.obb, и Zipalign, необходимый для оптимизации ваших готовых приложений;
  • Кроме того, в SDK предусмотрен продвинутый эмулятор ОС Android, в котором вы сможете протестировать любые приложения и опробовать функции свежих версий Android. Однако для качественной эмуляции необходимо хорошее железо на ПК, также рекомендуется использовать эмуляцию работы x86.

Зачем же нужен Android SDK?

Android SDK - универсальный набор инструментов, который пригодится каждому пользователю смартфона или планшета, работающего под операционной системой Android. Обычный юзер может получить доступ к необходимым логам, восстановить устройство из нерабочего состояния и получить доступ к полноценному эмулятору, тогда как для разработчика это тот самый необходимый минимум, чтобы начать создавать игры и программы для Android.

Во время хакатона по Windows8 многим участникам пришла в голову «гениальная» идея писать код, не изучив документацию по WinRT и Windows8 API с примерами из SDK.
Я решил больше не повторять этих ошибок и предварительно изучить весь интересный SDK, который я могу использовать, а уже потом садиться писать приложения.
В SDK очень много примеров, но не обещаю делать обзор по всем. Мне совершенно не интересен DirectX, слабо интересны примеры на HTML-JS-CSS. Я буду писать о примерах на C#.

В этой статье я расскажу и покажу примеры API системы, для работы с настройками приложения, поиском, профилем пользователя.

Во второй статье - примеры работы с датчиками и сенсорами (геокоординаты, акселерометр, камера). Статья будет опубликована во вторник или среду.

В 3 статье будут примеры, связанные с GUI интерфейсом.

На основе личного опыта использования Win, я могу сказать, что пользователю первое время тяжело разобраться с приложением, т.к. он не знает, где искать его настройки. Есть несколько панелек, где они могут быть. Это боковая панель (App settings) и верхняя-нижняя панель (AppBar)

Работа с настройками App settings

Проект App settings sample
В боковой панели можно и нужно разместить настройки вашего приложения.
Из опыта общения с юзерами телефонов на WP7, IPhone, Android я понял, что пользователь достаточно быстро привыкает к шаблонам поведения приложения на каждой платформе и интуитивно ищет настройки приложения там, где он их видел в других приложениях. Windows8 приучит пользователя искать настройки в боковой панели, а значит, разработчик должен свои настройки вынести именно туда.
Как их туда добавить?

Достаточно просто. А какие настройки там хранить - это уже дело разработчика. Цвет ли фона, личные данные и/или что-то еще…


Работа с App bar

То, что нельзя занести в App Settings (это не настройки, а, допустим, частые действия или, например, отправка фидбэка разработчикам), стоит занести в App Bar. Это верхняя или нижняя панель. Тем, кто использовал Windows Phone7, я думаю, объяснять этого не нужно. Чтобы появилась панель App Bar, необходимо вытащить ее из нижней или верхней частей экрана. В случаи использования мышки- правый клик. Выглядит эта панель в развернутом состоянии примерно так:


Хочу показать пример на HTML:


Код выглядит просто. Это просто кнопки, у которых есть нестандартный html-атрибут data-win-control, в котором указан тип кнопки, и далее опции.

И пример на xaml.
Код, в целом, похож на App Bar в WP7. Единственное различие состоит в том, что в wp7 не было (кажется) возможности группировать кнопки в App Bar в различные слои, но, в общем, это просто кнопки, которые находятся в специализированном стандартном месте.


Контракт поиска

Проект SearchExtensionSample
Поиск по приложению может оказаться достаточно важным, если у Вас в приложении много контента, а человек ищет что-то достаточно глубоко закопанное. Я думаю, что стоит логировать поиск по приложению, чтобы понять, что по нему ищут пользователи. Если окажется, что люди очень часто ищут определенный контент, то это может означать, что разработчик должен вынести этот контент ближе к стартовой странице.
Как добавить эту возможность
Необходимо открыть вкладку Store и в ней отредактировать манифест, добавив возможность использования поиска.

После этого для вашего приложения в боковой панели будет доступен поиск.


Итак, теперь нам доступен поиск. Получаем поисковую панель, сохраняем ее, вешаем обработчик на нажатие Enter (или кнопки «Поиск» самой), также вешаем обработчик на изменение текста.
Что делать с этим значениями - это на Ваше усмотрение. Главное - мы получили пользовательский ввод.
В описании к этому примеру есть способы применения, но я уверен, что Вы и так придумаете что и куда применить.

Работа с иконкой текущего пользователя

проект AccountPictureName
Через API, можно получить изображение пользователя, его имя и фамилию. Зачем это нужно - без понятия. Попробуйте применить фантазию. Можно, например, эффекты на изображения накладывать веселые, можно при догрузке контент в соглашение вставлять (что-то вроде «Уважаемый Некто Нектоевич»). В общем, большой простор для воображения.


Код, который получает данные, крайне прост. Буквально 1 строчка, правда async, await придется использовать, так что настоятельно рекомендую посмотреть что это такое.



Даже и рассказывать как это происходит не вижу смысла: и так все ясно.

Заключение

Я считаю, что изучение SDK перед тем как начать кодить (даже на уже давно известном языке) крайне важно. Это кажется очевидным, но многие (как и я) на хакатоне по Win8 допустили эту ошибку.
API кажется гораздо проще, когда его изучаешь, а не когда ты ищешь нужный функционал, который вдруг понадобился позарез.
В обеденный перерыв на работе можно изучить много чего интересного, отвлечься от текущего проекта и немного расслабиться.

software development kit ) - комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ , программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ.

Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK распространяется через Интернет . Многие SDK распространяются бесплатно для того, чтобы побудить разработчиков использовать данную технологию или платформу.

Поставщики SDK иногда подменяют слово «software» в словосочетании «software development kit» на более точное слово. Например, Microsoft и Apple предоставляют Driver Development Kit (DDK ) для разработки драйверов устройств, называет свой инструментарий для разработки PalmOS Development Kit (PDK ), а Oracle - Java Development Kit (JDK ).

Примеры SDK

См. также

Напишите отзыв о статье "SDK"

Отрывок, характеризующий SDK

Она видела его лицо, слышала его голос и повторяла его слова и свои слова, сказанные ему, и иногда придумывала за себя и за него новые слова, которые тогда могли бы быть сказаны.
Вот он лежит на кресле в своей бархатной шубке, облокотив голову на худую, бледную руку. Грудь его страшно низка и плечи подняты. Губы твердо сжаты, глаза блестят, и на бледном лбу вспрыгивает и исчезает морщина. Одна нога его чуть заметно быстро дрожит. Наташа знает, что он борется с мучительной болью. «Что такое эта боль? Зачем боль? Что он чувствует? Как у него болит!» – думает Наташа. Он заметил ее вниманье, поднял глаза и, не улыбаясь, стал говорить.
«Одно ужасно, – сказал он, – это связать себя навеки с страдающим человеком. Это вечное мученье». И он испытующим взглядом – Наташа видела теперь этот взгляд – посмотрел на нее. Наташа, как и всегда, ответила тогда прежде, чем успела подумать о том, что она отвечает; она сказала: «Это не может так продолжаться, этого не будет, вы будете здоровы – совсем».
Она теперь сначала видела его и переживала теперь все то, что она чувствовала тогда. Она вспомнила продолжительный, грустный, строгий взгляд его при этих словах и поняла значение упрека и отчаяния этого продолжительного взгляда.
«Я согласилась, – говорила себе теперь Наташа, – что было бы ужасно, если б он остался всегда страдающим. Я сказала это тогда так только потому, что для него это было бы ужасно, а он понял это иначе. Он подумал, что это для меня ужасно бы было. Он тогда еще хотел жить – боялся смерти. И я так грубо, глупо сказала ему. Я не думала этого. Я думала совсем другое. Если бы я сказала то, что думала, я бы сказала: пускай бы он умирал, все время умирал бы перед моими глазами, я была бы счастлива в сравнении с тем, что я теперь. Теперь… Ничего, никого нет. Знал ли он это? Нет. Не знал и никогда не узнает. И теперь никогда, никогда уже нельзя поправить этого». И опять он говорил ей те же слова, но теперь в воображении своем Наташа отвечала ему иначе. Она останавливала его и говорила: «Ужасно для вас, но не для меня. Вы знайте, что мне без вас нет ничего в жизни, и страдать с вами для меня лучшее счастие». И он брал ее руку и жал ее так, как он жал ее в тот страшный вечер, за четыре дня перед смертью. И в воображении своем она говорила ему еще другие нежные, любовные речи, которые она могла бы сказать тогда, которые она говорила теперь. «Я люблю тебя… тебя… люблю, люблю…» – говорила она, судорожно сжимая руки, стискивая зубы с ожесточенным усилием.

использование мобильный

Я пытаюсь объяснить не-разработчику разницу между API SDK. Мне нужно объяснить, почему коммерческий поставщик программного обеспечения для отпечатков пальцев, скорее всего, не предоставит SDK, хотя они, возможно, и использовали его.

Поставщикам устройств и поставщикам программного обеспечения могут и должны предоставлять четко определенный API. Этот API позволяет другим программам (быть написанным) взаимодействовать с собственными программными компонентами или аппаратными устройствами поставщика.

Если у кого-то есть больше идей, чтобы ясно объяснить это, я бы очень признателен за предложения. Я хочу подчеркнуть, что цель состоит в том, чтобы объяснить концепции не-программисту, который не знает разработчик-жаргон .

В частности, в контексте датчика отпечатков пальцев и программного обеспечения для регистрации / проверки, вот как я попытался это объяснить:

Если я являюсь производителем устройств / датчиков отпечатков пальцев и не занимаюсь написанием программного обеспечения, то я мог бы лучше продавать свой продукт:

  1. Убедитесь, что мои драйверы устройств установлены в самых разных операционных системах
  2. Определите и предоставите API для разработчиков программного обеспечения для написания программ (например, для регистрации, проверки), чтобы «поговорить» или использовать мое устройство
  3. Разрабатывайте и предоставляйте SDK (один шаг за пределы API), чтобы разработчики программного обеспечения могли быстрее и быстрее писать программы, которые работают с моим устройством. SDK могут предоставлять библиотеки вспомогательного кода, справочные приложения, документацию и т. Д.

2018-11-27T00:00Z


5 Answers


API = Интерфейс прикладного программирования SDK = Комплект разработки программного обеспечения

SDK представляет собой полный набор API-интерфейсов, которые позволяют выполнять большинство действий, необходимых для создания приложений. Кроме того, SDK может включать в себя другие инструменты для разработки платформы / элемента, для которой он предназначен.

С другой стороны, API - это всего лишь ряд связанных методов, которые могут быть полезными для определенной цели.

Например, JDK (Java Development Kit) содержит API, а также компиляторы, среды выполнения и другие инструменты. Java API - это просто все библиотеки, которые составляют основной язык, с которым вы можете работать из коробки.

Примеры API: API Java, API Карт Google, API Flash Player.

Примеры SDK: JDK, GWT, Flex SDK.

2018-12-04T00:00Z

API = Словарь доступных слов и их значений (и требуемая грамматика для их объединения)

SDK = система обработки Word ... для 2-летних младенцев... которая пишет прямо из идей

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

2018-12-11T00:00Z

Интерфейс прикладного программирования - это набор подпрограмм / структур данных / классов, который определяет способ взаимодействия с целевой платформой / программным обеспечением, таким как OS X, Android, приложение для управления проектами, программное обеспечение для виртуализации и т. Д.

Хотя Software Development Kit является оберткой API / s, что упрощает работу для разработчиков.

Например, Android SDK позволяет разработчикам взаимодействовать с платформой Android в целом, в то время как сама платформа построена составными программными компонентами, общающимися через API.

Кроме того, иногда SDK создаются для облегчения разработки на определенном языке программирования. Например, веб-драйвер Selenium (встроенный Java) предоставляет API-интерфейсы для управления любым браузером изначально, в то время как capybara можно рассматривать как SDK, который позволяет разработчикам Ruby использовать веб-драйвер Selenium. Тем не менее, веб-драйвер Selenium также является SDK сам по себе, поскольку он сочетает взаимодействие с различными драйверами родного браузера в одном пакете.

2018-12-18T00:00Z

Предположим, что компания C предлагает продукт P и P каким-то образом использует программное обеспечение. Затем C может предоставить библиотеку / набор библиотек разработчикам программного обеспечения, которые управляют программными системами P.

Эта библиотека / библиотеки - это SDK . Это часть систем P. Это набор для разработчиков программного обеспечения для использования, чтобы модифицировать, настраивать, исправлять, улучшать и т. Д. Программный фрагмент P.

Если C хочет предложить функциональность P другим компаниям / системам, она делает это с помощью API .

Это интерфейс для P. Способ взаимодействия внешних систем с P.

Если вы подумаете с точки зрения реализации, они будут казаться весьма похожими. Особенно сейчас, когда Интернет стал как одна большая распределенная операционная система.

С целью, однако, они на самом деле совершенно разные.

Вы создаете что-то с SDK, и вы используете или потребляете что-то с API.

2018-12-25T00:00Z

Кусок пирога:

  • API - это интерфейс . Это похоже на спецификацию телефонной системы или электропроводки в вашем доме. Anything * может использовать его, пока он знает, как взаимодействовать. Вы даже можете купить готовое программное обеспечение, чтобы использовать определенный API, так же, как вы можете купить с полкового телефонного оборудования или устройств, которые подключаются к проводке переменного тока в вашем доме.
  • SDK - это инструментарий внедрения . Это похоже на комплект, который позволяет ** вам создавать что-то обычай для подключения к телефонной системе или электропроводке.

* Все может использовать API. Некоторые API имеют положения безопасности, требующие лицензионные ключи, аутентификацию и т. Д., Которые могут запрещать полное использование API в конкретных случаях, но это происходит только из-за сбоя определенных шагов аутентификации / авторизации. Любое программное обеспечение, которое предоставляет правильные учетные данные (если требуется), может использовать API.

** Технически, если API хорошо документирован, вам не нужен SDK для создания собственного программного обеспечения для использования API. Но наличие SDK обычно делает процесс намного проще.