Внимание!!! кто полный "0" в программировании либо немного знает, обратите внимание на App Inventor beta в 4 посте.
Программирование на java (Eclipse)
Для начала потребуются три вещи:
Java Development Kit(JDK) (Выбираем под свою ОС)
Android SDK(Выбираем под свою ОС)
Eclipse IDE for Java Developers (Выбираем под свою ОС)
Процесс установки и настройки среды Eclipse под Android выглядит следующим образом:
1. Ставим JDK из установочного файла.
Скажем, что
-IDE будет лежать на C:\eclipse\, т.е. извлекаем содержимое архива eclipse в папку C:\eclipse.
-SDK должно лежать в папке C:\eclipse\android-sdk-windows
2. Установка плагинов ADT.
3. Настройка ADT и SDK.
4. Установка эмулятора и определенной версии api Android
5. Создание виртуального устройства Android
6. Можно приступать к программированию
Уже можно создавать проекты Android.
Что бы создать новый проект выбираем:
Создание объектов:
Создание атрибутов:
Добавление элементов UI
Поддерржка свойств UI
Код вашего приложения
Запуск Проекта
Подключаем исходники Android в Eclipse
Для тех кто любит ковыряться
Запускаем пробный проект из Android Samples.
В 3 посте предложена по сути та же среда программирования, но от компании motorola с дополнительными возможности программирования под платформу Android смартфонов Motorola.
Литература:
1.Книга по основам "Моя первая программа в Eclipse" (Скачать)
2.Голощапов А.Л.-Google Android программирование для мобильных устройств-2011 Скачать(Спасибо rausNT)
3.Eclipse: Учебное пособие (Cкачать)
Сообщение отредактировал noph8 - 25.1.2012, 20:19
Программирование на java (Eclipse)
Для начала потребуются три вещи:
Java Development Kit(JDK) (Выбираем под свою ОС)
Android SDK(Выбираем под свою ОС)
Eclipse IDE for Java Developers (Выбираем под свою ОС)
Процесс установки и настройки среды Eclipse под Android выглядит следующим образом:
1. Ставим JDK из установочного файла.
Скажем, что
-IDE будет лежать на C:\eclipse\, т.е. извлекаем содержимое архива eclipse в папку C:\eclipse.
-SDK должно лежать в папке C:\eclipse\android-sdk-windows
2. Установка плагинов ADT.
Spoiler:
Запускаем Eclipse(файл eclipse.exe в папке C:\eclipse), видим красивый и непродолжительный процесс загрузки IDE. Если все прошло правильно, то увидим начальное окно Eclipse.
Необходимо поставить ADT, идем в Help -> Install New Software, в поле work with вбиваем URL
dl-ssl.google.com/android/eclipse/
и жмем Enter.
После загрузки из интернета информации о плагинах нужно будет выбрать все дерево Developer Tools, в котором содержатся Android DDMS и Android Development Tools.
Жмем Next или Finish, если последнее возможно. Соглашаемся с лицензионным соглашением.
После установки будет предложено перезапустить Эклипс, соглашаемся, и теперь перед нами запущенный eclipse c установленным набором ADT.

Необходимо поставить ADT, идем в Help -> Install New Software, в поле work with вбиваем URL
dl-ssl.google.com/android/eclipse/
и жмем Enter.
После загрузки из интернета информации о плагинах нужно будет выбрать все дерево Developer Tools, в котором содержатся Android DDMS и Android Development Tools.
Жмем Next или Finish, если последнее возможно. Соглашаемся с лицензионным соглашением.
После установки будет предложено перезапустить Эклипс, соглашаемся, и теперь перед нами запущенный eclipse c установленным набором ADT.

[close]
3. Настройка ADT и SDK.
Spoiler:
4. Установка эмулятора и определенной версии api Android
Spoiler:
Либо кликаем в IDE на новую кнопку с изображением Android-a, либо идем Window -> Android SDK and AVD manager
Далее Available Packages, в Sites, Packages and Archives выбираем единственный пункт и разворачиваем его.
Видим несколько пунктов с различными версиями API, каждая версия API соответствует определенной версии Android OS:
Api 8 – Android 2.2
Api 7 – Android 2.1
Api 4 – Android 1.6
Api 3 – Android 1.5
Можно поставить все Api, но если не хочется тратить место, используем, на мой взгяд, api для самой распространенной версии Android 2.1 – Api7.
Среди пунктов выбираем Samples For SDK API 7, SDK Platform API 7 и Android SDK Tools (API 7).
Далее Install Selected. Если все прошло правильно, то эти пункты появятся в пункте AVD manager-a «Installed Packages».

