Программирование для мобильных устройств ― в массы : Действия и значки в жизненном цикле Android-приложения

Добавление стильных инструментов навигации в приложение для Android-устройств

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

Эндрю Гловер, президент компании, Stelligent Incorporated

Эндрю ГловерЭндрю Гловер является президентом компании Stelligent Incorporated , которая помогает другим фирмам решать проблемы качества программного обеспечения. Для этого используются эффективные стратегии тестирования и технологии непрерывной интеграции, которые позволяют коллективам разработчиков постоянно контролировать качество кода, начиная с ранних стадий разработки. Просмотрите блог Энди , там можно найти список его публикаций.



05.08.2013

Введение

Об этом цикле статей

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

Можно начать с написания "родных" приложений на языке Java™, а затем добавлять в свой инструментарий JVM-языки, платформы сценариев, инструменты HTML5/CSS/JavaScript и многое другое. Так, шаг за шагом, вы овладеете навыками, необходимыми для выполнения практически любого сценария разработки мобильных приложений.

Современные мобильные устройства ― невероятно мощный инструмент, гораздо более мощный, чем те настольные компьютеры, на которых многие разработчики создавали свои первые программы. Так что очень легко забыть, что мобильное устройство ― это все же среда с ограниченными ресурсами. При разработке мобильного приложения никогда не следует забывать об ограничениях среды, в которой оно работает. Это особенно верно, если учесть, что ваше приложение будет конкурировать за системные ресурсы с другими приложениями — некоторые из которых важнее для повседневной деятельности пользователя.

Один из способов гарантировать, что ваше приложение получит широкое распространение — обеспечить экономию ресурсов системы. В Android механизмом как использования, так и сохранения системных ресурсов является класс Activity. Чем лучше программист понимает жизненный цикл этой капризной рабочей лошадки (которая очень похожа на класс Servlet Java), тем скорее он сможет оптимизировать использование ресурсов и производительность своего Android-приложения.

Начнем с краткого обзора жизненного цикла класса Activity. Играя демонстрационным приложением, читатель узнает о методах, которые работают на каждом этапе жизненного цикла Android-приложения. Поняв, как эти методы работают вместе, он сможет разумно использовать ресурсы системы. Затем он модернизирует систему навигации своего демоприложения, заменив кнопки меню на значки действий для взаимодействия с пользователем. Значки - стандартный элемент пользовательского интерфейса мобильных приложений, и новые Android-устройства (версия 4.2.2 и выше) отдают предпочтение панели действий вместо устаревших меню. Знание того, как интегрировать эти функции в собственное Android-приложение, сослужит вам хорошую службу!


Жизненный цикл класса Activity

Жизненный цикл класса Activity непосредственно отражает жизненный цикл Android-приложения. Когда пользователь взаимодействует с приложением или устройством, на котором оно размещено, платформа Android выполняет обратные вызовы экземпляра Activity. Когда пользователь запускает приложение, первоначальный экземпляр Activity проходит определенный жизненный цикл; одни стадии жизненного цикла соответствуют работе приложения в фоновом режиме, а другие ― его выключенному состоянию. Рисунок 1 иллюстрирует жизненный цикл класса Activity Android-приложения на каждом этапе взаимодействия.

Рисунок 1. Жизненный цикл класса Activity Android
Схема жизненного цикла мобильного приложения Android

Жизненный цикл мобильных Android-приложений состоит из четырех этапов:

  • запуск,
  • приостановка и восстановление,
  • остановка и перезапуск,
  • уничтожение.

В последующих разделах описаны все этапы и методы обратного вызова для каждого из этих этапов (которые можно реализовать внутри экземпляра Activity).

Запуск в жизненном цикле Activity

Демонстрационное приложение

Те, кто следил за этой серией статей, уже создали свое собственное демонстрационное приложение при чтении первой и второй частей. Остальным я рекомендую создать его, прежде чем идти дальше. Иначе, можно клонировать Git-репозиторий с моим демоприложением Overheard Word (см. раздел Ресурсы).

В предыдущих статьях мы использовали метод обратного вызова, который соответствует запуску Activity, а именно, onCreate. Возможно, читатель знаком также с двумя дополнительными методами onStart и onResume, которые вызываются при запуске. Теперь рассмотрим эти методы в контексте жизненного цикла класса Activity.

В среде разработки Eclipse Android легко переопределить методы, выбрав пункт Override/Implement Methods... , как иллюстрирует Рисунок 2.

