Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > Android

Android Разработка игр на платформе Android

Ответ
 
Опции темы
Старый 28.01.2011, 15:37   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
FAQ: Создание нового проекта на примере Hello world

Итак, приступаем к созданию первой программы. Прежде всего нам нужно запустить Eclipse IDE. Далее заходим в меню File - New - Project... Появится окошко показанное на рисунке 1. В нем выбираем тип проекта - Android Project. Далее появится окно в котором нужно будет заполнить довольно много полей (см. рисунок 2).

В поле Project name пишем название нашего проекта: Hello world
В поле Build target выбираем версию ОС под которую будет рассчитано наше приложение: выбираем версию 1.5. Если список версий не отображается, значит вы не указали или неправильно указали в настройках расположение Android SDK. Подробнее читайте в FAQ по настройке и установке Eclipse IDE.
В поле Aplication name вводим название приложения (под каким именем приложение будет отображаться в телефоне): Hello world
В поле Packege name указываем пространство имен, которое будет использоваться в программе. Все пространства имен пишутся без пробелов, используя точку. Указываем пространство имен: com.example.hello
В поле Create Activity обязательно ставим галочку и пишем название метода, который будет вызываться при запуске нашей программы: MainActivity
В поле Min SDK Version указываем минимальную версию SDK, в которой нормально должна работать наша программа. Тут нумерация несколько необычная. Дело в том, что в Android OS версии идут начиная с 1.5 то есть 1.5, 1.6 и т.д. до версии 2.3. Так вот по версия 1.5 считается 3 версией по данной нумерации. Версия 1.6 будет уже 4 версией и т.д. Вот такая особенность. В данном поле мы указываем значение 3.

Всё, заполнив все поля нажимаем кнопку "Finish". Проект создан.

В окне среды программирования можно найти наш проект используя вкладки Navigator или Packege Explorer (см. рисунок 3). Несколько слов о структуре папок в приложении, знать их очень важно для любого разработчика. В папке SRC лежат исходные коды нашего приложения написанные на языке Java. Пока там лежит только файл MainActivity.java с исходным текстом нашей программы. В папке RES находтся все ресурсы нашей программы, папка RES имеет 3 подпапки: drawable, layout, values. В папке drawable лежит вся графика, используемая в приложении. Пока там лежит только иконка нашей программки icon.png, но если в вашей программе есть и другие картинки, то все их нужно копировать именно сюда. В подпапке layout лежат XML файлы с разметками форм нашего приложения. Пока не буду объяснять что это и зачем, опишу позже. В папке values также содержится XML файл(ы) с описанием некоторых переменных. Чаще всего тут хранят различные строки с текстом. В папке GEN лежат различные Java классы генерируемые при компиляции, сюда лучше не лезть. В папке BIN будет лежать уже скомпилированный APK файл нашего приложения, который можно будет закачать в реальный телефон и проверить работоспособность программы там.

Итак, краткий обзор папок приложения я провел. А как же его запустить в эмуляторе? Для этого жмем клавиши Ctrl+F11 или через меню Run - Run в итоге у нас появится окошко с вопросом как запускать это приложение (см. рисунок 4). В данном окне нужно выбрать строчку "Android Aplication". Ура! Начался запуск эмулятора телефона. Эмулятор запустился и сразу порадовал нас заблокированным экраном (см. рисунок 5). Не очень дружелюбно с его стороны. Сначала нам нужно снять телефон с блокировки. Для этого нужно мышью нажать на картинку замочка и переместить замочек вправо. Появится рабочий стол мобильного телефона (см. рисунок 6). Снова нашей программы не видать. Где же она? Нажимаем мышью на кучу квадратиков в нижнем углу экрана. Появится главное меню мобильника (см. рисунок 7). Ну наконец-то, можно увидеть иконку нашего приложения Hello World. Теперь для запуска приложения кликаем по его иконке и лицезреем на экране работу нашего первого приложения под Android (см. рисунок 8).

Что происходит при запуске приложения?
При запуске приложения запускается указанный нами при создании приложения класс MainActivity.java Класс крайне прост, его исходный код по сути состоит всего из 2 строк:
package com.examles.hello;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Если вы уже кодили под Java ME, то знаете, что каждая программа (она же мидлет) имеет как минимум 3 точки входа: startApp(), pauseApp() и destroyApp():

startApp - вызывается при запуске программы
pauseApp - вызывается при сворачивании программы или при входящем звонке во время работы программы
destroyApp - вызывается при закрытии программы