Далее Available Packages, в Sites, Packages and Archives выбираем единственный пункт и разворачиваем его.
Видим несколько пунктов с различными версиями API, каждая версия API соответствует определенной версии Android OS:
Api 8 – Android 2.2
Api 7 – Android 2.1
Api 4 – Android 1.6
Api 3 – Android 1.5
Можно поставить все Api, но если не хочется тратить место, используем, на мой взгяд, api для самой распространенной версии Android 2.1 – Api7.
Среди пунктов выбираем Samples For SDK API 7, SDK Platform API 7 и Android SDK Tools (API 7).
Далее Install Selected. Если все прошло правильно, то эти пункты появятся в пункте AVD manager-a «Installed Packages».

[close]
5. Создание виртуального устройства Android
Spoiler:
- Name – имя создаваемого устройста
- Target – версия SDK, которая будет поддерживаться создаваемым виртуальным устройством
- SD Card – размер флешки
- Skin – экран устройства, я обычно выбираю WVGA800 (размер экрана 480 на 800). Можно оставить как есть, а можно указать вручную через Resolution.
- Hardware – дополнительные свистелки-перделки для устройства (имитируемое оборудование).
Все, жмем – Create AVD.

Как видите из списка (Hardware),
Установлена поддержка SD карты (флешки), размер кэш-памяти (нужно еще добавить cache support), увеличил размер динамической памяти для каждого приложения (по-умолчанию он 16 мб).
C динамической памятью не советую вам экспериментировать, устанавливая ее слишком большой, т.к. большинство Android устройств выделают 16 мб.
- Target – версия SDK, которая будет поддерживаться создаваемым виртуальным устройством
- SD Card – размер флешки
- Skin – экран устройства, я обычно выбираю WVGA800 (размер экрана 480 на 800). Можно оставить как есть, а можно указать вручную через Resolution.
- Hardware – дополнительные свистелки-перделки для устройства (имитируемое оборудование).
Все, жмем – Create AVD.

Как видите из списка (Hardware),
Установлена поддержка SD карты (флешки), размер кэш-памяти (нужно еще добавить cache support), увеличил размер динамической памяти для каждого приложения (по-умолчанию он 16 мб).
C динамической памятью не советую вам экспериментировать, устанавливая ее слишком большой, т.к. большинство Android устройств выделают 16 мб.
[close]
6. Можно приступать к программированию

Уже можно создавать проекты Android.
Что бы создать новый проект выбираем:
Spoiler:
1. Создаем File > New > Project.

2. Затем

и жмем next.
3. Настройка проекта
- Название проекта (Project name) - имя каталога, который будет содержать файлы проекта.
- Название программы (Application name) - имя, которое появится в телефоне.
- Название пакета программы (Package name)
Ваше имя пакета должно быть уникальным для всех пакетов, установленных в системе Android, по этой причине, важно использовать стандартные области стиля пакет для вашего приложения. Приведенный выше пример использует "com.example" имена, которые зарезервированы для имен.
- Create Activity – имя для заглушки класса Activity, которая будет сгенерирована ADT плагином. Класс Activity, грубо говоря, отвечает за визуальный вид вашего Android-приложения.
- Версия Android(Min SDK Version) - отвечает за минимальную версию SDK, которая требуется на устройстве для корректного запуска. Если вы установили Android SDK 2.2, то кроме 8 (API level) сюда вы не сможете ничего написать. Поэтому для ”боевой” разработки я советую вам устанавливать все существующие SDK, дабы ваше супер-приложение могло запускаться на большинстве устройств.


2. Затем

и жмем next.
3. Настройка проекта
- Название проекта (Project name) - имя каталога, который будет содержать файлы проекта.
- Название программы (Application name) - имя, которое появится в телефоне.
- Название пакета программы (Package name)
Ваше имя пакета должно быть уникальным для всех пакетов, установленных в системе Android, по этой причине, важно использовать стандартные области стиля пакет для вашего приложения. Приведенный выше пример использует "com.example" имена, которые зарезервированы для имен.
- Create Activity – имя для заглушки класса Activity, которая будет сгенерирована ADT плагином. Класс Activity, грубо говоря, отвечает за визуальный вид вашего Android-приложения.
- Версия Android(Min SDK Version) - отвечает за минимальную версию SDK, которая требуется на устройстве для корректного запуска. Если вы установили Android SDK 2.2, то кроме 8 (API level) сюда вы не сможете ничего написать. Поэтому для ”боевой” разработки я советую вам устанавливать все существующие SDK, дабы ваше супер-приложение могло запускаться на большинстве устройств.

