вторник, 18 октября 2011 г.

Установка jMonkeyEngine

jME - кроссплатформенный 3D движок для Java и в том числе - для Android.

До 3D я еще не дорос, но пощупать хочется... в связи с чем скачал и попытался поставить. Однако с первой попытки получил граблями по башке.

суббота, 8 октября 2011 г.

Я обожаю эту ... компанию

Сегодня, добавив очередную небольшую функцию в свое приложение Google App Engine получил очередной жестокий облом:

08.10.2011 21:55:38 org.datanucleus.store.query.AbstractJDOQLQuery <init>

WARNING: Candidate class for JDOQL single-string query (Commander) could not be resolved

Потратив массу времени выяснил
Вот так работает:

Query query = pm.newQuery(Commander.class);
query.setFilter("name == nameParam");
query.declareParameters("String nameParam");

Вот так нет:

Query query = pm.newQuery("select from Commander " +
"where name == nameParam " +
"parameters String nameParam");

И тот и другой код один в один повторяют примеры из руководства. Так какого же хрена?

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

Продолжение не заставило себя ждать.

среда, 5 октября 2011 г.

Большое человеческое спасибо компании Sun за впустую потраченное время

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

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

Короче. Сегодня. Вдруг. Перестала работать Eclipse. Симптомы - все работает 5-10 минут, потом вдруг падает. Молча. Без каких-либо сообщений об ошибках.

Долго грешил на то, что глючит какой-нить из эклипсовских плагинов - их у меня дофига стоит и не все корректно работают. Хотел уже переставить поставить еще одну эклипсу с ограниченным набором. Но дело было не в бобине:

Там собственно проблема возникла после выхода sun java update 21, eclipse перестал понимать что это виртуальная машина от sun, что-то там oracl'овцы нахимичили, решение — явно прописать в eclipse.ini "-XX:MaxPermSize=256m" после vmargs. 

Источник решения:
http://www.rsdn.ru/forum/java/3893887.all.aspx

И что самое характерное - и проблеме, и решению уже больше года. Тем не менее проблема до сих пор вылазит и все новые и новые люди получают граблями по башке. И это еще цветочки.

Самые ягодки - когда проблема свежая и решения нет. И это тоже сплошь и рядом.

среда, 28 сентября 2011 г.

Отладка на A8

После некоторых несложных манипуляций телефон вполне пригоден для разработчика. Нужно:

  • разрешить установку левых приложений
  • разрешить отладку по USB
  • провести над компом некоторые шаманские манипуляции в зависимости от вашей ОС
  • получить рутовский доступ

Первые два пункта врядли у кого-то вызовут затруднения, с третьим и четвертым чуть посложнее.

Собственно с третьим единственная сложность - узнать Vendor ID. На коробке, или в мануале такие вещи не пишут - по причине ненадобности для большинства пользователей. Узнать (в Linux) его можно командой lsusb. Нужно выполнить ее дважды - перед подключением телефона и после, чтобы не гадать какое из устройств является нашим телефоном. Нас интересует лишь то устройство которое появится в списке. Как я уже писал - мой телефон идентифицирует себя как HTC. Далее следуем инструкциям на android.com.

Надо сказать что я не совсем понимаю какой смысл разработчики Android вкладывали в блокирование рута, если в результате его все равно получить не так уж сложно? Блокировать - так уж насмерть, или не маяться дурью. Тем более зачем нужно оставлять в настройках пункты 1 и 2 на телефоне, который изначально предполагается как чисто пользовательский (не девелоперский)? Так или иначе мой A8 изначально шел заблокированный и при попытке подцепиться к нему через ADB выдавал вот такой результат:

четверг, 22 сентября 2011 г.

WiFi

Первое чем я озаботился после покупки смартфона это дешевый интернет. Мобильный интернет наших ведущих провайдеров отличается убогостью - дурными ценами, низкой скоростью и мизерными лимитами. Не говоря уже о различных способах надурить абонента. Поскольку я хочу попробовать разные приложения с маркета и вообще активно пользоваться интернетом, однозначно нужен способ сэкономить. При этом дома у меня безлимитный ДОМ.РУ. Решение напрашивается очевидное - поставить точку доступа WiFi. Это самый простой и кошерный способ.

Есть более нетривиальное решение - подключиться к интернету через  универсальный интерфейс (жопу) BlueTooth, но это на мой взгляд для любителей изврата.