Рисунок 2. Переопределение методов обратного вызова жизненного цикла Activity
Переопределение методов обратного вызова жизненного цикла Activity в Eclipse

Далее, выбираем методы onStart и onResume (рисунок 3).

Рисунок 3. Выбор метода обратного вызова
Выбор метода обратного вызова в Eclipse.

Теперь используем класс Android Log, чтобы ввести некоторые операторы трассировки (Листинг 1).

Листинг 1. Реализация обратных вызовов Android Activity
@Override
protected void onResume() {
    super.onResume();
    Log.d("overheardword", "onResume Invoked");
}

@Override
protected void onStart() {
    super.onStart();
    Log.d("overheardword", "onStart Invoked");
}

Чтобы проверить результат, можно запустить экземпляр приложения и посмотреть журналы в LogCat (Рисунок 4).

Рисунок 4. Отладочные операторы LogCat
Отладочные операторы LogCat

Протоколирование Android с помощью LogCat

В Android есть своя собственная система протоколирования, android.util.Log. Этот удобный класс позволяет входить на разных уровнях (например, info, warn, debug и т.д.) и просматривать журналы посредством инструмента logcat, который входит в состав SDK Android. В Eclipse LogCat отображается как вкладка, которую можно использовать для фильтрации тегов и даже экземпляров приложений. LogCat также позволяет обращаться к журналам регистрации событий устройства, просто подключив его к порту USB ПК или ноутбука.

Метод onCreate вызывается при первой загрузке приложения, в то время как методы onStart и onResume удобны в контексте других этапов, например, когда приложение работает в фоновом режиме и перезапускается.

Приостановка и возобновление жизненного цикла Activity

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

Когда Activity частично заслонено, вызывается метод onPause. Когда приостановленное Activity вновь оказывается в фокусе, вызывается метод onResume. Пауза и возобновление означают, что деятельность была частично заслонена, но не полностью скрыта.

Когда приложение полностью скрыто, например, если пользователь принимает вызов по телефону, также вызывается метод onPause, но в этом случае он сопровождается вызовом onStop. Когда приложение вновь оказывается на переднем плане, вызывается onRestart, а затем onStart и onResume.

Давайте посмотрим, что происходит при реализации методов onPause, onRestart и onStop. Добавим в код Android-приложения, с которым мы уже работали в статьях этой серии, операторы регистрации событий, а затем запустим его. Нажмите кнопку Home, чтобы полностью скрыть экземпляр, а затем нажмите на значок, чтобы вызвать его обратно. Вы должны увидеть последовательность вызываемых методов. Во-первых, вы увидите метод onPause, а за ним ― onStop. При нажатии на значок для вызова приложения вы увидите метод onRestart, а за ним ― onStart и onResume.

В процессе нормального запуска приложения может происходить и уничтожение экземпляра Activity. Например, к этому может привести вызов метода finish этого класса. Ключевым здесь является то, что так как Activity закрывается, должны повторяться те же этапы жизненного цикла, что и в случае приостановки, но последним обратным вызовом должен быть onDestroy.

Листинг 2 демонстрирует этот процесс в моем собственном приложении Overheard Word (см. статью Программирование для мобильных устройств ― в массы: Одним махом! или загрузите исходный код из Github) путем вызова метода finish жестом сметания вверх.

Листинг 2. Уничтожение экземпляра Activity
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
   try {
       final SwipeDetector detector = new SwipeDetector(e1, e2, velocityX, velocityY);
       if (detector.isDownSwipe()) {
        return false;
       }else if (detector.isUpSwipe()) {
        finish();
       }else if (detector.isLeftSwipe()) {
        Toast.makeText(getApplicationContext(), "Left Swipe", Toast.LENGTH_SHORT).show();
       }else if (detector.isRightSwipe()) {
        Toast.makeText(getApplicationContext(), "Right Swipe", Toast.LENGTH_SHORT).show();
       }
   } catch (Exception e) {
       // ничего нет

   }
   return false;
}

Наиболее употребительные методы жизненного цикла Activity ― это onCreate, onRestart и onDestroy. Например, я использовал метод onRestart для обновления пользовательского интерфейса многих приложений, а onDestroy ― для соединения с базами данных, такими как SQLite, которая локально выполняется на Android-устройствах.

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

Теперь давайте посмотрим, что произойдет, когда для реализации поведения меню приложения используются два метода обработки прерываний —onCreateOptionsMenu и onOptionsItemSelected—. Когда эти два метода синхронизированы, их функциональность прикрепляется к значкам дополнительных функций пользовательского интерфейса.


