java — Gamedev sufferingБлог о разработке игр и серверных технологияхSun, 25 May 2025 20:13:38 +0000ru-RUhourly1https://wordpress.org/?v=5.1.19/wp-content/uploads/2019/03/cropped-Lain-32x32.pngjava — Gamedev suffering3232 Что нового готовит JDK 13?/2019/03/10/4274/whats-new-in-jdk-13//2019/03/10/4274/whats-new-in-jdk-13/#respondSun, 10 Mar 2019 00:56:13 +0000/?p=4274

Первые бета сборки JDK 13 уже доступны, можно пощупать. Релиз планируется в Сентябре 2019.

Из новинок: сырые строковые литералы (которые не вошли в JDK 12) и switch expressions.

Сырые строковые литералы

Сырые строковые литералы (JEP 326) — весьма приятная штука. В JDK 13 планируется как opt-in beta, а затем достичь production-qiality к JDK 14.

Продолжить чтение

]]>
/2019/03/10/4274/whats-new-in-jdk-13/feed/0
Будни юнитишника: сохраняйте глобальные ссылки на JNI объекты/2018/08/02/4223/budni-unitishnika-sokhranyajte-globalnye-ssylki-na-jni-obekty//2018/08/02/4223/budni-unitishnika-sokhranyajte-globalnye-ssylki-na-jni-obekty/#respondThu, 02 Aug 2018 14:43:28 +0000/?p=4223

Когда вы получили IntPtr на нативный Android объект, то GC может в какой-то момент почистить её (скорей всего, после выхода из локального скопа). Из-за того, что я одну ссылка не сохранил, дебажил код много часов, чтоб причину крашей найти.

Ещё хуже то, что стектрейс при краше никак не помогает.

Продолжить чтение

]]>
/2018/08/02/4223/budni-unitishnika-sokhranyajte-globalnye-ssylki-na-jni-obekty/feed/0
Android P: новые возможности для работы с текстом/2018/07/29/4208/whats-new-for-text-in-android-p//2018/07/29/4208/whats-new-for-text-in-android-p/#respondSat, 28 Jul 2018 23:59:01 +0000/?p=4208

Все мы знаем, насколько важен компонент TextView. Вероятно, из визуальных элементов он используется чаще всего. Вот почему Google неустанно улучшает этот компонент. В новой версии SDK нам приготовил много вкусностей.

PrecomputedText

Отображение текста — весьма нетривиальная задача, состоящая их множества нюансов: множественные шрифты, межстрочный интервал, расстояние между буквами, направление текста, переносы и т.д.

Продолжить чтение

]]>
/2018/07/29/4208/whats-new-for-text-in-android-p/feed/0
Unity3d: плагин для Android push notifications/2016/02/17/3893/unity3d-plagin-dlya-android-push-notifications//2016/02/17/3893/unity3d-plagin-dlya-android-push-notifications/#commentsWed, 17 Feb 2016 14:49:12 +0000/?p=3893

В Unity3d есть классы для работы с пушами под iOS. Но нет стандартных средств сделать тоже самое и под Android. Приходится писать свой плагин на Java, который затем можно закинуть в Plugins/Android и делать native вызовы к нему. Если вас интересует, как создать свой плагин (в частности, плагин для отправки локальных пушей), заходим под кат.

Продолжить чтение

]]>
/2016/02/17/3893/unity3d-plagin-dlya-android-push-notifications/feed/6
Быстрая установка Java на Linux/2015/07/20/3798/bystraya-ustanovka-java-na-linux//2015/07/20/3798/bystraya-ustanovka-java-na-linux/#respondMon, 20 Jul 2015 07:09:15 +0000/?p=3798По установке Java какие-то длинные статьи пишут, что-то ручками вводить предлагают. Проще один раз скриптик написать. Только иногда версию Java менять, если есть необходимость.

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

