Sunday, May 8, 2011

Пишем приложение для Android

Для начала работы необходимо скачать и установить следующее:

Eclipse-SDK – 180 Мб
ADT плагин к Eclipse – 5 Мб
Java JDK – 80 Мб

ADT плагина к Eclipse можно установить как онлайн, так и скачать и установить вручную.
Для установки онлайн нужно выбрать пункт меню Help -> Install New Software... и в поле Work with вписать адрес загрузки плагина: dl-ssl.google.com/android/eclipse/
Если хотите установить плагин вручную, то нужно скачать его по ссылке http://developer.android.com/sdk/eclipse-adt.html.
Для отладки и отправки приложения на устройство (в моем случае это HTC) необходимо скачать также:
HTC Sync – 73 Мб

Важно, что программа виртуального устройства не понимает русские буквы в пути.
C:\Users\Имя\.android\...
Если у вас в имени пользователя имеются русские буквы, то нужно сделать следующее.
Открыть и отредактировать файл: имя_виртуального_устройства.ini в папке C:\Users\Имя\.android\avd\
target=android-7
path=path_to_file\имя_виртуального_устройства.avd
Также нужно скопировать файлы виртуального устройства в указанный путь.

Также если происходят ошибки и эмулятор не запускается, то можно попробовать удалить папку C:\Users\Имя\.android. И затем создать новое виртуальное устройство.


Устройство

В качестве устройства используется коммуникатор HTC Wildfire A3333.

В коробке.

Весь комплект.


Технические характеристики.

Вид сзади.


Включение устройства.

 
Подключение.

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

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

Работа приложения в эмуляторе.

К сожалению, проигрывание видео в эмуляторе происходит не очень хорошо.

Работа приложения на устройстве.

Для того чтобы просмотреть, скачать, загрузить файлы на эмулятор Android необходимо открыть DDMS.

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

Для этого в эмуляторе Android необходимо прописать DNS в поле Additional Emulator Command Line Options в следующем виде:
-dns-server xxx.xxx.xxx.xxx
Возможно, также потребуется добавить исполняемые файлы эмулятора в доверенные – в настройках firewall.

Wednesday, May 4, 2011

Invoking a function before empty main function

It's is interesting that you can call functions or print "hello world" messages in C/C++ with empty main() function.
All global variables are initialized before calling the main() function. Therefore, it could be empty.

#include <iostream>

std::ostream &out = std::cout << "print text before main" << std::endl;

void foo() { std::cout << "foo() called before main" << std::endl; }

class A
{
public:
  A() { foo(); }
};

A obj;

// empty main function
void main()
{
}

 
* This source code was highlighted with Source Code Highlighter.

This code will print:

print text before main
foo() called before main

May the Force be with you

May the 4th be with you!
Happy Star Wars day.