Навигация с помощью меню и действий

Когда я создавал проект Overheard Word в Eclipse, первым методом Activity, который я определил, был метод заглушки onCreateOptionsMenu. Этот метод создает пункты меню. На старых Android-устройствах меню вызывается кнопкой Menu. На новых оно представлено вертикальными точками, которые отображаются в самом приложении. Кнопка меню для новых Android-устройств не требуется.

В экземпляре эмулятора, соответствующего старому устройству, есть кнопка с надписью Menu. Если щелкнуть на ней, отображается меню приложения. В этом случае видны элементы навигации. Например, если пользователь нажмет кнопку Home, то увидит нечто подобное тому, что показано здесь (Рисунок 5).

Рисунок 5. Нереализованный элемент меню
Нереализованный элемент меню в эмуляторе Android.

На планшете нет кнопки меню. Вместо того, чтобы выбирать пункты меню, пользователям предлагается инициировать различные действия. Это новый тип пользовательского интерфейса, называемый панелью действий (Рисунок 6).

Рисунок 6. Панель действий новых Android-устройств
Панель действий новых Android-устройств в эмуляторе Android

Кнопки меню и панель действий ведут себя аналогично, но панель действий есть только у новых устройств. Поскольку мы нацелены на старую версию Android (напомню, что примерно 50% всех Android-устройств работают с версией Gingerbread), я буду для демонстрационных целей использовать знакомую кнопку меню. Позже я покажу, как изменить код навигации для реализации панели действий на тот случай, если вы хотите работать с более новыми версиями Android и соответствующими устройствами.

Создание меню

Хорошим первым шагом в направлении модернизации приложения Overheard Word для более эффективного взаимодействия с пользователем служит реализация меню, позволяющего выходить из приложения. Выход из приложения ― это этап жизненного цикла класса Activity, поэтому для реализации этой функциональности мы будем использовать методы Activity.

Напомню, что все, что связано с графическим интерфейсом пользователя в Android-приложениях, соответствует XML-файлу, так что для определения макета пользовательского интерфейса нужно редактировать XML-файл. XML-файлы Android-приложения находятся в определенных каталогах в папке res проекта (например, файлы макета находятся в каталоге layout).

Взгляните на реализацию по умолчанию метода onCreateOptionsMenu в главном действии Overheard Word — о чем говорит этот код?

public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.overheard_word, menu);
  return true;
 }

Если вы подумали о поиске XML-файла с именем overheard_word.xml в каталоге ресурсов с именем menu, то вы уже почти эксперт по Android!

Я... выхожу!

Далее, давайте отредактируем XML-файл ресурсов меню с добавлением пункта quit. Начнем с поиска файла strings.xml в каталоге res/values. Найдя его там, создайте новую запись:

<string name="quit_menu">Quit</string>

Эта разметка определяет слово Quit, на которое можно ссылаться через идентификатор quit_menu (кстати, это облегчает интернационализацию приложений). Далее, откройте файл overheard_word.xml в каталоге menu. В этом файле измените заголовок на @ string/quit_menu, привязав таким образом слово Quit к пункту меню.

Теперь запустите эмулятор и нажмите на кнопку Menu. В нижней части экрана вы увидите меню из одного пункта: Quit. Однако выбор его ни к чему не приводит, потому меню еще не реализовано.

Мы скоро добавим код для реализации пункта меню Quit. Но сначала давайте рассмотрим еще один важный элемент любой функциональной части мобильного приложения, который определяет его внешний вид. Вы могли заметить, что сегодня в интерфейсах пользователя многих мобильных приложений (и все чаще ― Web-приложений) для навигации используются значки. Давайте посмотрим, что происходит при замене кнопки с обычным словом на произвольный значок.


Значки в дизайне пользовательского интерфейса мобильных устройств

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

Какой значок выбрать?

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

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

К счастью, внешним видом значков приложения на различных устройствах можно управлять. Загляните в каталог res своего мобильного Android-приложения. Вы должны увидеть несколько каталогов с именами drawable-something-pdi (где something ― некая последовательность букв). Эти каталоги соответствуют различным значениям оптического разрешения экрана устройств. Правильное размещение значков нужного размера и других графических файлов в этих каталогах гарантирует, что значки будут корректно отображаются на устройствах разного типа.

