用鴻蒙開發AI應用(四)Helloworld

前言
上一篇,咱們把編譯和燒錄環境都搭建好了,這一篇咱們來初探一下鴻蒙OS的應用開發流程。
 #2020徵文-開發板# 用鴻蒙開發AI應用(四)Helloworldjava

 

環境準備
距咱們上次搭建環境有段時間了,先來更新一下開發工具和相關開源代碼。python

1. 更新 DevEco Device Tools
在 vscode 裏 擴展 -> 從VSIX安裝... -> 選擇DevEcoDeviceTool-1.0.1.vsixjson

#2020徵文-開發板# 用鴻蒙開發AI應用(四)Helloworld

 

2. 同步代碼倉app

cd ~/harmony/openharmony
repo sync -c

#2020徵文-開發板# 用鴻蒙開發AI應用(四)Helloworld
 

 

3. 下載開發工具ssh

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


下載應用打包和簽名工具。ide

 

第一個程序
1. 建立程序目錄
在源碼 applications\sample 目錄下,咱們新建一個 myApp 目錄放置新增代碼。工具

 

2. 建立主程序
新建主程序 my_first_app.c,簡單打印一個Hello World。post

#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應用,放入鴻蒙的子系統中。

 

6. 編譯
能夠經過ssh登陸虛擬機或直接在虛擬機上進行編譯,

#2020徵文-開發板# 用鴻蒙開發AI應用(四)Helloworld

python build.py my_hi3516dv300 -b debug

 

注意:必定要帶上 debug參數,這樣才能啓動後才能方便進入OHOS的命令行模式。

如遇到找不到java路徑的狀況,是因爲新開源代碼中加入了應用打包工具引發的,前文已下好工具包,


文章後續內容和相關附件能夠點擊下面的原文連接前往學習

原文連接:https://harmonyos.51cto.com/posts/2771#bkwz


想了解更多關於鴻蒙的內容,請訪問:

51CTO和華爲官方戰略合做共建的鴻蒙技術社區

https://harmonyos.51cto.com/#bkwz

相關文章
相關標籤/搜索