понедельник, 15 июля 2013 г.

Как быстро настроить JavaCV для использования

http://gerasimchuk.blogspot.ru/2012/07/javacv.html

Замечание: dll можно класть в любую папку, которую потом нужно будет указать в переменной PATH.

1. Идём на сайт JavaCV (на момент написания статьи он хостится на code.google.com), и внимательно смотрим абзац "Required Software", где написано, какая версия OpenCV поддерживается в настоящий момент. Сейчас это OpenCV 2.4.2.
Скачиваем OpenCV нужной версии. После этого необходимо открыть самораспаковывающийся архив и указать ему адекватный путь (чтобы вы потом сами могли найти его) для библиотек и примеров. Далее идём в "выбранная_папка/opencv/build/x86/vc10/bin/", копируем все .dll в папку Windows/System32. В случае использования 64-разрядной версии Windows (Пуск → ПКМ по "Компьютер" → Свойства, там глядим "Тип системы") .dll-ки надо класть в папку SysWOW64.


2. Скачиваем саму JavaCV. После распаковки архива будут доступны несколько   .jar-сборок основной библиотеки. Так как мы выбрали 32-битные библиотеки OpenCV, то и файл нам нужен соответствующий: javacv-windows-x86.jar. Также нам нужны файлы javacpp.jar  и javacv.jar. Не забудьте включить их в свой проект, иначе, естесственно, ничего не заработает.

Я бы рекомендовал создать где-нибудь под рукой папку навроде "JavaLibraries" (если у вас до сих пор такой нет), и скопировать туда во-первых всю скачанную библиотеку JavaCV, а во-вторых все .dll-ки, с которыми текущая версия работает. Вы избежите проблем в будущем, когда вам понадобится запустить вашу программку на другом компьютере, а вы не будете помнить с какой версией той или иной библиотеки она написана.


Теперь осталось лишь написать код. Ограничимся самым простым примером - откроем файл и покажем его на экране, используя только функционал JavaCV. Создадим исполняемый класс:


import static com.googlecode.javacv.cpp.opencv_core.*;
import static com.googlecode.javacv.cpp.opencv_imgproc.*;
import static com.googlecode.javacv.cpp.opencv_highgui.*;

public class TestClass {
    public static void open(String filename) { 
        IplImage image = cvLoadImage(filename);
        if (image != null) {
            cvShowImage(filename, image);
            cvWaitKey();
        }
    }
 
    public static void main(String[] args) {
        open("image.jpg");
    }
}

Вот и все. Нажимаем Shift+F6 (или в диспетчере: ПКМ → Выполнить файл). Результат тут же высветится.

среда, 10 июля 2013 г.

При установке приложения на устройство android иногда может возникнуть ошибка:

INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

Это возникает от того, что уже установленный экземпляр приложения на вашем устройстве подписан сертификатом, отличающимся от того, которым вы подписываете в данный момент устанавливаемое приложение.

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

Как от этого избавиться:

1. Вы можете воспользоваться инструкцией отсюда
2. В случае отладки можно заменить хранилище сертификатов тем, в котором находится действительный сертификат.

Хранилище находится в Windows 7 по адресу: C:\Users\%username%\.android\debug.keystore.
Меняется простым копированием.
Предыдущее хранилище лучше сохранить под другим именем.

воскресенье, 7 июля 2013 г.

Как закачать исходники android под windows

Ниже инструкция, найденная на http://habrahabr.ru/post/130892/

Cygwin — это реализация POSIX юзерленда для Windows с кучей привычных утилит на все случаи жизни. Инсталлятор бесплатно доступен для скачивания на домашней странице проекта — www.cygwin.com/install.html, называется простоsetup.exe и выполняет роль графического пакетного менеджера. Скачав инсталлятор, запускаем его. Сначала куча стандартных вопросов: куда ставить, куда качать архивы, выбор ближайшего к вам зеркала и так далее. После указания всех опций надо выбрать нужные пакеты. Для работы repo требуется минимальный набор, поэтому спокойно оставляем дефолты и выбираем следующие бинарные пакеты: pythongitcurlgnupg и openssl. Все дополнительные зависимости в виде библиотек и вспомогательных бинариков будут добавлены в набор автоматически, поэтому о них можно не беспокоиться. Жмём Next, нам покажут список дополнительных зависимостей, соглашаемся и ждём завершения прогресса. Не сложно, правда ли? Но для полноценной работы надо подкрутить несколько болтиков.

Первым делом надо починить релокацию бинариков, почему-то она побитая. Для этого открываем обычную виндовую консольку (Win+RcmdEnter), топаем в папку с бинариками cygwin (например, C:\cygwin\bin) и запускаем ash. Теперь запускаем процесс релокации: /bin/rebaseall. Закончится он быстро, но ничего не напишет. Вобщем, увидели приглашение консольки снова — процесс завершился. Виндовую консольку можно закрыть. Теперь вся работа будет вестись в bash, запускаем его (Start -> Cygwin -> Cygwin Bash Shell) и читаем дальше.

Далее надо установить корневые сертификаты, cygwin поставляется без них. Работаем в баше, не забыли? И так:

$ mkdir -p /usr/ssl/certs
$ cd /usr/ssl/certs
$ curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
$ c_rehash


Знак доллара печатать не надо, если что. Теперь можно следовать оффициальной документации Google. Создаём папку дляrepo и настраиваем окружение:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


Отмечу, что при каждом новом открытии bash строчку $ PATH=~/bin:$PATH придётся вводить заново. Чтобы этого не делать, отредактируйте файл .bash_profile (C:\cygwin\home\%USERNAME%\.bash_profile), там уже всё есть, надо только раскомментировать (убрать символ # в начале строк) чтобы получилось:

# Set PATH so it includes user's private bin if it exists
if [ -d "${HOME}/bin" ] ; then
PATH="${HOME}/bin:${PATH}"
fi


Теперь создадим папку для исходников, проинициализируем репозиторий ветки master и выкачаем исходники:

$ cd ~/
$ mkdir android
$ cd android
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo sync


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

Вывод: выкачать исходники Android под Windows также просто, как и под Linux. Устанавливать дополнительные пакеты придётся в обоих случаях, а под виндой есть всего два маленьких дополнительных шага — релокация адресов бинариков и установка корневых сертификатов для cygwin

четверг, 4 июля 2013 г.

Подготовка среды разработки Android

Подготовка среды разработки Android хорошо описана здесь.

Вкратце:

Желательно установить все утилиты, сборщики  и SDK в папку с не очень длинным путем, например c:\programs.
Все проекты можно хранить в папке c:\projects.

Нам понадобится:

Установить переменные окружения:

set JAVA_HOME=c:\programs\path\to\jdk
set MAVEN_HOME=c:\programs\path\to\maven
set ANT_HOME=c:\programs\path\to\ant


set PATH=%PATH%;%JAVA_HOME%\bin;%MAVEN_HOME%\bin;C:\programs\ant\bin; C:\programs\android\platform-tools;C:\programs\android\tools

Создаем проект в eclipse.

Компиляция и запуск проекта:

  • cd c:\projects\projectName
  • android update project --path .
  • ant debug
Перед тем как запустить приложение на устройстве, убедитесь, что установлены его драйвера, например для устройств samsung нужно установить Samsung Kies.

Должен быть запущен сервер adb. Выполняется командой:

adb start-server

Сервер гасится командой:

adb kill-server