A8

Вот я и стал счастливым (почти) обладателем китайского смартфона. Купленный на молотке, он обошелся мне в смешную сумму (3.333 руб + проценты за перевод денег через сбербанк). Добирался он до меня из Китая почти месяц и вот наконец добрался. Больше всего я переживал за его скитания по российской почте, но китайцы упаковали его очень хорошо и посылкой можно было спокойно играть в футбол, не опасаясь за целостность аппарата.

среда, 3 августа 2011 г.

Муки выбора блог-клиента

Какие только блог-клиенты я не перепробовал... честное слово, голова идет кругом. Раз в один-два месяца, когда меня очередной раз достает примитивный интерфейс встроенного редактора blogger или livejournal я сажусь и по новой роюсь в обзорах пытаясь найти программу, которая не то что устроит меня полностью, но хотя бы будет работать без явных глюков

пятница, 29 июля 2011 г.

Прогноз погоды через XML


  • gismeteo.ru - дает прогноз на сутки
  • foreca.com - дает яндексу
  • у гугла мутный секретный API - хуже чем у GisMeteo
  • суммируя до кучи всех прочих - нет нихрена в открытом доступе


сейчас как наиболее реальный вариант рассматриваю возможность выдрать необходимую информацию из XHTML странички для мобильников, которую дает Яндекс. Не есть хорошо с любой точки зрения, но за неимением лучшего варианта...

На маркете из бесплатных пожалуй лучший вариант от Яндекса. Росгидрометцентр платный, Gismeteo ограничен суточным прогнозом и зря народ просит большего. Автор явно забил на свое творение (потому как развивать в общем-то некуда) и просто имеет какой-то трафик на свой сайт.

При таком раскладе свое приложение можно сделать исключительно в учебных целях

WebView - вот это номер!

Решил написать свое первое приложение, которое выполнят хоть что-то полезное, а именно выводит прогноз погоды. Сделать это можно по разному, в том числе не просто, а очень просто:


  1. Берем на GisMeteo код HTML информера
  2. Ложим в файлик, файлик кладем в assets
  3. Загружаем файлик в WebView. Не забываем про setSciptEnabled("true")
  4. Вуаля, все здорово


А вот и хрен. WebView говорит - страница недоступна. После непродолжительного траха выясняем, что удаление из файлика содержимого тега <style> лечит эту проблему и наступает счастье. Однако это не есть хорошо, потому как непонятно - а в чем собственно проблема заключалась? Проблем-то, собственно быть не должно изначально. Заметим также, что в браузере (который как бы идентичен WebView данный информер открывается нормально).

Ищем... ага, вот, не я один наступил на эти грабли

В конце концов выясняем. Символы типа % воспринимаются методом WebView.loadData(...) как специальные и он изгаляется над ними с особой жестокостью.

Поэтому передаваемую строку нужно как-то закодировать Как именно, вернее чем, документация этот вопрос скромно умалчивает. Могли бы и ссылочку дать на пример. Решение оказывается простым до безобразия

вместо
mWebView.loadData(data,"text/html" ,"utf-8");
используем
mWebView.loadDataWithBaseURL(null,data,"text/html" ,"utf-8",null);

и ничего, никуда перекодировать не надо. И работает!... один раз. Но тут выясняется что упал Gismeteo.ru. Неужели это я?!!! Да не, навряд ли.

Проверяем:
It's not just you! http://informer.gismeteo.ru looks down from here.

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

четверг, 28 июля 2011 г.

Крестики-нолики

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

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

Начнем с того, что тупо проверять все мыслимые варианты, в то время как тебе точно известно где поставлена последняя метка - граничит с идиотизмом. Достаточно проверить одну вертикальную линию, одну горизонтальную и две диагонали. 4 линии вместо 14. Это в наихудшем случае. Если метка не попадает на диагональ, то логично не проверять эту диагональ вовсе.

Замечу также что известна последняя метка - стало быть если это крестик, то сложно ожидать что вдруг выиграли нолики. И наоборот. Что еще сильнее упрощает проверку.

среда, 27 июля 2011 г.

Получение отладочного ключа для Maps API

Первым делом нужно снять отпечатки пальчиков и зарегистрировать в местном отделении полиции (почти шутка - пока ненужно, но скоро придется)

