Интеграция с ProGuard, поддержка системного буфера обмена, новые оптимизации

Сегодня мы рады представить CheerpJ 1.2, последнее крупное обновление нашего компилятора Java в JavaScript.

CheerpJ 1.2 можно скачать здесь, а основную документацию — здесь.

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

Попробовать CheerpJ 1.2 легко! Загрузите новую версию компилятора здесь и следуйте нашим инструкциям, чтобы начать. Если вы использовали предыдущую версию CheerpJ, обязательно перестройте свой проект и измените загрузчик среды выполнения CheerpJ на:

<script src="https://cjrtnc.leaningtech.com/1.2/loader.js"></script>

Интеграция с ProGuard для оптимизации запуска и размера

ProGuard — это стандартный инструмент с открытым исходным кодом для оптимизации и обфускации байт-кода Java. CheerpJ 1.2 представляет удобный способ интеграции ProGuard в вашу цепочку инструментов Java-to-JavaScript, чтобы оптимизировать и уменьшить размер загрузки вашего приложения.

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

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

Чтобы обеспечить более точную трассировку классов, используемых приложением, в том числе вызываемых посредством отражения, в CheerpJ 1.2 введена специальная опция инициализации:

cheerpjInit({enableProguardTrace:true})

Приложение CheerpJ можно инициализировать с помощью этой опции и тщательно протестировать, чтобы создать полный список классов. После этого этапа новый

cjGetProguardConfiguration()

можно использовать для создания файла конфигурации (cheerpj.pro), который можно использовать с ProGuard.

Для получения более подробной информации, включая пошаговое руководство по оптимизации приложения CheerpJ с помощью ProGuard, вы можете ознакомиться с нашей Документацией.

Интеграция с системным буфером обмена

По умолчанию CheerpJ предоставляет внутренний буфер обмена (локальный для преобразованного Java-приложения), доступ к которому можно получить с помощью обычных сочетаний клавиш Ctrl+C/Ctrl+V (или Cmd+C/Cmd+V). Этот буфер обмена обычно не интегрируется с системой, поэтому копирование и вставка из/в другие приложения или вкладки браузера не разрешены.

CheerpJ 1.2 представляет новую системную интеграцию, которую можно включить дополнительно, что позволяет приложению CheerpJ напрямую взаимодействовать с системным буфером обмена.

Чтобы включить эту интеграцию, требуется специальная опция инициализации:

cheerpjInit({clipboardMode:”system”});

Браузеры налагают серьезные ограничения на доступ к системному буферу обмена. На практике он обычно доступен при использовании ярлыков Ctrl+C и Ctrl+V (Cmd+C и Cmd+V в macOS).

Из-за этих ограничений CheerpJ предоставляет следующий UX для доступа к системному буферу обмена:

  • Ctrl+C (Cmd+C в macOS): пользователь должен ввести ярлык дважды, чтобы предоставить CheerpJ доступ к системному буферу обмена и выполнить копирование (после первого ввода Ctrl+C CheerpJ заблокирует выполнение во время ожидания для второго Ctrl+C).
  • Ctrl+V (Cmd+V в macOS): этот ярлык ведет себя нормально, без каких-либо отличий от собственного исполнения.
  • Копировать/Вставить на основе меню: Ctrl+C/Ctrl+V необходимы для доступа к буферу обмена. CheerpJ заблокирует выполнение, ожидая соответствующего ярлыка.

В будущей версии CheerpJ мы добавим дополнительный режим буфера обмена, чтобы воспользоваться новым API-интерфейсом браузера на основе разрешений для доступа к буферу обмена, который в настоящее время стандартизируется. Этот будущий режим будет обеспечивать нативный пользовательский интерфейс во всех случаях.

Другие функции

В дополнение к интеграции с ProGuard и интеграции с системным буфером обмена в CheerpJ 1.2 представлены дальнейшие оптимизации и несколько исправлений:

  • Расширенная поддержка изменения размера окна
  • Добавлена ​​поддержка запечатанных пакетов
  • Дальнейшая оптимизация вызовов JNI
  • Улучшена очистка потоков
  • Улучшенная поддержка отражения
  • Улучшенная сетевая поддержка HTTP(s) Java (на основе XHR)

Скачать

Cheerp 1.2 доступен для скачивания для Linux, Windows и macOS. Чтобы начать работу с CheerpJ, посетите главную страницу документации.

Свяжитесь

Для получения дополнительной информации о CheerpJ посетите наш веб-сайт по адресу https://leaningtech.com/cheerpj/. Следите за нами в твиттере (@leaningtech), посетите наш веб-сайт или напишите нам на Gitter!