[close]
Создание объектов:
Spoiler:
Android SDK позволяет создавать точно определенные объекты, например, строки и пользовательские интерфейсы, двумя путями, с помощью тяжелого редактора, или прямо на XML. Постараемся использовать не только пользовательский интерфейс, но также и XML для проверки списков. Можете переключаться между этими двумя режимами вкладкой на нижней части экрана. Пример:


[close]
Создание атрибутов:
Spoiler:
Android позволяет создавать атрибуты ресурсов, например, строки и/или цвета. Эти атрибуты могут быть использованы в определении UI с помощью XML или Java-кода.
Выберите файл «res/values/string.xml» а нажмите «Add». Выберите «Color» и сохраните с именем «myColor» и значением "#3399CC".


Добавьте также следующие атрибуты строки, они позже позволят переводить приложение.


Переключитесь в режим работы с XMLи проверьте корректность заданных вами значений.
Выберите файл «res/values/string.xml» а нажмите «Add». Выберите «Color» и сохраните с именем «myColor» и значением "#3399CC".


Добавьте также следующие атрибуты строки, они позже позволят переводить приложение.


Переключитесь в режим работы с XMLи проверьте корректность заданных вами значений.
Код
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Convert!</string>
<string name="app_name">Temperature Converter</string>
<color name="myColor">#3399CC</color>
<string name="myClickHandler">myClickHandler</string>
<string name="celsius">to Celsius</string>
<string name="fahrenheit">to Fahrenheit</string>
<string name="calc">Calculate</string>
</resources>
<resources>
<string name="hello">Hello World, Convert!</string>
<string name="app_name">Temperature Converter</string>
<color name="myColor">#3399CC</color>
<string name="myClickHandler">myClickHandler</string>
<string name="celsius">to Celsius</string>
<string name="fahrenheit">to Fahrenheit</string>
<string name="calc">Calculate</string>
</resources>
[close]
Добавление элементов UI
Spoiler:
Выберите «res/layout/main.xml» и откройте двойным кликом в Android editor. Этот редактор позволит задавать UI путем drag and drop, или напрямую в XML-коде. Вы можете переключаться между этими двумя вкладками кнопкой внизу редактора. Для изменения позиции и группировки элементов вы можете использовать просмотр эскиза.
Перетяните «EditText» с панели «Views». Добавьте на макет «RadioGroup» с двумя переключателями RadioButtons (Вы можете удалить один RadioButton), добавьте одну «Button». Результат будет похожим на следующий скриншот, и соответствующий XML, написанный ниже.

Переключитесь на «main.xml» и проверьте, что XML-код похож на нижеприведенный.
Перетяните «EditText» с панели «Views». Добавьте на макет «RadioGroup» с двумя переключателями RadioButtons (Вы можете удалить один RadioButton), добавьте одну «Button». Результат будет похожим на следующий скриншот, и соответствующий XML, написанный ниже.

Переключитесь на «main.xml» и проверьте, что XML-код похож на нижеприведенный.
Код
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:layout_height="wrap_content" android:id="@+id/editText1"
android:layout_width="match_parent" android:text="EditText"></EditText>
<RadioGroup android:layout_height="wrap_content" android:id="@+id/radioGroup1"
android:layout_width="match_parent">
<RadioButton android:text="RadioButton"
android:layout_width="wrap_content" android:id="@+id/radio0"
android:layout_height="wrap_content" android:checked="true"></RadioButton>
<RadioButton android:text="RadioButton"
android:layout_width="wrap_content" android:id="@+id/radio1"
android:layout_height="wrap_content"></RadioButton>
</RadioGroup>
<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:layout_height="wrap_content" android:id="@+id/editText1"
android:layout_width="match_parent" android:text="EditText"></EditText>
<RadioGroup android:layout_height="wrap_content" android:id="@+id/radioGroup1"
android:layout_width="match_parent">
<RadioButton android:text="RadioButton"
android:layout_width="wrap_content" android:id="@+id/radio0"
android:layout_height="wrap_content" android:checked="true"></RadioButton>
<RadioButton android:text="RadioButton"
android:layout_width="wrap_content" android:id="@+id/radio1"
android:layout_height="wrap_content"></RadioButton>
</RadioGroup>
<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
[close]
Поддерржка свойств UI
Spoiler:
Если Вы выберете элемент UI, то можете изменять его свойства через просмотр свойств. Большинство свойств могут также изменяться через меню, вызываемое правым кликом. Выберите EditText и удалите это свойство текста. Выберите поле, сделайте по нему правый клик, выберите Properties-> Text и удалите содержимое. Это значит, что никакого текста не будет показано в текстовом поле.