Пока вы занимаетесь разработкой, ваше приложение автоматически подписывается отладочным сертификатом. Чтобы MapView нормально отображал карты, нужно получить временный ключ Maps API, зарегистрированный на этот сертификат. Чтобы это сделать нужно получить MD5 отпечаток вашего сертификата. Когда вы будете выкладывать законченную версию вашего шедевра, вам придется повторить операцию уже сертификатом релиза, получить новый ключ и внести изменения в элемент MapView вашего приложения.

Чтобы сгенерировать отпечаток MD5 отладочного сертификата, нужно найти отладочное хранилище ключей (debug.keystore). По умолчанию он хранится в директории AVD, которая в свою очередь находится:

Windows Vista: C:\Users\\.android\debug.keystore
Windows XP: C:\Documents and Settings\\.android\debug.keystore
OS X and Linux: ~/.android/debug.keystore

Если вы пользуете Eclipse/ADT и слабо ориентируетесь, где она хранит ключи, можете посмотреть под кроватью (Windows > Prefs > Android > Build) чтобы выяснить точное место.

Когда найдете, используйте keytool чтобы получить требуемое:

$ keytool -list -alias androiddebugkey \
-keystore <путь к файлу>debug.keystore \
-storepass android -keypass android

В ответ получите что-то вроде этого: Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98

Вот эти вот цифирки и буковки, разделенные двоеточиями, вы предъявите гуглу от тут. Невредно перед этим войти в свой гугловский аккаунт, а за неимением оного - заиметь. Потому как незарегистрированным юзерам гугл ничего не выдаст.

В результате у вас появится набор тарабарщины, который вы вставите себе в MapView
<com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="364Fgjbdqwbduqwu82385285285"
/>

Как-то вот так

Hello, Gallery! Наступаем на те же грабли

Как я уже писал про GridView,
если вы возьмете для изучения набор свой картинок (у меня под рукой
оказалась неплохая подборка девчонок разной степени раздетости), то
выяснится, что туториал умалчивает об очень важном нюансе. Прежде чем
заталкивать картинки в GridView/Gallery их необходимо уменьшить.

Переписываем ImageAdapter следующим образом:

public View getView(int position, View convertView, ViewGroup parent) {

    ImageView imageView;
    if (convertView==null){
        Bitmap orig=BitmapFactory.decodeResource(mContext.getResources(), mImageIds[position]);
        int width=orig.getWidth();
        int height=orig.getHeight();
        int nw=150; int nh=150;       

        float scalew=((float)nw)/width;
        float scaleh=((float)nh)/height;
        Matrix matrix = new Matrix();
        matrix.postScale(scalew, scaleh);
        Bitmap nbmp=Bitmap.createBitmap(orig, 0, 0, width, height,matrix,true);

        imageView= new ImageView(mContext);
        //imageView.setImageResource(mImageIds[position]); раньше брали картинку прямо из ресурсов
        imageView.setImageBitmap(nbmp);
        imageView.setLayoutParams(new Gallery.LayoutParams(150,150));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);

        imageView.setBackgroundResource(mGalleryItemBackground);
        } else {
            imageView=(ImageView) convertView;
        }
    return imageView;
}



Решение взято отсюда, и убраны лишние детали. Нужна ли конструкция
    if (convertView==null) { ...  }
      else {
            imageView=(ImageView) convertView;
        }

для меня пока под вопросом. Для GridView в туториале сделано так, для Gallery нет, хотя в остальном реализация идентичная.

вторник, 26 июля 2011 г.

Livejournal опять лежит

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

unable start ComponentInfo

Типичная ошибка новичков, вызывающая данную ошибку - забыть прописать Activity в манифесте. Нужно запомнить раз и навсегда - все activity должны быть прописаны в манифесте.

понедельник, 25 июля 2011 г.

GridView

При исследовании туториала Hello.GridView обнаружилось, что хотя в него и можно просто напихать картинок, но делать это не стоит. Всего-то 20 изображений общим объемом 2.6Мб привели к тому, что приложение перестало загружаться - нехватает памяти! Вывод - нужно явно сжать изображения, и лишь затем заталкивать в GridView.

Из самого туториала это ни коим образом не следует - там изображений меньше и сами они меньше размером.