echo 'Install Java...' &&\
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz &&\
sudo mkdir /usr/lib/jvm &&\
sudo mkdir /usr/lib/jvm/jdk &&\
tar -xvf jdk-8u51-linux-x64.tar.gz -C /usr/lib/jvm/jdk &&\
ls /usr/lib/jvm/jdk/ &&\
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk/jdk1.8.0_51/bin/java 100 &&\
rm -rf /var/lib/apt/lists/* &&\
rm -rf /var/cache/oracle-jdk8-installer &&\

That’s all, folks.

Продолжить чтение

]]>
/2015/07/20/3798/bystraya-ustanovka-java-na-linux/feed/0
Android: решение проблемы с крашами при проверке лицензии на 5.0/2015/04/29/3729/android-reshenie-problemy-s-krashami-pri-proverke-licenzii-na-5-0//2015/04/29/3729/android-reshenie-problemy-s-krashami-pri-proverke-licenzii-na-5-0/#respondWed, 29 Apr 2015 13:35:44 +0000/?p=3729Представьте себе компанию, у которой есть какое-то SDK для абстрактного устройства. После обновления прошивки этих устройств до последней версии начинают крашится некоторые приложения. Эта компания знает о проблеме, но не обновляет sdk для исправления оной. Да, речь про Google. Уже не первый раз сталкиваюсь с такой проблемой, когда их сорсы допиливать приходится =/

В общем, в классе LicenseChecker необходимо чуток подправить метод checkAccess.

Продолжить чтение

]]>
/2015/04/29/3729/android-reshenie-problemy-s-krashami-pri-proverke-licenzii-na-5-0/feed/0
Android: добавить Dropdown меню на всю ширину Action Bar/2015/02/05/3708/android-dobavit-dropdown-menyu-na-vsyu-shirinu-action-bar//2015/02/05/3708/android-dobavit-dropdown-menyu-na-vsyu-shirinu-action-bar/#respondThu, 05 Feb 2015 13:04:08 +0000/?p=3708

Как же установить выпадающее меню на всю ширину Action Bar? Использовать меню с переопределённым слоем. И да, делать будем на базе элемента Spiner.

Ну, во-первых, можно, конечно, добавить напрямую в Action Bar элемент как-то так:

// установка типа навигации
getActionBar().setNavigationMode( ActionBar.NAVIGATION_MODE_LIST);
// листенер на клики по элементам меню
OnNavigationListener mOnNavigationListener = new OnNavigationListener() {

@Override
public boolean onNavigationItemSelected(int position, long itemId) {
return true;
}
};
// кастомный адаптер для Spinner'а
ArrayAdapter<CharSequence> barAdapter = new ArrayAdapter<CharSequence>(mContext, R.layout.projects_filter_item,
android.R.id.text1, mContext.getResources().getStringArray( R.array.projects_filteres));
barAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);
getActionBar().setListNavigationCallbacks(barAdapter, mOnNavigationListener);
// скрываем Title
getActionBar().setDisplayShowTitleEnabled(false);

Это хорошо, если у вас этот элемент на всех экранах/фрагментах нужен.

Продолжить чтение

]]>
/2015/02/05/3708/android-dobavit-dropdown-menyu-na-vsyu-shirinu-action-bar/feed/0
Android: новый экспериментальный инструмент Jack and Jill/2014/12/12/3697/android-novyj-eksperimentalnyj-instrument-jack-and-jill//2014/12/12/3697/android-novyj-eksperimentalnyj-instrument-jack-and-jill/#respondFri, 12 Dec 2014 11:36:53 +0000/?p=3697

Google работает над новым набором инструментов для разработки под Android, который позволит сократить время сборки проекта, а так же уменьшить зависимости между другими инструментами. Были представлены Jack (Java Android Compiler Kit) and Jill (Jack Intermediate Library Linker) — два новых инструмента.

Пока что можно пощупать лишь первую экспериментальную версию для тестирования ваших приложений.

Продолжить чтение

]]>
/2014/12/12/3697/android-novyj-eksperimentalnyj-instrument-jack-and-jill/feed/0
Что нового в Android 5.0 Lollipop/2014/10/21/3587/chto-novogo-v-android-5-0-lollipop//2014/10/21/3587/chto-novogo-v-android-5-0-lollipop/#commentsTue, 21 Oct 2014 12:01:55 +0000/?p=3587

Android 5.0 Lollipop — крупнейшее обновление Android на сегодняшний день, включающее новый визуальный стиль, повышение производительности, и многое другое. Новый концепт Android 5.0 Lollipop будет применяться для смартфонов и планшетов, а также будет основной особенностью Android Wear.

Навигационные кнопки на экране были упрощены до базовых треугольника, круга и квадрата.

Продолжить чтение

]]>
/2014/10/21/3587/chto-novogo-v-android-5-0-lollipop/feed/1
Android: Overscroll Listview/2014/04/29/3523/android-overscroll-listview//2014/04/29/3523/android-overscroll-listview/#respondTue, 29 Apr 2014 15:18:05 +0000/?p=3523Возникла необходимость overscroll’а у ListView. Сделать так, чтобы работало на 2.3+, оказалось не так-то просто =/

Плюс решил ещё сделать фичу с замедлением, когда вы будто не скролите список, а именно тяните.

Компонент работает на Android устройствах с 2.3+

.my_ul {list-style: disc; outside none !important;}.my_ul li{text-align: justify;}
  1. Установка.

Продолжить чтение

]]>
/2014/04/29/3523/android-overscroll-listview/feed/0