Monthly Archives: Август 2013

Создание приложения Android и его запуск на эмуляторе

В предыдущей статье было описана настройка Eclipse для разработки под Android. Теперь создадим приложение и запустим его на эмуляторе. Откройте Eclipse. В меню выберите File -> New -> Other... или нажмите сочетание клавиш Ctrl + N. Откроется окно выбора мастеров. Нам нужен мастер Android Application Project. Выберите его и нажмите Next 1 На следующем шаге нужно указать название приложения, название проекта и пакет. Пакет нужно выбрать таким образом, чтобы сделать ваше приложение уникальным. 2 Также нужно выбрать минимально поддерживаемую версию Android, предпочитаемую версию и версию, с помощью которой будет компилироваться приложение. Можно указать тему приложения. Нажмите Next для перехода к следующему шагу. 3 В этом окне можно ничего не менять, просто нажмите Next. 4 В данном окне можно настроить иконку вашего приложения. Но мы ничего настраивать не будем и идем дальше. Next. 5 Выберите Blank Activity и нажмите Next. 6 Здесь можно настроить название Activity и название макета. Закончим работу с мастером нажатием кнопки Finish.
Создание виртуального устройства Откроем менеджер виртуальных устройств (Android Virtual Device Manager): device manager Нажмите кнопку New... для создания нового виртуального устройства: Android Virtual Device Manager В окне создания виртуального устройства Android обзовите как-нибудь ваше устройство, причем название должно состоять из латинских букв, цифр и символов: ._- Create new AVD Также вам предлагается выбрать экран вашего устройство: screen device Выберите необходимую версию Android. Причем, если вы используете Google API (например, Google Map), нужно выбрать соответствующий пункт с поддержкой Google API: target api Как видно из картинку у меня установлены API только для 8 и 17 версии. Также вы можете настроить дополнительные параметры: фронтальную и заднюю камеры, объем оперативной памяти устройства, внутреннюю память, размер SD-карты и другие параметры. Указав все необходимые параметры, нажмите OK. Добавленное устройство появиться в списке: new device Теперь запустим устройство, выберите его из списка и нажмите кнопку "Start...": start device Появиться окно запроса настроек запуcка, в нем просто нажмите "Launch": launch options Появиться окно эмулятора с кнопками. Дождитесь загрузки Android, это может занять продолжительное время: android loading После загрузки: android desktop Запуск приложения на эмуляторе Окно "Android Virtual Device Manager" можно закрыть. Выберите проект и нажмите кнопку запуска: run application При первом запуске будут предложено как запустить приложение, нужно выбрать запустить как Android Application и нажать кнопку OK: Run As Приложение запущено! Вот так выглядит наше приложение в эмуляторе: application is run

Перенос файлов базы данных DB2 v8.1

Перед нами встала задача перенести базу данных DB2 v8.1 со старого компьютера на новый. Сразу оговорюсь, существуют более простые и надежные способы переноса база данных DB2, чем описанный ниже способ. Но кому-то он может пригодиться. Например, в том случае, если от базы данных остались лишь файлы. Данный способ описывает перенос базы путем копирования файлов базы данных. 1) Нужно установить на новом компьютере DB2 той же версии, что и на старом компьютере 2) Следующий шаг - копирование папок, в которых содержаться файлы базы данных DB2. Для начала просмотрим какие есть табличные пространства, выполним следующий запрос:
list tablespaces
Будет выведена информация о существующих табличных пространств: ID табличного пространства, название табличного пространства и другая информация.
ID табличного пространства = 0
Имя                        = SYSCATSPACE

ID табличного пространства = 1
Имя                        = TEMPSPACE1

ID табличного пространства = 2
Имя                        = USERSPACE1

ID табличного пространства = 3
Имя                        = USERSPACE2

ID табличного пространства = 4
Имя                        = SYSTOOLSPACE

т.е. в данном случае у нас 5 табличных пространств. Остается определить расположение этих табличных пространств на жестком диске. Для каждого табличного пространства нужно выполнить запрос, указав в качестве параметра ID табличного пространства.
list tablespace containers FOR 0;
list tablespace containers FOR 1;
list tablespace containers FOR 2;
list tablespace containers FOR 3;
list tablespace containers FOR 4;
Будет выведен список контейнеров табличных пространств:
Контейнеры табличных пространств для табличного пространства 0
 Имя = C:\DB2\NODE0000\SQL00008\SQLT0000.0