Например, значки для устройств со сверхвысоким разрешением Android будет искать в папке drawable-xxhdpi. Значок запуска в этом каталоге должен иметь размер 96 x 96 пикселей и разрешение по крайней мере 320 точек на дюйм. Значок запуска в каталоге drawable-ldpi должен иметь размер 36 x 26 пикселей и разрешение 120 точек на дюйм. Есть также возможность создания каталога по умолчанию drawable, который Android будет использовать, если не удастся найти соответствующий файл для значков заданного разрешения.

Чтобы не усложнять, я создам для своего приложения Overheard Word каталог drawable. В нем я размещу файл значка размером 26 x 26 (.png), который будет использоваться для пункта выхода.

Рисунок 7. Добавление значка в каталог drawable
Скриншот каталога drawable в Eclipse

На следующем шаге я дам ссылку на этот значок в своем меню, обновив элемент menu в файле overheard_word.xml:

android:icon="@drawable/quit_icon"

Тем, кто следует за мной, нужно также обновить id того же элемента. Присвойте ему описательное строковое значение, например:

android:id="@+id/quit_item"

Понятное строковое значение будет полезно на следующем шаге, где мы реализуем поведение выхода внутри метода onOptionsItemSelected. В случае выбора элемента меню мы сможем сослаться на него через ID quit_item. Пока же запустите эмулятор и нажмите кнопку Menu. Я думаю, вам понравится то, что вы у видите!

Рисунок 8. Красивый значок! (Спасибо Glyphish)
Скриншот нового значка Quit Overheard Word в эмуляторе Android

Реализация поведения меню

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

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

Листинг 3. Обработка выбора пункта меню
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.quit_item:
        this.finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

Обратите внимание, что это просто оператор switch. Если выбран idquit_item, то будет вызван метод finish, который, по существу, закрывает приложение.

Попробуйте этот новый код в своем эмуляторе: коснитесь кнопки Menu, нажмите на значок выхода (X) и смотрите, что происходит в LogCat. Вы должны увидеть все этапы полного жизненного цикла Activity: onPause, затем onStop и, наконец, onDestroy.


Панели действий в Android 3.x

Как я упоминал ранее, новые версии Android (Honeycomb и более поздние версии) отказываются от меню в пользу панели действий. Новым устройствам вообще не нужна кнопка Menu, так что стоит разобраться, как осуществить навигацию (или другие функции) своего приложения с использованием панели действий.

Сделать так, чтобы функциональность навигации, закодированная для меню, работала и с панелью действий, не так уж сложно. Мы уже реализовали все необходимые методы; осталось только внести некоторые изменения в XML-ресурсы.

Во-первых, необходимо создать экземпляр эмулятора, имитирующий устройство, в котором используется панель действий, а не кнопка меню. Самый простой способ ― эмулировать планшет. Запустите из командной строки приложение Android SDK Manager (это команда android из каталога tools). Как только SDK Manager заработает, выберите параметр Manage AVDs... из меню Tools. Откроется диалоговое окно, в котором можно определить новый эмулятор или виртуальное Android-устройство (AVD). Выберите 7,0 '' WSVGA (Tablet) (1024 x 600: mdpi), затем задайте в качестве цели эмулятора как минимум Android 4.2.2. Теперь у вас есть эмулятор, который не реагирует на кнопку меню (Рисунок 9).

Рисунок 9. Создание эмулятора планшета
Скриншот выбора параметров для эмуляции планшетного устройства.

Запустите приложение в этом экземпляре планшета. Вы должны увидеть вертикальную линию из трех точек в правом нижнем углу экрана. Красиво, не правда ли? По умолчанию Android сохраняет поведение меню, даже на новых дисплеях. Отредактировав XML-ресурсы приложения, можно обновить внешний вид и поведение панели действий, чтобы они были более естественными.

Начнем с файла AndroidManifest.xml приложения, где нужно изменить версию SDK:

<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="17" />

Далее, перейдите в свойства своего проекта в Eclipse и отредактируйте Project Build Target для любой версии Android выше, чем Android 4.2.2. Нажмите кнопку OK, и пусть проект восстанавливается. Затем найдите XML-файл меню в каталоге menu. Отредактируйте его следующим образом, чтобы сохранить определение item для Quit.

android:showAsAction="always"

Наконец, если в вашем проекте, в каталоге res, еще нет двух подкаталогов с именами values-v11 и values-v14, создайте их. Затем добавьте в values-v11 следующий XML-файл:

<resources>
 <style name="AppBaseTheme" parent="android:Theme.Holo.Light"></style>
</resources>

В каталог values-v14 добавьте следующий файл:

<resources>
 <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>
</resources>

