鸿蒙HarmonyOS 与 Android 的NDK有什么不一样?(2),2024年最新2024年最新HarmonyOS鸿蒙大厂面试笔试题分享
arguments “-DCMAKE_TOOLCHAIN_FILE=D:/soft/Huawei/sdk/native/3.0.0.80/build/cmake/ohos.toolchain.cmake”//传递给CMake的可选编译参数。遇到的问题是,连接到huaweicloud的gradle相关的下载总是失败。从鸿蒙的NDK相关的cmake toolchain里面可以发现,鸿蒙开放系统,被简称
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
安装时可以手动改Sdk安装位置,默认在C盘,我改为了D:\soft\Huawei\sdk
,只要不是在DevEco Studio安装目录里面都可以。
- 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
#include
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
- 基本概念
- 构建第一个ArkTS应用
- ……
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
术提升。**
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-ka5QGQZB-1713646462729)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)