Расписание автобуса

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


  1. Предварительно определяются координаты всех остановок города. Подходишь со смартфоном, фиксируешь координаты и записываешь название. Все данные фиксируются в БД на бесплатном сервере. Например Google App Engine.
  2. Каждому водителю выдается смартфон. Бюджетная модель, в которой самая главная вещь - GPS приемник.
  3. Смартфон лежит в кабине водителя и периодически отсылает координаты автобуса и номер маршрута на тот же сервер.
  4. Сервер фиксирует местоположение автобуса, определяет куда он движется (по последовательности прохождения остановок), и рассчитывает примерное время необходимое автобусу чтобы достичь всех последующих остановок маршрута. При этом алгоритм расчета может учесть очень многое - среднее время прохождения каждого перегона в данное время суток и день недели, среднюю скорость данного автобуса или автобуса с другого маршрута, который проехал тут непосредственно перед ним и т.д. и т.п.
  5. Пассажир, подходя к остановке может посмотреть ожидаемое время прибытия нужных маршрутов. Причем, если смартфон оборудован GPS - остановка определится автоматически, нужно будет лишь выбрать направление. Если не оборудован - придется выбрать из списка, но выбор будет сохранен, а обычно у каждого из нас не так много остановок где мы часто бываем, и эти остановки скоро будут в первых строках списка


Как видите ничего сложного. Реализация достаточно тривиальная. Вопрос лишь в том - достаточно ли у населения смартфонов, чтобы оправдать затею?

Hello, world

Мало что бесит меня сильнее чем косяки в документации. Я знаю, что поддерживать ее в актуальном состоянии для серьезного проекта мучительно, но все же... Примеры должны быть рабочими. В тесты (а такая система просто обязана иметь автоматические тесты, и без всякого сомнения - имеет) должна быть включена и сборка всех учебных проектов. Если не проходит - либо что-то накосячили, либо пора привести учебный проект в соответствие.

Собственно о Hello, world:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"/>

подобный main.xml вызывает ошибку
error: Error parsing XML: unbound prefix

суть проблемы - судя по всему тег TextView не может являться корневым. Он должен быть завернут например в LinearLayout. Т.е. правильно вот так:
<?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>

Update: Погорячился :). Проблема была в том что я забыл добавить xmlns:android="http://schemas.android.com/apk/res/android" в TextView


P.S. Какого лешего редактор блоггера все время пытается вставить в тему какие-то иероглифы?

суббота, 23 июля 2011 г.

Ну наконец-то

целый месяц я был вынужден сидеть, читать про программирование для Android и облизываться - на моем стареньком RoverBook'е делать что-то еще было физически невозможно.

Сегодня я наконец прибарахлился новым компом и почти готов к работе. Почти, потому как осталось все заново поставить и настроить.

Столкнулся с неожиданным препятствием. Для Ubuntu 11.04 x64 пакет sun-java-jre отсутствует... А иметь головняк с несовместимостью всяких прочих, открытых, вариантов не хочется. Как говорится - плавали, знаем.

Слава японскому богу проблема решилась просто. Почему-то по умолчанию были отключены некоторые репозитории. В конечном итоге подтянулись 32ухбитные варианты пакетов, но полагаю сильно хуже мне от этого не станет. Можно конечно раздобыть 64битный вариант непосредственно от Sun, но большого желания настраивать что-то ручками у меня нет. Других забот хватит.

Надеюсь с другим софтом проблем не возникнет. И без того хлопот с освоением нового компа хватило.

Началось все с того что Ubuntu 11.04 x86 не разглядела 4Гб памяти, и я было уже собрался идти в магазин, выяснять почему у меня на 1Гб меньше чем написано в чеке... но вовремя вспомнил, что 386 проц (а стало быть и все его наследники) имеет сопоставимое по размерам адресное пространство, и какие-то сходные проблемы с разрядностью уже когда-то возникали и цифра звучала знакомая - 2Гб, и тут до меня наконец дошло что дело может быть именно в разрядности ОС. Не прошло и трех суток ;). Пришлось скачивать 64битный вариант.

И тут оказалось что решив сэкономить на DVD (а фигли, старый работает - зачем брать новый?) я подложил себе небольшую свинью. В новой машине интерфейс IDE отсутствует как класс, а в старой, на DVD хотя и обнаружился разъем SATA, но вот шлейфа лишнего не нашлось. Хорошо хоть винт там был c SATA, а то я и на нем сэкономил :)))