Контейнеры табличных пространств для табличного пространства 1
 Имя  = C:\DB2\NODE0000\SQL00008\SQLT0001.0

Контейнеры табличных пространств для табличного пространства 2
Имя = C:\DB2\NODE0000\SQL00008\SQLT0002.0

Контейнеры табличных пространств для табличного пространства 3
Имя = C:\project\USER_DB_CONTAINER

Контейнеры табличных пространств для табличного пространства 4
Имя = C:\DB2\NODE0000\SQL00008\SYSTOOLSPACE

Обратите внимание, что кроме стандартного размещения файлов в папке C:\DB2, также используется контейнер C:\project\USER_DB_CONTAINER. Из этого делается вывод: нужно перенести на новый компьютер папку C:\DB2 и папку C:\project. 3) Скопировав все необходимые папки на новый компьютер, открываем Центр управления DB2. Находим элемент "Базы данных": развернуть список В контекстном меню этого пункта выберите "Добавить..." добавить Откроется окно добавления базы данных: выбрать бд Для начала выберите диск, автоматически будут считаны доступные базы данных на этом диске. Выберите свою базу и нажмите "OK". Если у вас несколько баз, то проделайте операцию для каждой базы данных. Добавленные базы появятся в списке: список баз данных 4) В случае, если у вас имеются распределенные (федеративные, federated) базы данных, то нужно включить поддержку федеративных баз и настроить user mapping. Поддержка федеративных баз включается командой:
UPDATE DBM CFG USING FEDERATED YES DEFERRED;
После этого нужно перегрузить DB2. Это можно сделать через значок в трее: db2 in tray У DB2 есть особенность: он берёт пользователей из операционной системы. После того, как мы заходим под своей учеткой на компьютер, база будет доступна и она не требует отдельного подключения к базе данных. Но не будут доступны псевдонимы, которые настроены на таблицы из федеративных баз данных. При попытке обратиться к псевдониму выйдет следующая ошибка.
com.ibm.db.DataException: Ошибка менеджера баз данных. : [IBM][CLI Driver][DB2/NT] 
SQL1101N Не удалось получить доступ к удаленной базе данных  на узле "" 
при указанном ID авторизации и пароле. SQLSTATE=08004
Нужно настроить пользователя и пароль для доступа к федеративной базе, не смотря на то, что базы находятся на одном компьютере и в одном инстансе. Если быть точнее, то нужно настроить отображение пользователя на удаленного пользователя с пароле (user mapping). Для начала просмотрим существующие отображения пользователей:
SELECT * FROM syscat.useroptions
user_mapping_table Столбец AUTHID - имя пользователя из операционной системы. Столбец SERVERNAME - имя федеративной базы Столбец OPTION храним одну из опций: REMOTE_AUTHID или REMOTE_PASSWORD Столбец SETTING - значение настройки: для REMOTE_AUTHID - удаленный пользователь, для REMOTE_PASSWORD - кэш от пароля удаленного пользователя. В нашем случае данные пользователя операционной системы совпадают с данными удаленного пользователя. Здесь возможно три случая: a) Просто обновить пароль
ALTER USER MAPPING FOR DB2ADMIN SERVER COMMON OPTIONS 
(SET REMOTE_PASSWORD  'your_password');
б) Обновить учетку удаленного пользователя и пароля
ALTER USER MAPPING FOR DB2ADMIN SERVER COMMON OPTIONS 
(SET REMOTE_AUTHID 'new_remote_user_login', SET REMOTE_PASSWORD 'your_password');
в) Добавление нового(дополнительного) пользователя в таблицу отображений
CREATE USER MAPPING FOR YOUR_USER SERVER COMMON OPTIONS 
(REMOTE_AUTHID 'remote_user', REMOTE_PASSWORD  'remote_password');
На этом перенос баз данных завершен! p.s. Даже, если на новом компьютере у вас будут аналогичные удаленные пользователь с таким же паролями, советую обновить кэши паролей для всех пользователей в таблице отображений.