Интеграция с 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!