Удаление свойства текста в EditText ()
Назначьте строковый атрибут «celsius» Вашему свойству «text» первого переключателя и «fahrenheit» второго.


С этого момента автор предполагает, что вы можете использовать меню свойств на элементы UI. Установите свойство «Checked» в «true» для первого переключателя RadioButton. Назначить «calc» текстовому свойству Вашей кнопки и назначить «myClickHandler» свойству «onClick». Задать свойству «Input type» параметры «numberSigned» и «numberDecimal» в Вашем EditText.
Выберите фон (Ваш ViewGroup / LinearLayout) и задайте свойству «Background» атрибут цвета "@color/myColor".

Переключитесь во вкладку «main.xml», чтобы проверить, что XML-код правилен.

Удаление свойства текста в EditText ()
Назначьте строковый атрибут «celsius» Вашему свойству «text» первого переключателя и «fahrenheit» второго.


С этого момента автор предполагает, что вы можете использовать меню свойств на элементы UI. Установите свойство «Checked» в «true» для первого переключателя RadioButton. Назначить «calc» текстовому свойству Вашей кнопки и назначить «myClickHandler» свойству «onClick». Задать свойству «Input type» параметры «numberSigned» и «numberDecimal» в Вашем EditText.
Выберите фон (Ваш ViewGroup / LinearLayout) и задайте свойству «Background» атрибут цвета "@color/myColor".