Интересно, а если засунуть дивидюк в USB Mobil Rack c IDE - он будет работать корретно? Ну да неважно, под рукой оказалась флешка на 4Гб и была благополучно превращена в загрузочную. Да и неудобно, не лезет он туда.

Между делом попробовал Ubuntu Studio 11.04 и содрогнулся. Корявый текстовый инсталятор для заточенного под мультимедийный софт дистрибутива - это что-то. Да и не заработала она у меня толком. Уж не знаю в чем дело, но пробуя студию с версии 8.04 еще ни разу не добился чтобы она работала нормально. И уже не хочется.

Да, к слову об экономии... Большой респект омскому филиалу nix.ru, который мало того, что предлагает готовые системники по ценам несравненно ниже чем обычные магазины, так при этом еще можно отказаться от предустановки винды (а на кой она? если что - у меня уже аж две лицензионные XP пылятся - по числу купленных за минувшие 10 лет компов). Да еще и позволяют выбросить (и вычесть) все лишнее.

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

среда, 20 июля 2011 г.

Baby Monitor

При чтении книженции о программировании под Android пришла в голову идея для приложения. Коль скоро у нас в телефоне есть видеокамера и микрофон, а также неплохой API для записи звука и видео... что мешает нам превратить телефон в видеоняню?

Беглый поиск показал что все уже придумано до нас:
Например IP Webcam Превращает телефон в сетевую камеру. Поддерживает множество способов просмотра во всех распространённых ОС. Смотрите видео в реальном времени за через проигрыватель VLC, браузер или любое ПО для видеонаблюдения.

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

Однако есть еще простор для творчества. Во-первых, должна быть возможность подключаться удаленно (без доступа к телефону) и в любой момент времени - скайп тут же отпадает. Разве что в комплекте с какой-нибудь другой утилитой для удаленного доступа. Во-вторых должна быть возможность использовать как интернет, так и локальные способы связи (BlueTooth, WiFi). Кстати, я не в курсе - два телефона могут общаться по WiFi непосредственно, или им нужна базовая станция? Ну и много еще разных фишек, раскиданных по разным программам.

З.Ы. А еще неплохо бы иметь на одежде специальный кармашек для телефона, куда его можно положить и снимать тихонько видео... например общение с сотрудниками различных говнорганов
З.З.Ы. И крепление в машине, превращающее телефон в видеорегистратор

пятница, 15 июля 2011 г.

Ustream Broadcaster

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

Вот описание мобильного приложения для Android
Ustream Broadcaster позволяет вам транслировать видео с вашего устройства на Ustream(сайт)!

Важно: Если у вас на девайсе Android 2.1 или более, пожалуйста ставьте новое приложение "Ustream", которое объединяет в себе запись и посмотр (в более ранней версии они идут раздельно)! Ищите "Ustream" на Android Market и обрящете.

Ustream Broadcaster для Android позволяет пользователям транслировать живое видео с мобильника на Ustream через 3G или WiFi, ну и конечно записывать его в оффлайне и загружать на Ustream позднее.

Ustream также позволяет публиковать видео через Twitter и Facebook и загружать его на YouTube!

Реал-тайм видео

http://qik.com/
http://ru.justin.tv/

трансляция видео в реальном времени (де факто - с небольшой задержкой). Имеется приложение для Android, от чего меня это и заинтересовало. Наткнулся на LiveCast, но это ну оочень серьезно, а вот чтобы было доступно каждому - эти две сцылки.

А вот приложение Android
Перевод описания:
Socialcam - самый легкий способ обмениваться видео с друзьями. Это приложение делает передачу видео с вашего телефона таким же простым делом, как загрузка фоток на Facebook. В несколько кликов вы можете записывать, помечать и передавать видео, а также просматривать и комментировать видео ваших друзей.

Возможности:
- Неограниченная продолжительность и объем
- Загрузка видео на сервер происходит сразу, в процессе записи
- Можно также записывать виде в оффлайне и загружать на сервер позже, когда будет доступ к интернету
- Можно отметить на видео ваших друзей
- Уведомления о том, что вас отметили на видео
- Просмотр и добавление комментариев к видео ваших друзей
- Обмен видео через Facebook, Twitter, Email и SMS

