предисловие
В предыдущей статье мы настроили среду компиляции и записи, а в этой статье рассмотрим процесс разработки приложений для ОС Hongmeng.
Подготовка окружающей среды
Прошло некоторое время с тех пор, как мы в последний раз создавали среду. Давайте сначала обновим инструменты разработки и соответствующий открытый исходный код.
1. Обновите инструменты устройства DevEco
существуетvscode
внутри扩展
-> 从VSIX安装...
-> выбратьDevEcoDeviceTool-1.0.1.vsix
2. Синхронизированное хранилище кода
cd ~/harmony/openharmony
repo sync -c
3. Загрузите инструменты разработки
mkdir -p ~/developtools && cd ~/developtools
URL_PREFIX=https://repo.huaweicloud.com/harmonyos/develop_tools/
wget $URL_PREFIX/hapsigntoolv2.jar
wget $URL_PREFIX/hmos_app_packing_tool.jar
Загрузите инструмент упаковки и подписи приложения.
первая программа
1. Создайте каталог программы
в исходном кодеapplications\sample
В каталоге создаем новыйmyApp
Каталог для размещения нового кода.
2. Создайте основную программу
Новая основная программаmy_first_app.c
, просто напечатайтеHello World
.
#include <stdio.h>
#include "los_sample.h"
int main(int argc, char **argv)
{
printf("\n************************************************\n");
printf("\n\t\tHello bluishfish!\n");
printf("\n************************************************\n\n");
LOS_Sample(g_num);
return 0;
}
stdio.h
для стандартной библиотеки,los_sample.h
Заголовочный файл для подпрограммы.
3. Создайте подпрограмму
Создание подпрограммlos_sample.c
, и просто распечатайте его.
#include <stdio.h>
int g_num = 81;
void LOS_Sample(int param)
{
printf("This is a sample: Param = %d\n", param);
}
существуетinclude
Создайте заголовочный файл в каталогеlos_sample.h
#ifndef _LOS_SAMPLE_H
#define _LOS_SAMPLE_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
extern int g_num;
extern void LOS_Sample(int param);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _LOS_SAMPLE_H */
4. Настройте файл BUILD.gn
СоздайтеBUILD.gn
, записать информацию о конфигурации
import("//build/lite/config/component/lite_component.gni")
static_library("my_app_lib") {
sources = [
"my_first_app.c",
"los_sample.c"
]
include_dirs = [
"include",
]
}
lite_component("camera_my_app") {
target_type = "executable"
features = [
":my_app_lib",
]
}
сначала импортироватьgni
компонент, исходный кодmy_first_app.c
иlos_sample.c
скомпилировано вmy_app_lib
файл библиотеки, указанный здесьinclude
путь к заголовочному файлу.
потомmy_app_lib
упаковано вlite_component
названныйcamera_my_app
компоненты.
5. Измените конфигурацию json
существуетbuild\lite\
Создать новый каталогmy_hi3516dv300.json
{
"ohos_version": "OpenHarmony 1.0",
"board": "hi3516dv300",
"kernel": "liteos_a",
"compiler": "clang",
"subsystem": [
{
"name": "applications",
"component": [
{ "name": "mycamera", "dir": "//applications/sample/camera/myApp:camera_my_app", "features":[] }
]
}
],
"vendor_adapter_dir": "//vendor/hisi/hi35xx/hi3516dv300/hi3516dv300_adapter",
"third_party_dir": "//third_party",
"ohos_product_type":"",
"ohos_manufacture":"",
"ohos_brand":"",
"ohos_market_name":"",
"ohos_product_series":"",
"ohos_product_model":"",
"ohos_software_model":"",
"ohos_hardware_model":"",
"ohos_hardware_profile":"",
"ohos_serial":"",
"ohos_bootloader_version":"",
"ohos_secure_patch_level":"",
"ohos_abi_list":""
}
будет просто генерироватьcamera_my_app
компоненты, упакованные какapplications
Приложение помещается в подсистему Hongmeng.
6. Скомпилируйте
в состоянии пройтиssh
Войдите в виртуальную машину или скомпилируйте прямо на виртуальной машине,
python build.py my_hi3516dv300 -b debug
Примечание: необходимо принести
debug
параметры, чтобы их можно было легко ввести после запускаOHOS
режим командной строки.
Если вы не можете найти егоjava
Ситуация с путями вызвана тем, что в новый открытый исходный код добавлен инструмент упаковки приложений, инструментарий был скачан в предыдущей статье.
Переустановите Java, чтобы исправить это.
sudo apt install openjdk-11-jre-headless
java -version
7. Система записи
После завершения записи в предыдущей статье вам нужно только выбратьuserfs.img
Файл можно сжечь.
Обратите внимание, что выходной каталог здесь
my_hi3516dv300
Нажмите, чтобы записать, а затем перезапустите макетную плату.
8. Беги
После завершения записи отлаживаем под последовательный порт, согласноusb
Назначенный номер последовательного порта для подключения
После запуска макетной платы нажмите Enter, чтобы войтиOHOS
Командная строка
./bin/camera_my_app
здесьcamera_my_app
Это имя компонента, которое мы определили ранее, и вы можете видеть вывод в обычном режиме Поздравляем, вы запустили первую программу на Hongmeng.
Обратите внимание на соответствие имен: в официальном примере исходный файл, файл библиотеки, имя компонента и имя приложения имеют одинаковые имена, что облегчит управление проектом. Однако новичкам разобраться не просто, я их здесь выделил, можно внимательно разобраться в процессе.
От исходного кода к библиотеке, от библиотеки к компоненту, от компонента к приложению и, наконец, кOHOS
Система выполняет.
Скачать
Соответствующие документы по этому вопросу можно найти на официальном аккаунте «Глубокое пробуждение», а фоновый ответ: «ohos04», чтобы получить ссылку для скачивания.
Следующее уведомление
Следующий,
Мы разработаем HAP-приложение с интерфейсом,
И ввести больше функций компонентов,
Быть в курсе...