首页 文章 精选 留言 我的

精选列表

搜索[鸿蒙渲染],共9188篇文章
优秀的个人博客,低调大师

官方总结鸿蒙应用开发常见问题与实现方法典型案例

1自定义Dialog的布局 1.1 问题描述 如何实现自定义的Dialog? 1.2 实现方法 添加自定义Dialog代码 CommonDialog commonDialog = new CommonDialog(this); Component component = LayoutScatter.getInstance(getContext()) .parse(ResourceTable.Layout_dialog_custom_layout, null, true); commonDialog.setSize(800, 500); commonDialog.setContentCustomComponent(component); commonDialog.show(); 自定义Dialog的布局文件 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_content" ohos:padding="10vp" ohos:background_element="@graphic:grey" ohos:orientation="vertical"> <Text ohos:width="match_parent" ohos:height="match_content" ohos:text="Dialog标题" ohos:text_color="$color:Black" ohos:text_style="bold" ohos:text_size="40fp"/> <Text ohos:width="match_parent" ohos:height="match_parent" ohos:text="自定义Dialog内容" ohos:text_color="$color:Black" ohos:text_style="bold" ohos:weight="1" ohos:text_alignment="vertical_center" ohos:top_margin="30vp" ohos:bottom_margin="30vp" ohos:left_margin="10vp" ohos:right_margin="10vp" ohos:text_size="30fp"/> <DirectionalLayout ohos:height="match_content" ohos:width="match_parent" ohos:orientation="horizontal"> <Button ohos:width="match_parent" ohos:text="取消" ohos:text_size="30fp" ohos:padding="10vp" ohos:text_color="$color:White" ohos:weight="1" ohos:margin="10vp" ohos:background_element="$graphic:yellow" ohos:height="match_content"/> <Button ohos:width="match_parent" ohos:text="确定" ohos:text_size="30fp" ohos:weight="1" ohos:padding="10vp" ohos:text_color="$color:White" ohos:margin="10vp" ohos:background_element="$graphic:green" ohos:height="match_content"/> </DirectionalLayout> </DirectionalLayout> 1.3 实际效果 2 设置控件背景颜色 2.1 问题描述 在xml布局中设置控件ohos:background_element="$color:yellow"无效,目前背景颜色不支持以$color方式设置,只支持$graphic方式设置。 2.2 实现方法 方式1:xml中设置控件背景颜色使用$graphic <Button ohos:width="match_parent" ohos:text="控件按钮" ohos:text_size="30fp" ohos:padding="10vp" ohos:text_color="$color:White" ohos:background_element="$graphic:yellow" ohos:height="match_content"/> 资源文件graphic中yellow.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <solid ohos:color="#fff9a825"/> </shape> 方式2:纯代码设置控件颜色 DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); config.setMargins(30, 10, 10, 10); ShapeElement element = new ShapeElement(); element.setRgbColor(new RgbColor(255, 111, 0)); Text text = new Text(this); text.setText("xml添加背景"); text.setTextColor(new Color(0xFFFFFFFF)); text.setTextSize(40); text.setPadding(30, 20, 30, 20); text.setTextAlignment(TextAlignment.CENTER); text.setBackground(element); text.setLayoutConfig(config); 2.3 实际效果 3 ScrollView嵌套DirectionalLayout进行滚动 3.1 问题描述 ScrollView嵌套DirectionalLayout如何进行滚动? 3.2 实现方法 使用xml布局,需要将ScrollView的高度设置成“match_parent”,ScrollView子布局的高度设置成“match_content” <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_content" ohos:orientation="vertical"> ... </DirectionalLayout> </ScrollView> 使用代码添加,则需要给ScrollView和子布局设置LayoutConfig ComponentContainer.LayoutConfig scrollConfig = new ComponentContainer.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_PARENT); scrollView.setLayoutConfig(scrollConfig); DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); myLayout.setLayoutConfig(config); ... scrollView.addComponent(myLayout); super.setUIContent(scrollView); 3.3 实际效果 4 加载和显示网络图片 4.1 问题描述 如何实现加载和显示网络图片? 4.2 实现方法 在config.json中添加网络权限 { "module": { "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] } } 获取并设置网络图片 String urlImage = "https://www.harmonyos.com/resource/image/community/20201009-164134eSpace.jpg"; HttpURLConnection connection = null; try { URL url = new URL(urlImage); URLConnection urlConnection = url.openConnection(); if (urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; } if (connection != null) { connection.connect(); // 之后可进行url的其他操作 // 得到服务器返回过来的流对象 InputStream inputStream = urlConnection.getInputStream(); ImageSource imageSource = ImageSource.create(inputStream, new ImageSource.SourceOptions()); ImageSource.DecodingOptions decodingOptions = new ImageSource.DecodingOptions(); decodingOptions.desiredPixelFormat = PixelFormat.ARGB_8888; // 普通解码叠加旋转、缩放、裁剪 PixelMap pixelMap = imageSource.createPixelmap(decodingOptions); // 普通解码 getUITaskDispatcher().syncDispatch(() -> { Image image = new Image(HttpImageSlice.this); DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); config.setMargins(10, 10, 10, 10); image.setLayoutConfig(config); image.setPixelMap(pixelMap); myLayout.addComponent(image); pixelMap.release(); }); } } catch (Exception e) { e.printStackTrace(); } 4.3 实际效果 5 ListContainer列表组件的使用 5.1 问题描述 ListContainer列表组件如何使用? 5.2 实现方法 在xml文件中声明组件 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> <ListContainer ohos:id="$+id:list_container" ohos:orientation="vertical" ohos:width="match_parent" ohos:height="match_parent"/> </DirectionalLayout> 获取 ListContainer 组件,并设置itemProvider private void initView() { mListContainer = (ListContainer) findComponentById(ResourceTable.Id_list_container); ListItemProvider listItemProvider = new ListItemProvider(); mListContainer.setItemProvider(listItemProvider); } 自定义 ListItemProvider 继承 RecycleItemProvider class ListItemProvider extends RecycleItemProvider { @Override public int getCount() { return data.size(); } @Override public long getItemId(int i) { return 0; } @Override public Component getComponent(int position, Component convertView, ComponentContainer componentContainer) { Component component = LayoutScatter.getInstance(getContext()) .parse(ResourceTable.Layout_layout_container_item, null, false); if (!(component instanceof ComponentContainer)) { return null; } ComponentContainer rootLayout = (ComponentContainer) component; Text rightText = (Text) rootLayout.findComponentById(ResourceTable.Id_content); rightText.setText(data.get(position)); return component; } } 5.3 实际效果 6 读取资源文件 6.1 问题描述 如何读取应用的资源文件? 6.2 实现方法 对于图片文件,建议放到base/media目录下,Image组件可以直接设置,方法如下。 Image image = (Image) findComponentById(ResourceTable.Id_component_image); image.setPixelMap(ResourceTable.Media_huawei); 对于rawfile文件的读写,请参考下面的方法: ohos.global.resource.ResourceManager resourceManager = getApplicationContext().getResourceManager(); ohos.global.resource.RawFileEntry rawFileEntry = resourceManager.getRawFileEntry("resources/rawfile/test.png"); RawFileDescriptor rawFileDescriptor = rawFileEntry.openRawFileDescriptor(); // 或者 Resource resource = rawFileEntry.openRawFile(); 6.3 实际效果 7 JS方法获取位置信息 7.1 问题描述 使用JS开发时,如何获取位置信息? 7.2 实现方法 导入获取位置模块,并调用getLocation方法获取位置信息 import geolocation from '@system.geolocation'; export default { data: { longitude: 0.0, latitude: 0.0 }, onInit() { this.getLocation(); }, getLocation() { var temp = this; geolocation.getLocation({ success: function(data) { console.info("get location success, longitude: " + data.longitude +", latitude: " + data.latitude); temp.longitude = data.longitude temp.latitude = data.latitude; }, fail: function(data, code) { console.error("get location failed, code: " + code + ", data: " + data); }, complete: function() { console.info("get location complete"); } }); } } 在config.json中增加获取位置信息的权限 "reqPermissions": [ { "name": "ohos.permission.LOCATION" } ], 7.3 实际效果 8 禁用手表中系统的左右滑动 8.1 问题描述 开发一个应用支持左右滑动的操作,但是在模拟器中右滑时,默认跳转到系统页面,并退出应用,如何禁用系统右滑? 8.2 实现方法 覆盖MainAbility中的onTouchEvent方法,实现如下 @Override protected boolean onTouchEvent(TouchEvent event) { super.onTouchEvent(event); return true; } 8.3 实际效果 9 Text控件中文字换行 9.1 问题描述 Text控件中文字目前不支持\n换行,如何进行换行? 9.2 实现方法 可以使用系统自动换行,保持两行文字长度一致,实现如下 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> <Text ohos:id="$+id:text" ohos:width="150vp" ohos:height="match_content" ohos:multiple_lines="true" ohos:max_text_lines="2" ohos:auto_font_size="true" ohos:text="目前车辆尊享服务已过期, 车主续费后才可继续使用"/> </DirectionalLayout> 9.3 实际效果 10 在一个布局xml中引入其他xml布局文件 10.1 问题描述 定义了一个公共的XML布局文件,如何在其他XML布局文件中引用这个公共的XML布局文件? 10.2 实现方法 可以通过include标签引用其他的XML布局文件,示例如下: <?xml version="1.0" encoding="utf-8"?> <include ohos:id="$+id:include_layout" ohos:layout="$layout:include_layout" ohos:width="match_parent" ohos:height="match_content"/> </DirectionalLayout> 10.3 实际效果 NA 11 自定义Swtich控件的颜色 11.1 问题描述 如何自定义Swtich控件的开关两个状态下的按钮颜色? 11.2 实现方法 在资源文件graphic文件下创建bg_element.xml和fg_element.xml,bg_element.xml文件内容如下 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <corners ohos:radius="30"/> <solid ohos:color="#424242"/> </shape> fg_element.xml文件内容如下 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="oval"> <solid ohos:color="#D81B60"/> </shape> 代码实现自定义颜色: private void setupSwitch() { mSwitch = (Switch) findComponentById(ResourceTable.Id_switch_custom); Element elementBackground = ElementScatter.getInstance(this).parse(ResourceTable.Graphic_bg_element); mSwitch.setTrackElement(elementBackground); Element elementThumb = ElementScatter.getInstance(this).parse(ResourceTable.Graphic_fg_element); mSwitch.setThumbElement(elementThumb); mSwitch.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { Log.i("switch: " + mSwitch.isChecked()); } }); } 11.3 实际效果 12 视频播放 12.1 问题描述 如何播放本地视频文件和网络视频? 12.2 实现方法 创建布局文件video_player_layout.xml,内容如下 <?xml version="1.0" encoding="utf-8"?> <DependentLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:id="$+id:video_player_dl" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> </DependentLayout> 定义下面的变量,内容如下: private static Player mPlayer; private SurfaceProvider mSurfaceProvider; private DependentLayout mLayout; 实现SurfaceOps.Callback接口,代码如下: class VideoSurfaceCallback implements SurfaceOps.Callback { @Override public void surfaceCreated(SurfaceOps surfaceOps) { Log.i("surfaceCreated() called."); if (mSurfaceProvider.getSurfaceOps().isPresent()) { Surface surface = mSurfaceProvider.getSurfaceOps().get().getSurface(); playUrl(surface); } } @Override public void surfaceChanged(SurfaceOps surfaceOps, int i, int i1, int i2) { Log.i("surfaceChanged() called."); } @Override public void surfaceDestroyed(SurfaceOps surfaceOps) { Log.i("surfaceDestroyed() called."); } } 实现Player.IplayerCallback接口,代码如下: private class VideoPlayerCallback implements Player.IPlayerCallback { @Override public void onPrepared() { Log.i("onPrepared"); } @Override public void onMessage(int i, int i1) { Log.i("onMessage"); } @Override public void onError(int i, int i1) { Log.i("onError: i=" + i + ", i1=" + i1); } @Override public void onResolutionChanged(int i, int i1) { Log.i("onResolutionChanged"); } @Override public void onPlayBackComplete() { Log.i("onPlayBackComplete"); if (mPlayer != null) { mPlayer.stop(); mPlayer = null; } } @Override public void onRewindToComplete() { Log.i("onRewindToComplete"); } @Override public void onBufferingChange(int i) { Log.i("onBufferingChange"); } @Override public void onNewTimedMetaData(Player.MediaTimedMetaData mediaTimedMetaData) { Log.i("onNewTimedMetaData"); } @Override public void onMediaTimeIncontinuity(Player.MediaTimeInfo mediaTimeInfo) { Log.i("onMediaTimeIncontinuity"); } } 实现播放本地文件的方法,其中test.mp4文件放到资源文件目录下,内容如下: private void playLocalFile(Surface surface) { try { RawFileDescriptor filDescriptor = getResourceManager().getRawFileEntry("resources/rawfile/test.mp4").openRawFileDescriptor(); Source source = new Source(filDescriptor.getFileDescriptor(),filDescriptor.getStartPosition(),filDescriptor.getFileSize()); mPlayer.setSource(source); mPlayer.setVideoSurface(surface); mPlayer.setPlayerCallback(new VideoPlayerCallback()); mPlayer.prepare(); mSurfaceProvider.setTop(0); mPlayer.play(); } catch (Exception e) { Log.e("playUrl Exception:" + e.getMessage()); } } 实现播放网络URL的方法,其中video url为视频资源URL,内容如下: private void playUrl(Surface surface) { try { Source source = new Source("video url"); mPlayer.setSource(source); mPlayer.setVideoSurface(surface); mPlayer.setPlayerCallback(new VideoPlayerCallback()); mPlayer.prepare(); mSurfaceProvider.setTop(0); mPlayer.play(); } catch (Exception e) { Log.e("playUrl Exception:" + e.getMessage()); } } 播放网络视频,需要申请网络使用权限,在config.json中增加如下内容: "reqPermissions": [ { "name": "ohos.permission.INTERNET" }, ] 12.3 实际效果 原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0204410755673870341?fid=0101303901040230869 原作者:eva3w

