Урок 8. Для разработчиков: DevEco Studio, ArkTS и пакеты HAP
Для HarmonyOS 2.0–4.x и EMUI программы пишут как для обычного Android: на Kotlin или Java, в Android Studio, с отладкой через ADB — об этом темы Kotlin и урок Для разработчиков в теме Android. Урок ниже — о HarmonyOS 5.0 и новее, где всё своё: язык, среда разработки, формат пакетов и инструмент отладки.
Из чего состоит разработка
- ArkTS — основной язык. Он построен на TypeScript: синтаксис тот же, но типы обязательны и строже проверяются при сборке. Код на TypeScript и JavaScript можно использовать повторно.
- ArkUI — библиотека интерфейса: экран описывается декларативно, из компонентов вроде
Text,Button,RowиColumn. - DevEco Studio — бесплатная среда разработки Huawei на основе IntelliJ IDEA. В неё уже входят HarmonyOS SDK, Node.js, сборщик Hvigor, менеджер пакетов OHPM и эмулятор.
- hdc — консольный инструмент для связи с устройством, аналог
adbв Android.
Кроме ArkTS, Huawei с 2024 года развивает свой язык Cangjie (по-китайски 仓颉), тоже для приложений HarmonyOS. Для начала достаточно ArkTS.
Что нужно
- компьютер с Windows 10 или 11 (64 бит) либо macOS — для Windows документация советует 16 ГБ памяти, для macOS — от 8 ГБ, и около 100 ГБ на диске;
- DevEco Studio — скачивается в центре загрузок Huawei после входа в HUAWEI ID;
- HUAWEI ID для подписи приложений; чтобы выкладывать программы в AppGallery — регистрация разработчика в AppGallery Connect;
- устройство с HarmonyOS 5.0 и новее или эмулятор.
Первый проект
- В DevEco Studio выберите Create Project (или File → New → Create Project).
- Выберите Application и шаблон Empty Ability, нажмите Next.
- В поле Compatible SDK укажите самую раннюю версию системы, на которой должна работать программа. Например,
5.0.0(12)— это HarmonyOS 5.0, в скобках номер её программного интерфейса (API 12). - Нажмите Finish и дождитесь, пока среда создаст проект.
Главное в проекте:
AppScope/app.json5— настройки приложения целиком: имя пакета, версия;entry/src/main/ets/pages/— экраны на ArkTS;entry/src/main/module.json5— настройки модуля: страницы, разрешения, типы устройств;build-profile.json5— настройки сборки и подписи.
Шаблон создаёт экран Index.ets с надписью по центру:
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}@Entry отмечает главный компонент страницы, @Component — компонент интерфейса, а @State — состояние: когда значение message меняется, ArkUI сам перерисовывает текст. Функция build() описывает, что на экране: строка Row во всю высоту, в ней столбец Column во всю ширину, в столбце — текст. Посмотреть результат без устройства можно в окне Previewer.
Запуск на устройстве
Режим разработчика. По документации Huawei: проверьте, есть ли «Для разработчиков» в «Настройки → Система». Если нет — откройте «Настройки», нажмите имя устройства и семь раз подряд нажмите «Версия ПО», подтвердите включение и введите PIN-код. Устройство перезагрузится.
Отладка. В «Настройки → Система → Для разработчиков» включите «Отладка по USB», подключите устройство кабелем и разрешите отладку в окне на экране. Можно и без кабеля: «Беспроводная отладка» показывает адрес и порт, а компьютер должен быть в той же сети Wi‑Fi.
Подпись. Без подписи приложение на устройство не встанет. Откройте File → Project Structure → Project → Signing Configs, войдите в HUAWEI ID и включите автоматическую подпись. Документация предупреждает: часы компьютера должны идти точно — их сверяют с пекинским временем (UTC+8), и если они спешат или отстают, подпись не получится.
Запуск. Выберите устройство в списке вверху и нажмите Run (Shift+F10 в Windows, Control+R в macOS). DevEco Studio соберёт пакет .hap, установит его и откроет приложение.
Команда hdc
hdc лежит в папке SDK внутри DevEco Studio (sdk/default/openharmony/toolchains) и работает в Windows, Linux и macOS. Основные команды:
$ hdc list targets
$ hdc install entry-default-signed.hap
$ hdc uninstall com.example.myapplication
$ hdc shell
$ hdc hiloglist targets— подключённые устройства;install— установить пакет.hap(или набор.app);-r— переустановить поверх;uninstall— удалить приложение по имени пакета;shell— командная строка устройства;hilog— журнал устройства;file sendиfile recv— передать файл на устройство и забрать с него.
Для беспроводной отладки устройство подключают командой hdc tconn с адресом и портом, которые показывает «Беспроводная отладка», например hdc tconn 192.168.0.1:8888.
Пакеты и публикация
Модуль приложения собирается в пакет HAP (.hap). Общий код выносят в библиотеки: HAR (.har, подключается при сборке) и HSP (.hsp, общая во время работы). Для AppGallery все модули упаковываются в App Pack (.app) и загружаются в AppGallery Connect — кабинет разработчика. Магазин раздаёт устройствам нужные им .hap.
Android-приложение на HarmonyOS 5.0 и новее автоматически не переносится: интерфейс и обращения к системе пишутся заново на ArkTS. Удобно начать с экрана, который нужнее всего, и посмотреть, какие возможности системы для него есть в SDK.
Коротко
- Для HarmonyOS 2.0–4.x и EMUI — разработка Android; для 5.0 и новее — ArkTS, ArkUI и DevEco Studio.
- ArkTS построен на TypeScript, но со строгими типами.
- Режим разработчика: имя устройства в «Настройках» → семь нажатий на «Версия ПО».
- Приложение подписывается в Signing Configs; часы компьютера должны идти точно.
hdc— аналогadb:list targets,install,uninstall,shell,hilog.- Модуль →
.hap; для AppGallery —.appчерез AppGallery Connect.