P.S. YouTube - разочаровал. Они еще год назад тестировали передачу живого видео, но в результате эта фича широким массам не доступна. А зря. Очень зря.

понедельник, 11 июля 2011 г.

LUbuntu

Мои попытки обойтись в борьбе с Android инструментами командной строки потерпели фиаско. Не то чтобы я не понял как это делается, или что-то не получилось, просто эмулятор Android запущенный из командной строки работает так же медленно, как запущенные из Eclipse. 5 минут на загрузку типовой системы с Android 1.5 и 10 минут на Android 2.2 - это за пределами моего терпения. Да и система запущенная в VirtualBox'е тоже не отличается особенным быстродействием, как это показалось сначала.

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

И наконец возникла мысль что раньше (когда трава была зеленой, а мобильники были мобилами) тоже были всякие линуксы и работали на гораздо более слабом железе и при том довольно шустро. Не то чтобы мне хотелось возвращаться к FireFox 1.0 и прочим раритетам, но... чем черт не шутит? Вдруг есть дистрибутив с более менее современным набором софта и в то же время заточенный под старое железо?

Беглый поиск показал, что сильно далеко (от Ubuntu) ходить и не надо, поскольку имеется дистрибутив LUbuntu, заточенный именно в нужном направлении. Дабы не делать резких движений по смене шила на мыло, для начала решил пощупать оконный менеджер LXDE, благо он входит в состав традиционного дистрибутива.

И вот тут меня ожидал сюрприз.

Одна лишь замена оконного менеджера (а я полагаю, что этим различия дистрибутивов ограничиваться не должны) оказала существенное влияние на производительность. VirtualBox зашуршал с приемлемой скоростью, да и скорость загрузки эмулятора Android увеличилась в разы (!) хотя казалось бы - какое дело им до оконного менеджера? Тем более что некоторые другие программы работать быстрее не стали. Так что странно это и непонятно.

Вобщем на радостях я поковырялся немного в своем виртуальном eeePC и получил второй сюрприз, на этот раз неприятный. Имеющееся на нем приложение AppStore без проблем загружает новые приложения, однако интересующий меня Astro File Manager там не обнаружился. Зайдя же на Android Market напрямую через браузер - получил облом. К моему аккаунту видите ли не привязано устройство с android. Потому как я видите ли, давно с него туда не заходил.

Устройства такого у меня естественно нет вообще, а виртуальный eeePC как таковое не воспринимается. И по этой вполне дурацкой причине я не могу загрузить с маркета(напрямую) даже бесплатные приложения. При этом через универсальный интерфейс (_._) - это вполне возможно. Дурдом

И по прежнему для меня остается открытым вопрос - какой же должна быть минимальная система для комфортной отладки приложений для Android?

воскресенье, 10 июля 2011 г.

Ужос

В силу неудачного стечения обстоятельств мой десктоп пылится в углу, а эти заметки я строчу на (относительно) стареньком ноутбуке. Относительно, потому как даже сейчас машинка с P4 3ГГц и 512Мб ОЗУ как бы не выглядит так уж плохо. Но судьба жестока - клавиатура и мышь подключены через универсальный интерфейс (отчего они иногда отрубаются без видимых на то причин), вентилятор жутко воет пытаясь удержать температуру в разумных рамках (безуспешно - даже корпус на ощупь ощутимо горячий, что там внутри - страшно представить). Винт также не отличается быстродействием.

Слава богу хоть ОС - Ubuntu, это дает некоторый выигрыш в производительности. Винда даже без антивируса работает мучительно медленно.

К чему собственно эти стенания - если запустить Eclipse, да браузер (ну как без него), а потом еще и Android Device Emulator... то возникает желание побиться головой обо что-нибудь твердое. Желание же что-то поотлаживать пропадает начисто.

Кстати, если запустить Android на VirtualBox - он шевелится там вполне ничего так себе (все таки аппаратная эмуляция вместо программной), но к сожалению прикрутить его вместо реального устройства нельзя (я по крайней мере о таком не слышал). Да и опять же - на оставшейся после запуска VirtualBox'а памяти Eclipse будет ворочаться как бегемот в типовом санузле.

Вот и остается строчить переводы документации и вынашивать планы тряхнуть стариной и попробовать инструменты командной строки.

Update: Нормальная конфигурация для разработки - двухядерный процессор и не менее 1Гб памяти. А лучше 2Гб.