0
点赞
收藏
分享

微信扫一扫

Spring: 后端状态码如何与http状态码保持一致

1. 序言

就像开发Android要用Android Studio一样,Android Studio(简称AS)其实是基于IDEA+gradle插件+android插件开发而来。

鸿蒙系统,你可以认为它和android有点像,但又是超越android的存在,除了手机,还可以其他各种设备。。然后,我们需要一个对标Android Studio的开发工具。那就是DevEco Studio了。

Android Studio是一个IDE,基于gradle执行构建,应用层写Java/Kotlin,NDK层则可以用C/C++开发。

DevEco Studio也是一个IDE,基于gradle执行构建,应用层写Java/JS,NDK层可以用C/C++开发。

总之,NDK层,大家都是C/C++写代码,基于CMake构建。如果你是搞NDK开发的,应该知道这一点:把编译器和cmake的toolchain文件配置好,不用IDE就可以开发了。

Android NDK可以手动从官网下载;但是鸿蒙NDK似乎没法从官网直接下载,需要在DevEco Studio中下载。

1. 安装DevEco Studio以及NDK

官网说明文档:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/software_install-0000001053582415

要点:

  1. 注册华为账号,邮箱或手机号

  2. 下载DevEco Studio安装包

  3. File->Settings->Appearance & Behavior->System Settings->HarmonyOS SDK,勾选Native安装

安装时可以手动改Sdk安装位置,默认在C盘,我改为了D:\soft\Huawei\sdk,只要不是在DevEco Studio安装目录里面都可以。

  1. gradle代理

遇到的问题是,连接到huaweicloud的gradle相关的下载总是失败。后来发现,由于先前我配置过Android开发环境,配置过gradle代理,需要关掉gradle代理才能让DevEco顺畅下载。即:

C:\Users\zz\.gradle\gradle.properties文件,临时改名(回头用Android Studio时改回来)

2. OHOS NDK开发(命令行方式)

从鸿蒙的NDK相关的cmake toolchain里面可以发现,鸿蒙开放系统,被简称为了OHOS,估计是Open Harmony Operating System的缩写吧。

OHOS的NDK安装在sdk里面。例如我的:
ohos sdk目录:D:\soft\Huawei\sdk;
ohos ndk目录:D:\soft\Huawei\sdk\native\3.0.0.80;
ohos ndk的cmake toolchain文件:D:\soft\Huawei\sdk\native\3.0.0.80\build\cmake\ohos.toolchain.cmake

到这里,习惯于命令行方式执行交叉编译的工程师们都知道怎么做了。

作为样例,我贴一下我的OHOS NDK的hello world的相关文件:

cmake_minimum_required(VERSION 3.15)
 
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
project(hello)
 
add_library(hello STATIC
    ${CMAKE_SOURCE_DIR}/hello.h
    ${CMAKE_SOURCE_DIR}/hello.cpp
)

hello.cpp

#include "hello.h"
 
//#include <stdio>
#include <iostream>
 
void hello(const char* name)
{
    if (name==NULL) {
        //printf("Hello World\n");
        std::cout << "Hello World\n";
    } else {
        //printf("Hello %s\n", name);
        std::cout << "Hello " << name << "\n";
    }
}

hello.h

#ifndef HELLO_H
#define HELLO_H
 
void hello(const char* name);
 
#endif

build/ohos-arm64-v8a.bat

@echo off
 
set OHOS_NDK=D:/soft/Huawei/sdk/native/3.0.0.80
set TOOLCHAIN=%OHOS_NDK%/build/cmake/ohos.toolchain.cmake
 
REM echo "=== TOOLCHAIN is: $TOOLCHAIN"
 
set BUILD_DIR=ohos-arm64-v8a
if not exist %BUILD_DIR% md %BUILD_DIR%
cd %BUILD_DIR%
 
cmake -G Ninja ^
    -DCMAKE_TOOLCHAIN_FILE=%TOOLCHAIN% ^
    -DOHOS_ARCH="arm64-v8a" ^
    -DCMAKE_BUILD_TYPE=Debug ^
    ../..
 
ninja
 
cd ..

这里注意系统中应当先装好了cmake和ninja并且放在了系统PATH中。当然,你也可以用OHOS NDK里面装好的cmake。

在cmd中切换到build目录,执行ohos-arm64-v8a.bat,可以生成静态库文件libhello.a

3. OHOS NDK开发(IDE模式)

Android Studio中在创建项目的时候可以选择带Native的开发,会生成CMakeLists.txt和相应C++文件。DevEco Studio目前暂时支持的创建项目模板不多,还不能直接生成NDK相关文件。不过手动创建CMakeLists.txt和C++文件,应该还是比较容易的,对于做过NDK开发的人来说没啥问题。

除了CMake和C/C++代码,还需要修改模块的build.gradle文件,让gradle知道怎么调用cmake。官方文档:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/build_config-0000001052902431

贴一下我的entry模块的build.gradle,其中卡壳的地方是需要手动指定 CMAKE_TOOLCHAIN_FILE 路径。这一点需要DevEco Studio改进(或者是我没有正确配置?如果知道还请指出):

apply plugin: 'com.huawei.ohos.hap'
ohos {
    compileSdkVersion 3
    defaultConfig {
        compatibleSdkVersion 3
    }
    externalNativeBuild {
        path "src/main/cpp/CMakeLists.txt"   //CMake配置入口,提供CMake构建脚本的相对路径
        arguments "-DCMAKE_TOOLCHAIN_FILE=D:/soft/Huawei/sdk/native/3.0.0.80/build/cmake/ohos.toolchain.cmake"    //传递给CMake的可选编译参数
        abiFilters "arm64-v8a"     //用于设置本机的ABI编译环境
        cppFlags ""   //设置C++编译器的可选参数
    }
}
 
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testCompile'junit:junit:4.12'
}

如果没有指定 OHOS 的 CMAKE_TOOLCHAIN_FILE 文件,会报错说stdio.h找不到。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

举报

相关推荐

0 条评论