Перезапустите эмулятор, и в правом верхнем углу вы должны увидеть свой новый значок (см. рисунок 10).

Рисунок 10. Панель действий со значками
Скриншот нового значка, зеленого робота.

Теперь вернемся к меню файлов в каталоге menu, где определен элемент quit, и изменим showAsAction на never. Перезапустите свое приложение, и вы должны увидеть те самые три точки по вертикали в верхнем правом углу.

Не забудьте о переустановке

Если вы хотите сохранить свое приложение как Gingerbread, то нужно переустановить целевую сборку своего проекта и отменить изменения в XML, выполненные в этом разделе. Эти изменения не являются обратно совместимыми!


Дополнительные возможности значков

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

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

Я изменю этот значок на значок Overheard Word, а вы можете следовать за мной со своим собственным приложением. Опять же, быстрый поиск в Интернете выявляет множество сайтов со значками. Среди них я нашел интересный набор значков и один из них мне особенно понравился (см. рисунок 11).

Рисунок 11. Отличный новый значок
Новый основной значок для Overheard Word с изображением блокнота и авторучки

Напомню, что на разных устройствах значки отображаются по-разному. Так как я хочу гарантировать, что пользователи получат хорошее первое впечатление от Overheard Word, имеет смысл настроить правильное разрешение значка для моего диапазона целевых устройств. К счастью, я знаю очень удобный сайт для этого.

Инвестиции в значки

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

Android Asset Studio (см. раздел Ресурсы) ― это проект Google Code, который предлагает много полезных утилит для разработчиков на платформе Android. Одна из них, которую я часто использую, ― это Launcher Icons. Достаточно нажать на ссылку Launcher Icons и загрузить свой значок. Утилита сгенерирует файлы значков нужного размера для различных профилей устройств, которые я затем загружаю в виде zip-файла. Этот файл содержит четыре каталога, в каждом из которых находится версия файла нужного размера, который я загружаю (см. рисунок 12).

Рисунок 12. Launcher Icons создает значки нужного размера для Android
Launcher Icons создает значки нужного размера для Android

Затем я копирую файл ic_launcher.png из каждого каталога в точно такой же подкаталог в моей папке res. Обратите внимание, что в этом процессе исходный файл значка заменяется тем, что сгенерировал Eclipse.

Наконец, я перезапускаю свое приложение и жду, пока оно появится в экземпляре эмулятора. Я нажимаю кнопку Home и проверяю результат: щегольской значок приложения, который означает (во всяком случае, для меня), что OverHeard Word – это самое интересное приложение на любом устройстве пользователя! (См. рисунок 13.)

Рисунок 13. Теперь у него есть собственный значок!
Новый основной значок Overheard Word

Заключение

Читатель этой статьи получил общее представление жизненном цикле Activity и научился применять его для оптимизации использования ресурсов устройства приложением. Он также узнал, как определить и реализовать навигационные конструкции на основе меню и панели действий и как заменить кнопки с надписями значками.

Все это имеет первостепенное значение для создания Android-приложений. Создавать мобильные приложения на платформе Android легко и интересно, и я надеюсь, что читатель оценил, насколько это отличается от парадигмы Java-разработки. В Google Play и других магазинах доступны сотни тысяч приложений, и те приложения, которые поднимаются на вершину, обычно хорошо спланированы, тщательно разработаны и умело запрограммированы. Так что есть, чему учиться!

Ресурсы

Научиться

Получить продукты и технологии

  • Github-репозиторий Overheard Word содержит исходный код, используемый в статье.
  • Читайте также Gesticulate: простое обнаружение жестов в Android-приложениях.
  • Генератор значков Android Launcher Icons, используемый в этой статье.
  • Значки для мобильных приложений: ArtDesigner и Glyphish: коллекции лицензированных значков для мобильных устройств и Web-приложений, а также тысячи бесплатных значков, доступных с помощью Icon Finder.
  • Загрузить Android: SDK Android предоставляет библиотеки API и инструменты разработчика, необходимые для построения, тестирования и отладки приложений.
  • Загрузить комплекты инструментов разработчика IBM: модернизируйте свою систему и обзаведитесь новейшими инструментами и технологиями.

Обсудить

  • Примите участие в деятельности сообщества developerWorks. Общайтесь с другими пользователями developerWorks, читая блоги разработчиков, форумы, группы и вики.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Мобильные приложения, Технология Java, Open source
ArticleID=939685
ArticleTitle=Программирование для мобильных устройств ― в массы : Действия и значки в жизненном цикле Android-приложения
publish-date=08052013