Переключитесь во вкладку «main.xml», чтобы проверить, что XML-код правилен.
Код
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@color/myColor">
<EditText android:layout_height="wrap_content" android:id="@+id/editText1"
android:layout_width="match_parent" android:inputType="numberDecimal|numberSigned"></EditText>
<RadioGroup android:layout_height="wrap_content" android:id="@+id/radioGroup1"
android:layout_width="match_parent">
<RadioButton android:layout_width="wrap_content"
android:id="@+id/radio0" android:layout_height="wrap_content"
android:text="@string/celsius" android:checked="true"></RadioButton>
<RadioButton android:layout_width="wrap_content"
android:id="@+id/radio1" android:layout_height="wrap_content"
android:text="@string/fahrenheit"></RadioButton>
</RadioGroup>
<Button android:id="@+id/button1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/calc"
android:onClick="myClickHandler"></Button>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@color/myColor">
<EditText android:layout_height="wrap_content" android:id="@+id/editText1"
android:layout_width="match_parent" android:inputType="numberDecimal|numberSigned"></EditText>
<RadioGroup android:layout_height="wrap_content" android:id="@+id/radioGroup1"
android:layout_width="match_parent">
<RadioButton android:layout_width="wrap_content"
android:id="@+id/radio0" android:layout_height="wrap_content"
android:text="@string/celsius" android:checked="true"></RadioButton>
<RadioButton android:layout_width="wrap_content"
android:id="@+id/radio1" android:layout_height="wrap_content"
android:text="@string/fahrenheit"></RadioButton>
</RadioGroup>
<Button android:id="@+id/button1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/calc"
android:onClick="myClickHandler"></Button>
</LinearLayout>
[close]
Код вашего приложения
Spoiler:
Измените Ваш код в «Convert.java» на следующий. Обратите внимание, что вызов «myClickHandler» будет основан на свойстве «OnClick» Вашей кнопки.
package de.vogella.android.temperature;
package de.vogella.android.temperature;
Код
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
public class Convert extends Activity {
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (EditText) findViewById(R.id.editText1);
}
// This method is called at button click because we assigned the name to the
// "On Click property" of the button
public void myClickHandler(View view) {
switch (view.getId()) {
case R.id.button1:
RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
if (text.getText().length() == 0) {
Toast.makeText(this, "Please enter a valid number",
Toast.LENGTH_LONG).show();
return;
}
float inputValue = Float.parseFloat(text.getText().toString());
if (celsiusButton.isChecked()) {
text.setText(String
.valueOf(convertFahrenheitToCelsius(inputValue)));
} else {
text.setText(String
.valueOf(convertCelsiusToFahrenheit(inputValue)));
}
// Switch to the other button
if (fahrenheitButton.isChecked()) {
fahrenheitButton.setChecked(false);
celsiusButton.setChecked(true);
} else {
fahrenheitButton.setChecked(true);
celsiusButton.setChecked(false);
}
break;
}
}
// Converts to celsius
private float convertFahrenheitToCelsius(float fahrenheit) {
return ((fahrenheit - 32) * 5 / 9);
}
// Converts to fahrenheit
private float convertCelsiusToFahrenheit(float celsius) {
return ((celsius * 9) / 5) + 32;
}
}
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
public class Convert extends Activity {
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (EditText) findViewById(R.id.editText1);
}
// This method is called at button click because we assigned the name to the
// "On Click property" of the button
public void myClickHandler(View view) {
switch (view.getId()) {
case R.id.button1:
RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
if (text.getText().length() == 0) {
Toast.makeText(this, "Please enter a valid number",
Toast.LENGTH_LONG).show();
return;
}
float inputValue = Float.parseFloat(text.getText().toString());
if (celsiusButton.isChecked()) {
text.setText(String
.valueOf(convertFahrenheitToCelsius(inputValue)));
} else {
text.setText(String
.valueOf(convertCelsiusToFahrenheit(inputValue)));
}
// Switch to the other button
if (fahrenheitButton.isChecked()) {
fahrenheitButton.setChecked(false);
celsiusButton.setChecked(true);
} else {
fahrenheitButton.setChecked(true);
celsiusButton.setChecked(false);
}
break;
}
}
// Converts to celsius
private float convertFahrenheitToCelsius(float fahrenheit) {
return ((fahrenheit - 32) * 5 / 9);
}
// Converts to fahrenheit
private float convertCelsiusToFahrenheit(float celsius) {
return ((celsius * 9) / 5) + 32;
}
}
[close]
Запуск Проекта
Spoiler:
Для запуска Android-приложения, Выберите Ваш проект, сделайте по нему правый клик, Run-As-> Android Application. Будьте терпеливы, эмулятор запускается очень медленно. Вы должны получить следующий результат.

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

Введите число, выберите Ваше преобразование и нажмите кнопку. Должен отобразиться результат и выбраться другой вариант.
[close]
Подключаем исходники Android в Eclipse
Для тех кто любит ковыряться

Spoiler:
1. Открываем среду Eclipse, заходим в Help -> Install new Software
2. В поле Work With вставляем URL:
http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/
3. Ставим галку напротив Android Sources, жмем Next, Next.
4. Finish.
2. В поле Work With вставляем URL:
http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/
3. Ставим галку напротив Android Sources, жмем Next, Next.
4. Finish.
[close]
Запускаем пробный проект из Android Samples.
Spoiler:
Для этого в Eclipse выбираем New-> Other …
Выбираем папку Android и далее Android Project.
В свойствах проекта указываем его новое имя, выбираем Create Project from existing Sample -> LunarLander (игрушка). Указываем Target и жмем Finish.
Все, проект создан и исходные коды загружены.
Для запуска проекта жмем Ctrl+F11(компилировать ничего не надо, да и не получится). Долго ждем как запускается Android.
Выбираем папку Android и далее Android Project.
В свойствах проекта указываем его новое имя, выбираем Create Project from existing Sample -> LunarLander (игрушка). Указываем Target и жмем Finish.
Все, проект создан и исходные коды загружены.
Для запуска проекта жмем Ctrl+F11(компилировать ничего не надо, да и не получится). Долго ждем как запускается Android.
[close]
В 3 посте предложена по сути та же среда программирования, но от компании motorola с дополнительными возможности программирования под платформу Android смартфонов Motorola.
Литература:
Spoiler:
Книги
1.Книга по основам "Моя первая программа в Eclipse" (Скачать)
2.Голощапов А.Л.-Google Android программирование для мобильных устройств-2011 Скачать(Спасибо rausNT)
3.Eclipse: Учебное пособие (Cкачать)
[close]
[close]
Сообщение отредактировал noph8 - 25.1.2012, 20:19