Аналогичную ситуацию мы видим и в Android программе, но тут методов больше и они немного другие:

onCreate - вызывается при открытии программы, но перпед запуском
onStart - запуск программы
onPause - пауза в программе
onResume - продолжение работы программы после паузы
onStop - остановка программы, но ещё не закрытие
onDestroy - закрытие программы
onRestart - перезапуск программы

Итак, возвращаемся к нашему исходному коду. В нем мы видим, что в нем есть определение метода onCreate. Причем вся программа занимает всего 2 строки.

super.onCreate(savedInstanceState); - тут мы передаем обратно данные которые приняли при запуске приложения, так как мы их никак не используем, то передаем их дальше по очереди другим приложениям
setContentView(R.layout.main); - тут мы выводим на экран форму под названием main

Итак, наша программа просто выводит на экран некую форму под названием main. Надо сказать, что программы под Android очень похожи по своей структуре на обычные приложения для Windows. И там и тут приложение состоит из непосредственно кода и одной или нескольких форм, которые выводятся на экран. Тут ситуация та же. Код программы всего лишь выводит на дисплей некую форму под названием main. Может посмотрим на состав кода в данной форме? Код этот можно посмотреть в папке res/layouts/main.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"
>
    
<TextView  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/hello"
/>
    
</LinearLayout>
Проще говоря что мы можем видеть в данном файле разметки? У нас есть некий блок с линейной вертикальной разметкой элементов (LinearLayout) в котором содержится всего один элемент - некий TextView с текстом @string/hello. Эти странные собачки в тексте элемента говорят о том, что на самом деле выводимый на экран текст нужно искать не тут, а в файле с переменными res/values/strings.xml вот текст данного файла:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">Hello World</string>
</resources>
Итак, программа выводит на экран форму, а форма выводит на экран строку которая хранится в файле strings.xml в поле hello. Вот собственно и всё что нам следовало знать.

Как поменять выводимый на экран текст на свой?
Решений данной проблемы три:
1. Открыть файл strings.xml и изменить значение переменной hello на свой текст непосредственно там. При этом откроется симпатичный редактор показанный на рисунке 9. Попробуйте поменять так текст переменной на строку "Тут был Вася Пупкин", к примеру. Среда отлично понимает русский шрифт.
2. Немного подправить сам файл с формой (main.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"
    >
<TextView
	android:id="@+id/text"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Тут был Вася"
    />
</LinearLayout>
3. Изменить выводимую в форме строку программно. Тогда нужно будет немного изменить исходный текст нашей Java программы MainActivity.java (текст разметки формы main.xml тоже нужно править как показано в пункте 2)

package com.examles.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView tw = (TextView)findViewById(R.id.text);
        tw.setText("odd was here");
    }
}
Скорее всего вы так ничего и не пойметее из данного урока, но не слишком расстраивайтесь. Это нормально. Со временем вы будете понимать всё больше и больше. Главное читайте FAQ и книги по программированию под Android почаще. Удачи в разработках и не забывайте заглядывать в наши FAQи!
Миниатюры
Нажмите на изображение для увеличения
Название: hello1.png
Просмотров: 372
Размер:	21.5 Кб
ID:	12532  Нажмите на изображение для увеличения
Название: hello2.png
Просмотров: 388
Размер:	35.1 Кб
ID:	12533  Нажмите на изображение для увеличения
Название: hello3.png
Просмотров: 335
Размер:	7.5 Кб
ID:	12534  Нажмите на изображение для увеличения
Название: hello4.png
Просмотров: 312
Размер:	11.4 Кб
ID:	12535  Нажмите на изображение для увеличения
Название: hello5.png
Просмотров: 457
Размер:	127.6 Кб
ID:	12536  

Нажмите на изображение для увеличения
Название: hello6.png
Просмотров: 403
Размер:	140.1 Кб
ID:	12537  Нажмите на изображение для увеличения
Название: hello7.png
Просмотров: 351
Размер:	92.3 Кб
ID:	12538  Нажмите на изображение для увеличения
Название: hello8.png
Просмотров: 400
Размер:	55.6 Кб
ID:	12539  Нажмите на изображение для увеличения
Название: hello9.png
Просмотров: 351
Размер:	47.6 Кб
ID:	12540  
(Offline)
 
