Всем привет. На прошедшем Google I/O нам наконец представили официальное видение компании Google на архитектуру Android-приложений, а также библиотеки для его реализации. Не прошло и десяти лет. Конечно мне сразу захотелось попробовать, что же там предлагается.
Пользователь
Робомобиль на базе Arduino Mega 2560 с Bluetooth управлением и автономным движением с объездом препятствий
![](https://habrastorage.org/getpro/geektimes/post_images/d47/978/638/d479786384a7b19591cd3eba1553b679.jpg)
В чём различие между папками Windows и System?
В Windows API с самого начала есть две отдельные функции
GetWindowsDirectory
и GetSystemDirectory
. Почему недостаточно было одной? Обе эти системные папки защищены от записи, обе входят в PATH и в список поиска DLL-библиотек. Зачем было их разделять?Аксакалы вспомнят, что в те давние времена назначение этих папок различалось. Папка Windows была доступна для записи, и именно в ней хранились все настройки пользователя. Например, функция
GetProfileInt
читает из файла WIN.INI
в папке Windows, и функция GetPrivateProfileInt
, если не указан полный путь INI-файла, по умолчанию работает с папкой Windows.В те давние времена не было отдельных папок с профилями пользователей; в папке Windows, по сути, хранился профиль единственного пользователя в системе.
С другой стороны, большинство системных файлов Windows хранилось в папке System, и эта папка использовалась только для чтения. Даже если не было механизма, фактически запрещавшего запись в эту папку, — сама Windows никогда в неё не писала (исключая установку и удаление приложений, и прочие операции по настройке системы).
Разделение системных файлов на две папки позволяло Windows работать в нескольких различных конфигурациях.
Что не так с Windows Phone 7?
![image](https://habrastorage.org/getpro/geektimes/post_images/562/667/321/5626673212a794dcaae4e3cabaf08a4e.jpg)
Не важно, как вы относитесь к Microsoft и ее начинаниям.
Операционная система Windows Phone 7, вышедшая около года назад, породила множество споров, дебатов, получила как массу комплиментов, так и шквал критики.
Не будем сейчас разбираться в доводах противоборствующих сторон, а просто взглянем на особенности системы глазами человека, заинтересованного в ее благополучном развитии, в преддверии выхода первого большого обновления Mango.
Много сказано о новых фичах Mango, много написано оптимистичных статей, но я хотел бы представить вам свой взгляд на систему, основываясь на собственном опыте ее использования в течении 6 месяцев.
Ну, а так как достоинства уже порядком освещены в прессе и маркетинговых материалах, то позвольте сосредоточиться исключительно на недостатках.
Пойдем по порядку.
Загрузка PNG и JPEG картинок в Android NDK
![](https://habrastorage.org/storage2/3a3/514/e91/3a3514e918f61542198d923febc1871b.jpg)
В этой статье речь пойдет о том, как в Android NDK загрузить PNG и JPEG картинки из файла или из памяти, а также немного полезного кода для скармливания этих картинок OpenGL.
10 причин, по которым Вы бросите свою работу в 2013 году
![image](https://habrastorage.org/getpro/megamozg/post_images/977/ce0/7aa/977ce07aa3c74dc568ccb15b4ef5a493.jpg)
Люди читают TechCrunch потому, что они хотят что-то создать, они не желают следовать приказам всю жизнь и хотят финансовой свободы. Давайте начистоту. Эти три пункта кажутся притягательными. Да благословит Вас Бог. Надеюсь, что когда Вы их обретете, Вы сможете сохранить их. Большинству людей (например, МНЕ), нужно просто немного покататься на американских горках, потому что мы тупые. Но некоторые люди умные.
Места распространения Android приложений
![](https://habrastorage.org/storage2/736/597/5ae/7365975ae4f73ea181cb6f331f8e0ec1.png)
В какой-то момент разработчику андроид приложений становится тесно в рамках одного магазина Google Play. И тогда он начинает задумываться о том, как бы еще донести до пользователей свои приложения. Оказывается, достаточно много вариантов это сделать.
Перечислю те, которые попробовал сам. Сразу оговорюсь, что приложения у меня бесплатны, с рекламой внутри. С публикацией платных приложений разберусь, когда появятся достойные.
Маленькая хитрость для отображения большого объёма данных в ListView
![](https://habrastorage.org/storage2/296/5b7/6f2/2965b76f26100db9ee0ff2f4fe5385af.jpg)
В этой статье я хочу поделиться недавно найденным решением, позволяющем отображать, а главное легко скролить большие объёмы данных в стандартном ListView.
Проблема
Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
- Activity содержит ListView
- ListView обращается к экземпляру CursorAdapter
- CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
- Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase
Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
Как накосячить с типографией: подборка работающих способов
![](https://habrastorage.org/storage2/69a/ab2/f03/69aab2f03000001a6464be2a7aac4ac2.jpg)
Тут наверняка есть косяки, просто мы ещё не открыли коробку
За три года нас с коллегами сотни раз било по голове ручкой от грабель при работе с типографиями. Мы списывали целые контейнеры криво напечатанной упаковки для игр, переделывали в авральном порядке тиражи, отправляли назад брак, который нам пытались выдать за нормальную печать, и натыкались на банальное кидалово.
Поначалу может показаться, что типографии — это специальные ловушки для тех, кто не умеет правильно формулировать задание, читать договор и проверять тираж. Позже, через несколько сорванных сроков и битых тиражей, приходит понимание каких-то основ.
Изменение размера виджета в Android 4.1 Jelly Bean
Функция удобная и полезная, но в официальной документации про это почти ничего нету, что довольно странно.
![](https://habrastorage.org/storage2/9df/887/a62/9df887a621520e4286f32795d5458075.png)
Так как я разрабатываю несколько виджетов, то решил добавить данный функционал.
Искусственный разум, интеллект, жизнь… Долго ли их еще ждать?
ObjectDB — система управления базами данных для Java приложений
Организация архитектуры взаимодействия Activity и Service
Сегодня я решил поведать Вам мой способ организации activity-service interaction в Android приложениях. Мотивирован топик тем, что достаточно часто можно встретить приложения, в которых, скажем, поход на сервер организовывается внутри активити в AsyncTask. При этом часто встречается верная мысль, что это надо делать в сервисах, но нигде в оф. документации нет ни слова об организации правильной архитектуры двустороннего взаимодействия между ними.
Поэтому я методом проб и ошибок пришел к архитектуре, лично для меня покрывающей все необходимые вопросы.
Об этом методе я буду рассказывать далее.
Советы по правильной настройке телевизора
Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
Об ИИ в интеллектуальных играх
Ниже представлен небольшой рассказ о компьютерных алгоритмах, используемых в интеллектуальных играх.
Android UI thread
Полупроводниковая электроника
![](https://habrastorage.org/storage1/8b300c55/67d6b632/29aee70d/ba873afe.png)
Полупроводниковая электроника существенно изменила мир. Многие вещи, которые долгое время не сходили со страниц произведений фантастов стали возможны. Чтобы знать, как работают и чем уникальны полупроводниковые приборы, необходимо понимание различных физических процессов, протекающих внутри.
В статье разобраны принципы работы основных полупроводниковых устройств. Описание функционирования изложено с позиции физики. Статья содержит вводное описание терминов, необходимых для понимания материала широкому кругу читателей.
![](https://habrastorage.org/storage1/cc4fa474/3fb2ea77/9176c2b4/68de0749.png)
Иллюстраций: 34, символов: 51 609.
Связь на Марсе
![](https://habrastorage.org/storage2/e47/cfc/fe5/e47cfcfe530f7a169d7c54f0de2cb465.png)
12 апреля отмечается международный день полёта человека в космос. Более полувека прошло с того момента, когда Человечество сделало первый шаг в его освоение. Череда блестящих технических и научных побед сделала нас ближе к звёздам. Жажда открытий тянет постигать новые таинственные миры. Марс, красная «звезда» на небосводе, с древних времён притягивал к себе внимание людей. Невообразимо похожий на Землю, но всё-таки чужой мир до сих пор не покидает сознание многих исследователей. Вероятно в скором времени мы можем стать свидетелями тому, как на Марсе станут появляться небольшие исследовательские колонии людей. Инженерам предстоит столкнуться с многими проблемами. На Хабре присутствует большое количество специалистов разных областей, каждый обладает широким кругозором и определёнными знаниями. Предлагаю воспользоваться коллективным разумом и в этой статье поразмышлять о том, как бы выглядела связь на Марсе, если бы там существовали колонии людей.
В данной статье-дискуссии рассматривается гипотетическая техническая задача организации связи на Марсе между исследовательскими поселениями людей. Для участия читателей разного уровня подготовки в статье приводятся краткие описания некоторых базовых технических терминов, основное внимание уделено принципам открытой оптической связи с помощью лазеров, а также некоторым вопросам проектирования стационарных спутников связи.
Иллюстраций: 21, символов: 45 081.
Python vs Ruby
![](https://habrastorage.org/storage2/62b/22b/6a8/62b22b6a88decc4929c2afc6da8fa990.png)
Android SDK: боремся с ограничением размера памяти для картинок
На многих устройствах с большим разрешением экрана приложение падает c ошибкой
AndroidRuntime: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Проблема в том, что память для Bitmap, а также для SurfaceView резервируется из общей кучи процесса. Лимит размера кучи — невелик, как правило немногим больше 10Мб. И задается этот лимит при сборке системы.
Попытки улучшить ситуацию урезанием формата пикселя с 32 бит до 16 не слишком помогают. Проблема просто вылезает позже — например, при открытии окна поверх SurfaceView (видимо, при этом создается еще один Bitmap размером с экран).
Ограничение размера графических буферов программы в 3-4 экрана — это до обидного мало! Попробуем исправить такую несправедливость.
Информация
- В рейтинге
- Не участвует
- Откуда
- Николаевская обл., Украина
- Дата рождения
- Зарегистрирован
- Активность