优秀的个人博客,低调大师

鸿蒙开发快速入门之:Hi3861 开发板(2)环境搭建

这是Hi3861 开发板进行OpenHarmony 开发快速入门的第二篇,主要学习如何搭建环境。 硬件要求 Linux服务器 Windows工作台(主机电脑) Hi3861 WLAN模组 USB Type-C线(Windows工作台通过USB与Hi3861 WLAN模组连接) 各硬件连接关系如下图所示。 图 1硬件连线图 软件系统要求 表 1Hi3861 WLAN模組开发平台要求 硬件 软件 描述 备注 Linux编译服务器 操作系统 Ubuntu16.04及以上64位系统版本,Shell使用bash 开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。 Windows工作台 操作系统 Windows XP/Windows7/Windows10 Linux构建工具要求 Linux服务器通用环境配置需要的工具及其获取途径如下表所示。 表 2Linux服务器开发工具及获取途径 开发工具 用途 获取途径 交叉编译器gcc_riscv32 交叉编译工具 http://tools.harmonyos.com/mirrors/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz Python3.7+ 编译构建工具 https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz SCons3.0.4+ 编译构建工具 通过互联网获取 bash 命令处理器 通过互联网获取 build-essential 编译依赖的基础软件包 通过互联网获取 gn 产生ninja编译脚本 http://tools.harmonyos.com/mirrors/gn/1523/linux/gn.1523.tar ninja 执行ninja编译脚本 http://tools.harmonyos.com/mirrors/ninja/1.9.0/linux/ninja.1.9.0.tar Windows开发工具要求 表 3Windows工作台开发工具及获取途径 开发工具 用途 获取途径 Visual Studio Code 代码编辑工具。 https://code.visualstudio.com/ HUAWEI DevEco Device Tool IDE开发工具,支持WLAN模组的代码编写、远程编译、版本烧录、串口调试等功能。 说明: HUAWEI DevEco Device Tool是OpenHarmony面向智能设备开发者提供的一站式集成开发环境,支持OpenHarmony的组件按需定制,支持C/C++语言,以插件的形式部署在Visual Studio Code上。 https://device.harmonyos.com/cn/ide IPOP、PuTTY或其他超级终端(选其一) 远程连接Linux编译服务器,连接模组串口工具。 通过互联网获取(如:https://www.putty.org/) CH341SER.EXE USB转串口驱动。 http://www.wch.cn/search?q=ch340g&t=downloads 安装编译基础环境 连接Linux服务器 使用Windows远程登录Linux,以PUTTY工具为例: 打开PuTTY工具,输入Linux服务器IP地址,后点击“open”,打开连接。 图 2PuTTY界面示例图 弹框告警选择“是(Y)”。 弹出界面中输入账号并按回车键,继续输入密码并回车键。 图 3登录界面图 登录成功。 图 4登录成功界面 将Linux shell改为bash 查看shell是否为bash,在终端运行如下命令 ls -l /bin/sh 如果为显示为/bin/sh -> bash则为正常,否则请按以下方式修改: 方法一:在终端运行如下命令,然后选择 no。 sudo dpkg-reconfigure dash 方法二:先删除sh,再创建软链接。 rm -rf /bin/sh sudo ln -s /bin/bash /bin/sh 安装Python环境 打开Linux编译服务器终端。 输入命令“python3 --version”,查看Python版本号。需使用python3.7以上版本,否则请按以下步骤执行,以python3.8为例: 如果Ubuntu 版本为18,运行"sudo apt-get install python3.8" 如果Ubuntu 版本为16,请以下载包的方式安装python: python安装环境依赖(gcc, g++, make, zlib, libffi)请运行: "sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev " 获取python3.8.5安装包,将其放至linux服务器中,运行 : "tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && make && sudo make install" 确定Python-3.8.5安装好后,运行"which python3.8",将回显路径链接到"/usr/bin/python",示例: "cd /usr/bin && rm python && ln -s /usr/local/bin/python3.8 python && python --version" 安装Python包管理工具,运行“sudo apt-get install python3-setuptools python3-pip -y”命令。(需root/sudo权限安装),升级pip3运行"sudo pip3 install --upgrade pip"。 或按官网方式安装Python包管理工具:下载"curlhttps://bootstrap.pypa.io/get-pip.py-o get-pip.py"后,再执行"python get-pip.py" 安装python模块setuptools,运行"pip3 install setuptools" 运行“sudo pip3 install kconfiglib”命令,安装GUI menuconfig工具,建议安装Kconfiglib 13.2.0+版本。(需root/sudo权限安装)。 或者按以下方法安装Kconfiglib 13.2.0+。 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 下载路径:“https://pypi.org/project/kconfiglib#files” 运行“sudo pip3 install kconfiglib-xxx.whl”命令(例如:sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。 可能会遇到错误:"subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.",解决方法:"find / -name lsb_release",找到lsb_release位置并删除,如:"rm -rf /usr/bin/lsb_release" 安装pycryptodome。运行“sudo pip3 install pycryptodome”命令,或者按照以下方式安装: 说明: 安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。 安装ecdsa依赖six,请按文档要求,先安装six,再安装ecdsa。 下载.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl)。 下载路径:“https://pypi.org/project/pycryptodome/#files”。 运行“sudo pip3 install pycryptodome-xxx.whl”命令(例如:sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl),安装.whl文件(需root/sudo权限安装)。 安装完成后界面会提示“Successfully installed pycryptodome-3.7.3”。 安装six。运行"sudo pip3 install six --upgrade --ignore-installed six"或者按照以下方式安装: 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。 下载路径:“https://pypi.org/project/six/#files” 运行“sudo pip3 install six-xxx.whl”命令(例如:sudo pip3 install six-1.12.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。 安装完成后界面会提示“Successfully installed six-1.12.0”。 安装ecdsa。运行"sudo pip3 install ecdsa"或者按照以下方式安装: 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 下载路径:“https://pypi.org/project/ecdsa/#files” 运行“sudo pip3 install ecdsa-xxx.whl”命令(例如:sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。 安装完成后界面会提示“Successfully installed ecdsa-0.14.1”。 安装Scons 打开Linux编译服务器终端。 安装SCons安装包(需root/sudo权限安装)。 运行命令:“sudo apt-get install scons -y”。如果软件源中无法找到安装包,请按以下步骤处理: 下载源码包(下载路径:“https://scons.org/pages/download.html”,推荐SCons版本是3.0.4+)。 解压源码包到任意目录。 安装源码包:进入解压目录,运行命令“sudo python3 setup.py install”(需root/sudo权限安装),等待安装完毕。 输入命令“scons -v”,查看是否安装成功。如果安装成功,查询结果下图所示。 图 5SCons安装成功界面 安装编译工具环境 须知: 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc_riscv32编译工具。 (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc_riscv32编译工具。 安装gn、ninja、gcc_riscv32编译工具时,请确保编译工具的环境变量路径唯一。 安装gn 打开Linux编译服务器终端。 下载gn工具。 解压gn安装包至~/gn路径下:"tar -xvf gn.1523.tar -C ~/"。 设置环境变量:"vim ~/.bashrc", 新增:"export PATH=~/gn:$PATH"。 生效环境变量:"source ~/.bashrc"。 安装ninja 打开Linux编译服务器终端 下载ninja工具。 解压ninja安装包至~/ninja路径下:"tar -xvf ninja.1.9.0.tar -C ~/"。 设置环境变量:"vim ~/.bashrc", 新增:"export PATH=~/ninja:$PATH"。 生效环境变量:"source ~/.bashrc"。 安装gcc_riscv32(WLAN模组类编译工具链) 须知:Hi3861平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。 打开Linux编译服务器终端。 下载gcc_riscv32工具。 解压gcc_riscv32安装包至/opt/gcc_riscv32路径下:"tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/"。 设置环境变量:"vim ~/.bashrc",新增:"export PATH=~/gcc_riscv32/bin:$PATH"。 生效环境变量:"source ~/.bashrc"。 Shell命令行中输入“riscv32-unknown-elf-gcc -v”,如果能正确显示编译器版本号,表明编译器安装成功。

优秀的个人博客,低调大师

《HarmonyOS 第一课之首席专家讲鸿蒙》重磅上线! 首席专家解码鸿蒙底层设计原理,赋能开发者迈向技术新高度

******************************************************************************************************************** ******************************************************************************************************************** ******************************************************************************************************************** ********************************************************************************************************************

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册