В статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette .
Осторожно много скриншотов.
1. Трудности разработки
Android это уникальная операционная система. Разработчик приложений должен знать ее особенности и нюансы для получения хорошего результата. Существуют некоторые трудности, которые нужно учитывать при разработке (). Перечислим их кратко:
1) Приложение требует для установки в два раза (или даже в четыре) больше места чем оригинальный размер приложения.
2) Скорость работы с файлами на встроенной флэшке падает в десятки раз при уменьшении свободного места.
3) Каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.
2. Принципы разработки производительных приложений под Android
Для работы нужен Android SDK и Eclipse. О том как все установить и начать написано .
Для загрузки проекта в Eclipse ножно выполнить такую последовательность действий:
1) Разархивировать проект в отдельную папку в рабочем пространстве Eclipse.
2) Выбрать пункт меню File->New->Android Project.
3) В диалоге New Android Project выбрать опцию Create project from existing source.
4) В поле Location указать путь к папке с проектом. Нажать Next.
Меню программы
Игровое меню описано в файле res/layout/main.xml. Описание интерфейса можно редактировать в виде XML или в виде визуализированного интерфейса. Для переключения служат вкладки внизу области отображения содержимого.
Обычно элементы управления содержатся внутри контейнера, в нашем случае это LinearLayout. Он располагает все элементы в виде одной колонки.
Ресурсы
Обратите внимание, что все текстовые надписи (android:text) берут данные из ресурсов. Например, запись android:text="@string/main_title" указывает, что текст нужно искать в файле res/values/string.xml в узле с именем main_title (Android Sudoku). Цвет фона также содержится в ресурсах (android:background="@color/background") но в файле color.xml (#3500ffff). При открытии файлов ресурсов в редакторе может возникнуть ошибка. Но всегда можно перейти к отображению XML.
Элементы управления к которым нужно получить доступ из кода должны иметь id. У кнопок есть id (android:id="@+id/continue_button") для того что бы было можно присоединить к кнопке обработчик нажатия. Знак плюс указывает, что для кнопки нужно создать идентификатор в файле /gen/org.example.sudoku/R.java (public static final int continue_button=0x7f0b000b;). Этот файл генерируется автоматически и не рекомендуется его изменять. Файл содержит класс R через него можно обратиться к любому элементу интерфейса и другим ресурсам.
Создание окон
Рассмотрим создание окна с информацией о программе. Разметка этого окна находится в файле /res/layout/about.xml. Activity класс описан в файле /src/org.example.sudoku/About.java. Activity связана с разметкой в файле AndroidManifest.xml. Этот файл можно просматривать или через редактор или в виде XML. На разных вкладках редактора можно выбрать различные разделы файла. В разделе Application находятся параметры Activity. Обратите внимание, что параметр Theme имеет значение :style/Theme.Dialog. Благодаря этому стиль окна больше похож на модальный диалог.
Вызов окна с информацией о программе осуществляется из класса Sudoku по нажатию кнопки About. Класс Sudoku написан так, что сам обрабатывает событие Click (public class Sudoku extends Activity implements OnClickListener). В методе public void onClick(View v) определяется какая кнопка вызвала событие и выполняется соответствующий код. Для показа окна About вызывается соответствующий Intent.
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
Обработчики событий также могут устанавливаться на конкретные элементы управления. Например в классе Keypad при создании класса в методе setListeners() устанавливаются обработчики для отдельных кнопок.
Простой диалог
Пользователю нужно дать возможность выбрать уровень сложности. Это маленький диалог, в котором нужно выбрать один из нескольких вариантов. Очень радует, что для этого не нужно создавать отдельный Intent, а достаточно воспользоваться классом AlertDialog.
Разберем процес старта новой игры. Пользователь нажимает на кнопку New Game. Обработчик нажатия это метод класса Sudoku – onClick. Далее вызывается метод openNewGameDialog, который показывает диалог выбора сложности и стартует игру с выбранным уровнем сложности. Это диалог строится с помощью класса AlertDialog.
Private void openNewGameDialog() { new AlertDialog.Builder(this) .setTitle(R.string.new_game_title) .setItems(R.array.difficulty, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { startGame(i); } }) .show(); }
Обратите внимание, что содержимое диалога (набор кнопок) строится из массива строк R.array.difficulty. Тут же назначается обработчик нажатия на кнопки диалога, который по номеру нажатой кнопки запускает новую игру с заданным уровнем сложности, вызывая метод startGame.
Графика
За игровую логику отвечает класс Game. Тут загружаются задания, проверяются условия выигрыша. Класс Game есть Activity но интерфейс описан не в XML, а создается кодом. В методе onCreate создается View:
PuzzleView = new PuzzleView(this);
setContentView(puzzleView);
puzzleView.requestFocus();
PazzleView это класс производный от View, в нем рисуется игровое поле и происходит обработка событий касания экрана (метод onTouchEvent) и нажатия клавиш (метод onKeyDown).
Разберем процесс рисования в Android. Для рисования нужно перегрузить метод onDraw. Метод получает объект Canvas через который осуществляется рисование. Для задания цветов создаются обьекты класса Paint. Цвет задается в формате ARGB. Цвет лучше хранить в виде ресурсов (файл colors.xml). Paint это не только класс для хранения информации о цвете. Например при рисовании текста он содержит информацию о способе закрашивания, шрифте и выравнивании текста.
Canvas содержит набор методов для рисования графики (drawRect, drawLine, drawPath, drawText и другие).
Для оптимизации графики, лучше воздержаться от создания объектов и лишних вычислений внутри метода onDraw (рассматриваемый пример реализации графики не оптимален).
Музыка
Для воспроизведения музыки используется класс MediaPlayer. Музыка для игры добавлена в ресурсы. Нужно просто скопировать нужные файлы в папку /res/raw (форматы WAV, AAC, MP3, WMA, AMR, OGG, MIDI).
Для начала нужно создать экземпляр класса MediaPlayer:
mp = MediaPlayer.create(context, resource);
тут context это обычно класс, который инициирует запуск музыки, resource – идентификатор ресурса с музыкой. Для управления воспроизведением используют методы start, stop и release.
В игре музыка воспроизводится в главном меню (запуск из класса Sudoku) и в игровом процессе (запуск из класса Game). Для управления воспроизведением создан класс Music. Класс содержит статический экземпляр MediaPlayer, что позволяет не создавать отдельный проект для каждого запуска звукового ресурса.
В классах Sudoku и Game переопределены методы onResume и onPause, в которых запускается музыка при старте Activity и останавливается при деактивации.
Выводы
Пример, который рассматривается в статье не слишком сложный, что позволяет в нем разобраться без особых усилий. При этом он затрагивает различные аспекты разработки под Android.
P.S. Большое спасибо пользователю
Удобное информационное приложение под андроид, которое позволит начинающим кодерам познать азы выбранного языка программирования. Эта бесплатная программа является достаточно подробным справочником в области разработки на Java. Тут полностью расписанный процесс установки, а также основные функции, паттерны, используемые в процессе работы. Узнайте все, что необходимо понимать и освоить, для плодотворного кодинга на Java.
Функционал:
- Приложение выполнено в форме удобного андроид справочника, в котором все распределено по категориям и урокам. Это позволит легко переключатся между информационными статьями и легко делать закладки. Дополнительно здесь присутствуют вставки программного кода, которые наглядно показывает, как образуется то, или иное условие. Снизу под ним подробно расписано, какая строка за что отвечает. Таким образом познавать основы кодинга достаточно просто и интересно.
Управление:
- Для работы со справочником в этой андроид программе достаточно в меню выбрать нужную категорию, а затем урок. После этого пользователя переместит на полную статью со всеми изображениями, кодом и комментариями. Это очень удобно, так как все под рукой и легкодоступно в пределах изучаемого материала. В софте есть все необходимое для быстро старта и активного продолжения обучения в этом направлении.
Актуальность:
- интересная, красиво оформленная программа, позволяющая даже начинающим пользователям быстро влиться в разработку приложений для мобильных платформ. Также здесь много ссылок на дополнительный материал, что позволит выйти за пределы данного справочника и узнать дополнительные тонкости языка.
Оформление:
- Программа имеет строгий, лаконичный вид, в котором информация структурирована, и оформлена с целью донести полезную статью. Материал изложен очень понятно, специально для новичков. В верхней части экрана присутствует меня для быстрого переключения по разделам.
Особенности:
Удобный интерфейс
Приятное оформление
Полезная информация
Отличная структура уроков
Наличие кода
Ссылки на дополнительные источники
Вывод:
- полезный справочник под android, в котором собраны необходимые материалы, статьи и примеры, необходимые для быстрого и уверенного старта в сфере разработки для андроид приложений.
Программирование под Android для начинающих. Часть 1
- Разработка мобильных приложений ,
- Разработка под Android
- Tutorial
Здравствуйте. Сегодня на глаза попался о курсе программирования под Android на сайте Linux Foundation, а вместе с ним - и немало комментариев о том, что хотелось бы видеть и перевод этих уроков. Поскольку я сейчас, после четырех лет разработки под микроконтроллеры, начал изучать и программирование для мобильных устройств, то параллельно решил сделать перевод первой части урока.
Программирование под Android для начинающих. Часть 1
Смартфоны и планшеты на Android все чаше встречаются в наших сумках и карманах, и программирование под Android также становится все популярнее. Это отличная платформа для разработки - API прекрасно документирован и прост в использовании, да и просто интересно создать что-то, что вы cможете запустить на своем смартфоне. Изначально вы можете обойтись и без него, создав и протестировав код с помощью эмулятора на вашем Linux ПК. В первой из двух частей этого введения объясняется как создать простое приложение с таймером, а также даются начальные сведения о Android API. Курс подразумевает наличие начальных представлений о Java, XML и технологиях программирования, но тем не менее не стесняйтесь попробовать даже если вы имеете об этом очень смутное представление.Начало работы и среда разработки
Немного о версиях: последней версией Android является 4.2 (Jelly Bean), но, как можно выдеть по этой диаграмме , она еще недостаточно распространена. Лучше всего начинать разработку под одну из версий: 4.0 (Ice Cream Sandwich) или 2.3 (Gingerbeard), особенно с учетом того, что версии Android поддерживают обратную совместимость (т.е. ваш код для версии 2.3 будет работать и на 4.2), а приложения, разработанные для более поздней версии, не всегда будут работать и на старой. Приведенный здесь код должен работать на версиях 4.0 и 2.3.Простейший способ получить среду разработки - установить Android Bundle, который можно скачать . Также вам понадобится JDK 6 (не только JRE). Не забудьте что Android не совместим с gcj. Если вы уже используете Eclipse или другую IDE, то вы можете попробовать настроить ее под Android. Как это сделать - описано . Теперь создайте проект под именем Countdown с помощью Eclipse , или из командной строки . Я установил в настройках BuildSDK 4.0.3 и minimum SDK 2.2, и (в Eclipse) использовал шаблон BlankActivity.
Мой первый проект под Android: интерфейс
Первой нашей программой под Android будет таймер, показывающий обратный отсчет от 10 секунд после нажатия кнопки. Прежде чем писать код, нужно создать интерфейс - то, что пользователь увидит, запустив наше приложение. Нужно открыть res/layout/activity_countdown.xml и создать XML шаблон - с помощью редактора Eclipse или текстового/XML редактора ввести следующее:Обратите внимание на /start и /__00_30. Их значения будут расположены в res/values/strings.xml:
Это общепринятый способ обращения к ресурсам в Android: лучше использовать ссылки на строковые переменные, чем жестко заданные строки.
Мой первый проект под Android: код
Теперь откроем в редакторе файл CountdownActivity.java - и мы готовы писать код нашего приложения. Вы должны увидеть автоматически сгенерированную «заглушку» метода onCreate(). Он всегда вызывается как только создается объект Activity, и в него вы можете поместить какие-либо функции, которые должны выполняться при запуске приложения. (Eclipse также может создать пустой метод onCreateOptionsMenu(), но мы пока не будем обращать на него внимания). Введите следующий код:public class CountdownActivity extends Activity { private static final int MILLIS_PER_SECOND = 1000; private static final int SECONDS_TO_COUNTDOWN = 30; private TextView countdownDisplay; private CountDownTimer timer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_countdown); countdownDisplay = (TextView) findViewById(R.id.time_display_box); Button startButton = (Button) findViewById(R.id.startbutton); startButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { try { showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND); } catch (NumberFormatException e) { // method ignores invalid (non-integer) input and waits // for something it can use } } }); } }
Вы видите как просто оказалось создать наш первый проект: Android API включает в себя CountDownTimer, который мы можем использовать. Мы объявили его и поле отображения обратного отсчета как закрытые (private) свойства класса Activity. В методе onCreate() мы использовали метод setContentView, чтобы подключить наш XML-шаблон. Такой R.foo.bar синтаксис - это стандартный способ обращения к XML-ресурсам в Android, и мы встретимся с ним еще много раз.
findViewById - это еще один метод, который вы будете часто использовать. Здесь он возвращает ссылки на поле вывода таймера и кнопку Start, описанные в XML-шаблоне. Для кнопки, чтобы мы могли обработать ее нажатие, должен быть задан «перехватчик» OnClickListener, и его метод onClick(). Здесь он просто вызывает метод showTimer() c заданным числом миллисекунд (сейчас жестко заданным в коде).
Итак, что делает showTimer():
private void showTimer(int countdownMillis) {
if(timer != null) { timer.cancel(); }
timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) {
@Override
public void onTick(long millisUntilFinished) {
countdownDisplay.setText("counting down: " +
millisUntilFinished / MILLIS_PER_SECOND);
}
@Override
public void onFinish() {
countdownDisplay.setText("KABOOM!");
}
}.start();
}
Класс CountDownTimer делает за нас почти всю работу, что очень приятно. В начале мы проверяем, существует ли уже таймер, и, если он есть, то сбрасываем его. Далее мы создаем новый таймер с заданным числом миллисекунд для обратного отсчета (из параметра метода showTimer()) и с заданным числом миллисекунд между интервалами отсчета. По истечении времени между интервалами вызывается метод onTick().
CountDownTimer - абстрактный класс, и методы __onTick() и __onFinish() должны быть реализованы в его подклассе. Мы переопределяем метод onTick(), уменьшающий выводимое число на единицу по истечении каждого интервала, и метод onFinish(), выводящий на дисплей сообщение о окончании обратного отсчета. Потом start() запускает таймер.
С помощью команды «Run» в Eclipse вы можете запустить созданное приложение, при этом будет автоматически запущен эмулятор Android. Посмотрите документацию по Android если вы хотите узнать больше о
Каждый разработчик периодически сталкивается с необходимостью искать свежие программы для повышения КПД собственной деятельности, упрощающие решение будничных задач или несущие в себе новое знание. Но почему-то мало кто задумывается о том, что карманный гаджет тоже может быть полезен как для совместного использования с компьютером, так и для удалённых правок. Ниже вы найдете несколько приложений, которые непременно сделают ваш рабочий день продуктивнее. Если вы только погружаетесь в веб-разработку, рекомендуем делать это на нашем .
DrawExpress Diagram
Симпатичная и очень полезная утилита для создания диаграмм, графиков и прочей наглядной информации. Имеется бесплатная версия, поэтому перед покупкой за символическую сумму в 299 рублей, вы сможете сполна оценить её достоинства.
DroidEdit
Как следует из названия, это текстовый редактор кода для проверки и вёрстки на ходу. Здесь можно найти стандартное подсвечивание данных, блоков и операций, возможность поиска и замены, а также «горячие клавиши» для быстрой навигации. DroidEdit обучен языкам, в числе которых C++, Java, Ruby и множество других. Имеются бесплатная версия и версия Pro за 149 рублей.
CppDroid - C/C++ IDE
По сути тоже самое, что и DroidEdit , но это приложение работает с выбранной группой языков, содержит пакеты примеров (в том числе обучения) и поддерживает DropBox, что крайне полезно для работы вдали от работы.
Programmer Keyboard
Любой человек IT-мира знает это чувство, когда на планшете или мобильном устройстве чертовски сильно не хватает под рукой старых добрых CTRL и ALT (хотя бы просто из-за проблемы копирования в стандартном браузере). На помощь вам придёт Programmer Keyboard , тут вам и все кнопки, и активная помощь Т9 в написании программ. Как альтернативу можете рассмотреть Hacker’s Keyboard .
AIDE
Здесь всё просто - приложение на Android для . Главной особенностью является работа с DropBox, то есть вы сможете взаимодействовать с компьютером, вносить изменения, и выгружать обратно. Все необходимые функции вроде проверки ошибок, рефакторинга, автодополнения кода на месте. За платную версию придётся заплатить без малого 590 рублей, но, к счастью, все свои сомнения можно проверить на бесплатной версии. Кроме того, существует AIDE для работы с веб.
TeamViewer
Для тех, у кого есть большие сомнения в удобстве и качестве приложений для мобильного телефона, есть вполне полезная утилита удалённого управления рабочим компьютером. Будучи не привязанным к стулу, вы в любом месте земного шара получите доступ к необходимым файлам и папкам, а также сможете осуществлять администрирование серверов. И всё это абсолютно бесплатно.
Programmers Calculator Binary
Обычный калькулятор «программиста», оснащённый как математическими функциями, так и конвертацией. Как альтернативу можете рассмотреть Programmer Calculator - здесь есть ещё и логические функции.
Color Picker
Полезное приложение для тех, чья профессия наводить красоту в интернете (и биться за каждый полутон с заказчиком). Функция Color Picker проста - подобрать тот самый цвет и узнать его шестнадцатеричное значение. В дополнение обязательно скачайте Fontest - заодно подберёте шрифт.
WordPress for Android
Для тех, кто занимается созданием сайтов - не надо объяснять, что делает это приложение. Для остальных отметим, что с его помощью вы сможете редактировать записи на своём ресурсе, добавлять их, а также отслеживать статистику. Аналогичное приложение есть у Drupal (Drupal Editor ) и у Joomla! (Joooid! ).
WebMaster’s HTML Editor
Редактор исходных текстов, написанных на HTML, PHP, JS, CSS с функциями подсветки синтеза и дополнением кода. Кроме того, есть функции поиска и замены, «горячие клавиши» и крайне удобные в редактировании Undo/Redo. Бесплатная версия имеет приставку Lite и ограничивает лишь функции автодополнения (предоставляется лишь самый очевидный вариант) и предпросмотра. Полная версия обойдётся в 199 рублей.
Удачной работы!
Тем, кто хочет разобраться в веб-разработке, рекомендуем профессию « » от GeekBrains.
Приветствую вас, уважаемые любители операционной системы Андроид (Android). В сегодняшней статье я постараюсь максимально полно осветить очень интересную тему – подборку инструментов для создания своего приложения (онлайн) для гаджетов на базе, популярной, операционной системы Android.
С развитием мобильных технологий, развивается и рынок мобильных приложений, в том числе и рынок мобильных приложений для ОС Андроид (Android) . Если раньше сделать приложение мог только продвинутый программист с толстыми очками, прошедший пять лет обучения в университете, то теперь эта возможность доступна любому желающему, причем абсолютно незнакомому с языками программирования, причем, также, не выключаясь от интернета, т.е. онлайн.
В подборке вы найдёте четыре инструмента, которые позволят вас сделать приложение — быстро и просто. Все предложенные инструменты похожи на конструкторы, вам предстоит собрать ваше первое приложение из различных готовых компонентов, создать приложение можно точно также, как вы собираете конструктор лего.
Все инструменты отбирались по следующим критериям :
- Удобство использования . Так как пользоваться таким инструментом будут, в основном, люди не знакомые с программированием и сложными элементами, то главный упор, в этой небольшой подборке, был сделан на удобство и простоту использования предложенных инструментов;
- Интуитивно понятный интерфейс . Этот пункт и условие логически вытекает из предыдущего. Помимо того, что интерфейс инструмента создания приложений для ОС Андроид (Android) должен быть простым, он еще должен быть интуитивно-понятным;
- Возможности . Чем больше различных вещей “умеет” делать инструмент – тем лучше. По сути, все представленные приложения имеют один и тот же набор инструментов, с небольшими различиями и изменениями.
Итак, пишем, начинаем делать приложение (все приложение можно создать в режиме онлайн), ниже вы можете ознакомиться с подборкой программных продуктов и выбрать для себя наиболее удобный и функциональный инструмент.
TheAppBuilder
Неплохой инструмент создания приложений. Несомненно, радует тот факт, что данным инструментом вы можете пользоваться абсолютно бесплатно. Минус в том, что данный программный продукт не поддерживает русский язык, но если вы учили в школе английский, хотя бы немного, то проблем с использованием TheAppBuilder возникнуть не должно. Из всех возможностей данного программного продукта хочется отметить следующие :
- Большой выбор шаблонов для создания вашего Андроид (Android) приложений. Если вы хотите сделать простую программку, то из предложенных вариантов шаблонов вы без труда подберете нужный;
- Возможность просматривать подробную статистику по созданному вами приложению;
- Простая и понятная публикация, созданного вами, приложения в Google Play.
AppsGeyser
Еще один хороший, качественный инструмент заслуживающий пристального внимания. Как я уже говорил выше, чтобы создать )) вам не понадобится уметь программировать под Андроид (Android), в данной программе все настолько просто, что создать приложение для своего проекта вы сможете за несколько минут, просто собрав его из частей “конструктора”. Ниже, вы можете ознакомиться с возможностями предложенного инструмента
:
- Большой архив шаблонов на различные тематики: рестораны, пиццерии, фото-студии, праздники, спорт, радио, грузоперевозки и много, много других шаблонов. Вам нужно только выбрать подходящий и начать его редактирование под свои нужды;
- Встроенные инструменты продвижения вашего нового приложения. Порой, чтобы продвинуть и раскрутить ваше новое приложение нужно потратит много сил и времени, строенные инструменты продвижения в конструкторе смогут облегчить вашу задачу;
- Возможность подключения вашей программы к рекламной сети, таким образом вы сможете зарабатывать деньги на созданных вами приложениях.