Ответить с цитированием
Эти 14 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
BlackDragon (19.05.2011), DeeJex (14.03.2011), Hurrit (28.01.2011), Igor (28.01.2011), Mhyhr (28.01.2011), midlet_pascal (28.01.2012), moka (29.01.2011), Nex (13.05.2011), pax (28.01.2011), Phantom (28.01.2011), psih1 (29.01.2011), Randomize (28.01.2011), Sanya (27.02.2011), Tadeus (23.02.2011)
Старый 02.05.2011, 11:35   #2
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 744
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

odd, можешь попробовать сделать и описать вот это:
http://microemu.blogspot.com/2008/11...n-android.html ?
__________________
(Offline)
 
Ответить с цитированием
Старый 04.05.2011, 19:30   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Прикольно. Насколько я понимаю, то там используется какой-то перекодировщик из Java в Android. Попробую обязательно. Если получится, то сделаю утилиту для автоматического преобразования, как я сделал для BlackBerry.
(Offline)
 
Ответить с цитированием
Старый 05.05.2011, 07:22   #4
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 744
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Да, с такой утилитой было б круто. Сейчас у меня ничего не выходит на этапе сборки..
__________________
(Offline)
 
Ответить с цитированием
Старый 11.05.2011, 21:10   #5
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Я тоже пока застрял на сборке. Но может все и получится.
(Offline)
 
Ответить с цитированием
Старый 15.05.2011, 08:53   #6
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 744
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Вообще я читал, что опера мини была так портирована.
А она работает очень даже быстро. Так что способ не лишен смысла.
Тем более единственный аналог - netmite работает не очень хорошо и требует установки эмулятора в телефон.
__________________
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 08:50   #7
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Да, я тоже Netmite откопал, но что-то у меня программы не работают под ним. Тем более нужно в телефон эмулятор ставить.
(Offline)
 
Ответить с цитированием
Старый 21.06.2011, 19:48   #8
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 744
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Микроэмулятор можно еще для портирования на iOS использовать.
Было бы очень неплохо научиться наконец им пользоваться.

Кажется нашел проблему. В Build.xml указаны пути не соответствующие расположению файлов в SDK. Tools переместились в Platform tools.
После долгой возьни всё таки скормил build.xml со всеми настройками ant'у. 14 ошибок при компиляции примера((

Логи указывают на исходники микроэмулятора.
http://textsave.de/?p=65887


ЧАСТИЧНАЯ ПОБЕДА!
Программа собрана. Проблемы:
- не фуллскрин
- не фиксированая ориентация
- вылетает довольно быстро
__________________

Последний раз редактировалось cherepets, 22.06.2011 в 08:26.
(Offline)
 
Ответить с цитированием
Старый 14.03.2012, 18:51   #9
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 417
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Так что, есть где-нибудь faq на русском по портированию прог с j2me на андроид?
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 12:46   #10
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

У меня эмулятор чудит:
Нажмите на изображение для увеличения
Название: j007.jpg
Просмотров: 251
Размер:	121.3 Кб
ID:	16855
Что за шайтан?

P.S. Предварительно эмулятор спрашивает, какую камеру выбрать, а затем выплевывает кучу окошек командной строки.

...Спустя 5 минут...

А, не, все нормально. Оказывается, это он так долго запускается О_о
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 12:58   #11
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 618 полезных сообщений
(для 2,416 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Эмулятор вообще лучше не закрывать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PassCall (13.05.2012)
Старый 13.05.2012, 13:16   #12
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

А есть где нибудь (тут на форуме или вообще) справочник вида

%команда%|%зачем она нужна%|%фичи/баги%|%пример использования%

ну типа
Команда: DrawText (text:string,x:integer,y:integer);
_____________________________
Описание: Рисует текст "text", в точку с координатами x,y
_____________________________
Баги/Фичи: Желательно, чтобы текст не вылазил за экран
_____________________________
Пример: DrawText ("ololol",0,0);
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 14:50   #13
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 417
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

На английском языке все есть: http://developer.android.com (справа поле "search developer docs"). Вот только я так и не разобрался
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PassCall (13.05.2012)
Старый 13.05.2012, 19:44   #14
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Сообщение от AVL Посмотреть сообщение
На английском языке все есть: http://developer.android.com (справа поле "search developer docs"). Вот только я так и не разобрался
Ну, хоть что-то. Да и в английском ближе к оригиналу, значит - точнее.
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 13.05.2012, 19:50   #15
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 417
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: FAQ: Создание нового проекта на примере Hello world

Сообщение от PassCall Посмотреть сообщение
ближе к оригиналу
Вообще-то это и есть оригинал.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 20:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com