Пример: Скачать среду можно с сайта для разработчиков Android (http://developer.android.com/sdk/index.html). Там скачать можно только Android Studio |
Основные этапы разработки приложения с использованием Android IDE
4.5 Немного о работе с эмулятором
При выполнении данной работы мы использовали эмулятор для проверки работоспособности приложения. Рассмотрим некоторые возможности, облегчающие и ускоряющие взаимодействие с виртуальным устройством.
Во-первых, существует набор полезных комбинаций клавиш для управления виртуальным устройством:
- Alt+Enter - разворачивает эмулятор до размеров экрана;
- Ctrl+F11 - меняет ориентацию эмулятора с портретной на альбомную и обратно;
- F8 - включает/выключает сеть.
Полный список комбинаций клавиш для работы с эмулятором можно найти по ссылке: http://developer.android.com/tools/help/emulator.html.
Во-вторых, кто бы ни работал с эмулятором, тот на себе прочувствовал насколько терпеливым надо быть, чтобы взаимодействовать с ним, так медленно он работает. Существует решение для ускорения работы эмулятора Android и этим решением является Intel Hardware Accelerated Execution Manager (Intel® HAXM).
Intel Hardware Accelerated Execution Manager (Intel® HAXM) - это приложение с поддержкой аппаратной виртуализации (гипервизор), которое использует технологию виртуализации Intel для ускорения эмуляции приложений Android на компьютере для разработки. (http://software.intel.com/ru-ru/android/articles/intel-hardware-accelerated-execution-manager)
Intel HAXM способен ускорить работу эмулятора для x86 устройств. При этом эмулятор будет работать со скоростью, приближенной к скорости работы реального устройства, что поможет сократить время на запуск и отладку приложения. Подробно познакомиться с установкой Intel HAXM и настройкой эмулятора на работу с ускорителем можно в статье по ссылке: http://habrahabr.ru/company/intel/blog/146114/.
В-третьих, не стоит прерывать процесс запуска виртуального устройства, наберитесь терпения, на старых компьютерах первый запуск AVD может занять до 10 минут, на современных - от одной до трех минут. После того, как создали и запустили виртуальное устройство имеет смысл оставить его открытым, при всех последующих запусках приложения будет использоваться уже открытое виртуальное устройство, что позволит сэкономить время.
4.6 Заключение
В лабораторной работе рассмотрен процесс разработки простого приложения переднего плана. Описано создание активности, настройка интерфейса и реализация логики приложения. Других компонентов в приложении не предусмотрено. В последующих работах будут рассматриваться приложения, содержащие несколько активностей. Смешанные приложения, работающие на переднем плане и при этом поддерживающие сервисы, работающие в фоновом режиме.
Приложение 1.
package com.example.projectn; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.*; public class MainActivity extends Activity { TextView tvInfo; EditText etInput; Button bControl; int guess; boolean gameFinished; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvInfo = (TextView)findViewById(R.id.textView1); etInput = (EditText)findViewById(R.id.editText1); bControl = (Button)findViewById(R.id.button1); guess = (int)(Math.random()*100); gameFinished = false; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void onClick(View v){ if (!gameFinished){ int inp=Integer.parseInt(etInput.getText().toString()); if (inp > guess) tvInfo.setText(getResources().getString(R.string.ahead)); if (inp < guess) tvInfo.setText(getResources().getString(R.string.behind)); if (inp == guess) { tvInfo.setText(getResources().getString(R.string.hit)); bControl.setText(getResources().getString(R.string.play_more)); gameFinished = true; } } else { guess = (int)(Math.random()*100); bControl.setText(getResources().getString(R.string.input_value)); tvInfo.setText(getResources().getString(R.string.try_to_guess)); gameFinished = false; } etInput.setText(""); } }