前言本文基于DevEco Studio 5.0.5 Release DevEcoStudio和大多数的开发工具一样,都有提高代码编码效率的工具或者方法,不知道,在实际的开发当中,你是否投入了使用,本篇文章 ,我们重点结合实际的代码,看看DevEcoStudio中那些可以提高我们编码效率的快捷方式。 快速生成构造器我相信肯定有小伙伴,在写实体类的时候,构造函数,还在进行手写,其实,在DevEco Studio中,这种生成,一个快捷方式便可以搞定。 右键选择Generate:选择Constructor选择要携带的属性动态效果如下:快速生成get/set方法在DevEco Studio中除了构造函数可生成之外,我们还可以自动化生成当前类中的成员变量或对象属性对应的 本文标签:鸿蒙开发工具/DevEco Studio
2020年9月10日,华为CEO余承东在华为开发者大会上宣布,鸿蒙2.0(HarmonyOS 2.0)系统正式发布。 此次距离华为鸿蒙1.0(HarmonyOS 1.0)发布已经过去一年了。 从华为遭遇制裁开始,鸿蒙成为了很多国人的寄托。但第一次推出,就引发了争议: 没有完整的开发文档,架构设计说明,配套的IDE,没有可编译的DEMO......鸿蒙1.0一度被称为为“PPT操作系统”。 而一年后的鸿蒙2.0都有了:技术架构公开,文档代码全部开源。 外人不懂,其实我们做这一行应该知道: 走到这一步的华为,已经开始向巨头迈进。 作为半个内行人,我们最关注的当然还是鸿蒙系统的源码,已经有一些尝鲜的小伙伴跑过一波,按照步骤一步步跑下来,整个流程还是不难。
第一章 在IMX6ULL上体验鸿蒙系统 请先下载以下文件,里面含有烧写软件: https://gitee.com/weidongshan/openharmony_for_imx6ull/repository /archive/master.zip 鸿蒙内核Liteos-a的官方代码目前只支持海思的芯片,我作为首批开发者入驻华为一个多月,成功在100ASK_IMX6ULL上移植了Liteos-a。 这就表示所有驱动都安装好了,可以重启开发板,就可以参考后面章节体验鸿蒙了。 1.3 鸿蒙文件在哪 在“100ask_imx6ull烧写工具v4”目录下, ? 1.4 一键体验鸿蒙:下载到内存运行 1.4.1 一键启动 把开发板设置为USB启动,接好2条USB线,装好驱动程序后,运行烧写工具,点击下图所示按钮,观察串口信息,可以看到板子启动进入鸿蒙系统了: 最后,设置为EMMC启动,重新上电后就可以自动进入鸿蒙系统。
本文介绍在鸿蒙应用中TextField组件的基本用法。 增加TextField组件 如下代码中25行~32行所示,在布局中增加TextField组件。 <? height="0vp" ohos:weight="5" ohos:width="match_parent" /> </DirectionalLayout> 代码中组件 id被指定为text_field,会在下面的响应代码中用到。 获取TextField组件并取得输入文字信息 如下面代码中20行和22行所示,在按钮组件的响应代码中获取TextField组件后,获取输入的文字信息并弹窗显示。
我是坚果,这是我的公众号“坚果前端”,觉得不错的话,关注一下吧,如果你迷惘,不妨看看码农的轨迹 前言: 最近在学习鸿蒙开发,就模仿boss直聘app的一些经典页面写了一个鸿蒙的开源demo 希望能帮助到各位同学学习 vertical_center|horizontal_center" ohos:text="公司" ohos:text_color="#6B6B6B vertical_center|horizontal_center" ohos:text="消息" ohos:text_color="#6B6B6B vertical_center|horizontal_center" ohos:text="我的" ohos:text_color="#6B6B6B boss直聘客户端就讲完了 其他页面的实现都差别不大大家可以去下载完整代码查阅 最后总结 这次开发这个鸿蒙模仿boss直聘客户端 demo给我的感觉 鸿蒙跟现在安卓iOS比起来 差距还是有 我这边是用的
介绍本示例将介绍如何使用装饰器和插件,自动生成动态路由表,并通过动态路由跳转到模块中的页面,以及如何使用动态import的方式加载模块。 使用说明自定义装饰器添加装饰器和插件配置文件,编译时自动生成动态路由表配置动态路由,通过WrapBuilder接口,动态创建页面并跳转。 /common/routermodule" }以上是需要在主模块中添加的配置,如果已经添加过相关代码,则可以直接略过,按照下面的步骤在子模块中添加相关即可自动生成动态路由相关文件。 // 自定义装饰器,用于自动生成动态路由代码及页面的跳转。 1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript
前言本文基于Api13, DevEco Studio 5.0.5 ReleaseCodeGenie是DevEcoStudio中一个自带的AI工具,在之前的文章中,也写过两篇文章,主要针对代码生成、知识问答和编译报错智能分析做了概述 确认卡片的相关信息:它会自动的把卡片相关文件生成到我们的项目中,包含UI代码,资源,相关配置等,一切都是自动化配置。 运行之后,我们自动生成的卡片就完成了,效果如下:相关总结上面我们只概述了一种代码保存,那就是自动保存卡片工程,它会把所有的代码,资源以及配置进行保存,当然了,它还有手动的保存的方式,那就是右侧的三个选项 :点击第一个代码,在卡片的下面就会把当前的卡片代码进行展示,我们可以进行查看和复制使用。 本文标签:鸿蒙开发工具/CodeGenie
:降低到LLVM和代码生成 在上一章中,我们介绍了方言转换框架,并将很多toy操作部分降为仿射循环嵌套进行优化。 在本章中,我们将最终降低到LLVM进行代码生成。 降低到LLVM 对于这一下降,我们将再次使用方言转换框架来执行繁琐的工作。但是,这次我们将执行到LLVM方言的完全转换。 CodeGen:摆脱MLIR 此时,我们正处于代码生成的节骨眼。我们可以用LLVM方言生成代码,所以现在我们只需要导出到LLVM IR并设置一个JIT来运行它。 设置JIT的完整代码清单可以在ch6/toyc.cpp中的runJit()函数中找到: int runJit(mlir::ModuleOp module) { // Initialize LLVM 本节使用的示例代码可以在test/Examples/Toy/ch6/llvm-lowering.mlir中找到。 到目前为止,我们已经使用了原始数据类型。
代码注释生成: ChatGPT可以帮助生成代码注释。当你完成一个函数的编写后,可以请求ChatGPT为该函数生成文档字符串,描述函数的功能、参数和返回值。 第二部分:代码示例 以下是一些基本代码生成的示例,包括Hello World程序、数据结构操作代码,以及特定语言的代码生成,如Python中的机器学习代码和JavaScript中的前端交互代码。 结语 总结:ChatGPT在编程和代码生成中的作用 ChatGPT作为一种先进的人工智能技术,已经在编程和代码生成领域展现出巨大的潜力和价值。 希望这篇博客能够为您在学习《6.ChatGPT在编程和代码生成中的作用》中提供一些启发和指导。如果你有任何问题或需要进一步的建议,欢迎在评论区留言交流。让我们一起探索IT世界的无限可能! ChatGPT在编程和代码生成中的作用【6/10】
第二章 给IMX6ULL编译Liteos-a 请先下载以下文件,里面含有补丁文件: https://gitee.com/weidongshan/openharmony_for_imx6ull/repository 1.2 使用补丁文件修改代码 假设在/home/book/openharmony目录下是鸿蒙的源码,补丁文件hmos_v1.0_imx6ull.patch放在/home/book/openharmony_for_imx6ull imx6ull.patch 注意:鸿蒙的内核在不断更新,这个补丁是针对“OpenHarmony-1.0”版本的。 所以前面使用repo下载代码时必须指定“-b OpenHarmony-1.0”,参考《1.2.3 下载源码》。 1.3 编译 我的修改还不完善,还无法在根目录下编译。 请参考《第3篇 体验鸿蒙内核Liteos-a》。
再举一个常见的场景,一个函数,你写了很多的代码,想要把一部分代码,快速的抽成一个单独的函数,用于简化当前的代码逻辑,如何快速的实现?可能很多老铁会第一时间想到,把代码复制出来呗,这有什么难的? 有一点需要说明,如果你是私有的属性,也就是组件本身自己的属性,一般它会直接生成@Extend修饰的函数,如果是通用属性,可提取为@Styles或@Extend装饰的函数。 如下所示,我选中的是通用的属性,就可以看到给出要选择的生成选项:提取新方法/函数(Method)在前言中,我们简单列举了一个例子,快速实现了组件的属性函数生成,这种提取方式,就是方法提取,除此之外,在实际的开发中 你可以选择全局或者当前页面中:生成的代码如下:@Entry@Componentstruct Index { build() { Column() { this.newLocalBuilder 本文标签:鸿蒙开发工具/DevEco Studio
鸿蒙应用开发的sdk 现在已经来到了5.0.2(api:14).离我上次写鸿蒙应用(那时候还是9、10)已经过去一段时间(不到一年),版本已经大跃进了,里面的大部分api都已经陌生了。 作品海报生成 (涉及画布渲染生成以及图片存储) 4. 作品AI朗读( 涉及语言播放,AI朗读服务) 等等。要真细想,其实预想的一些功能可以充分利用鸿蒙的很酷的特性。 话不多说,我就开始先敲第一个功能:海报生成。海报生成的功能,根据查阅一番文档下来,需要用以下功能实现,首先是canvas画布,类似html的canvas,这是一个UI组件。 代码中的saveToFile函数是我自己封装。下面会介绍函数的具体代码。最后一步就是跟文件权限有关的操作。 最后我想说,上面的例子只是简单借用画布组件生成数据保存到本地的逻辑。
1.实验目的: 了解曲线的生成原理,掌握几种常见的曲线生成算法,利用VC+OpenGL实现Bezier曲线生成算法。 2.实验内容: (1) 结合示范代码了解曲线生成原理与算法实现,尤其是Bezier曲线; (2) 调试、编译、修改示范程序。 3.实验原理: Bezier曲线是通过一组多边形折线的顶点来定义的。 4.实验代码: #include <GL/glut.h> #include <stdio.h> #include <stdlib.h> #include <vector> using namespace void CalcBZPoints() { float a0,a1,a2,a3,b0,b1,b2,b3; a0=pt[0].x; a1=-3*pt[0].x+3*pt[1].x; a2=3*pt[0].x-6* pt[2].x; a3=-pt[0].x+3*pt[1].x-3*pt[2].x+pt[3].x; b0=pt[0].y; b1=-3*pt[0].y+3*pt[1].y; b2=3*pt[0].y-6*
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; public class GeneratorClass { public static void main(String[] args) { // 代码生成器 gc.setOutputDir(path); gc.setIdType(IdType.AUTO);//设置主键策略 gc.setDateType(DateType.ONLY_DATE);//生成 ,"tb_item_param","tb_item_param_item","tb_order","tb_order_item","tb_order_shipping","tb_user"); // 生成的表 ,多个表继续传递即可,String类型的可变参数 //将策略配置对象集成到代码生成器中 mpg.setGlobalConfig(gc); mpg.setDataSource (dsc); mpg.setPackageInfo(pc); mpg.setStrategy(stConfig); //执行生成 mpg.execute
背景介绍: 工作中经常用到单表的增删该查包括分页,定义实体对象和写一些单表dao,代码单一,重复性工作多。毕竟作为开发人员大多数时间应该关注业务,代码自动生成就会节省很多重复性工作。 代码生成工具 根据项目需要定义项目包名和数据库连接信息: package com.wyh.generate.ormcodegenerate; import com.google.common.base.CaseFormat java.text.SimpleDateFormat; import java.util.*; import static com.wyh.generate.ormcodegenerate.ProjectConstant.*; /** * 代码生成器 { genCode("event"); //genCode("输入表名","输入自定义Model名称"); } /** * 通过数据表名称生成代码 tableNames) { genCode(tableName, null); } } /** * 通过数据表名称,和自定义的 Model 名称生成代码
代码生成 makefile在make all之前会先generated_files去进行代码生成,所以首先要理解代码生成的原理,然后才可以很好的知道 这个过程都干啥了. all: generated_files 写过代码的都知道很多时候有大量结构重复的代码需要去写,劳心劳力还没什么技术含量,所以为了解决这个问题代码生成它来了。 代码生成的场景有很多如: protobuf 根据一个协议字段配置文件生成客户端和服务端的.go代码 IDE中的自动测试用例和接口实现函数代码生成 一些web框架自动生成RESTFUL接口代码 operator 代码生成原理 所以我们的目的就是根据源代码再生成一些源代码,那问题就分成三步走: 解析我们写的源码,提取我们所需要的内容,如包名,结构体名,等 渲染模板文件 生成源码文件 下面用个简单的例子来帮助理解这一过程 Name: "main" 5 . } 6 .
在很多开源的后台管理系统当中都有代码生成的工具,帮助开发者完成通用代码的生成,比如生成 Controller、Service、Dao 和 XML 文件等,能够帮助开发者生成通用的CRUD 其实在开发框架中也有一些简单的代码生成的工具,比如接下来要介绍的 mybatis-plus 提供的代码生成。 使用 SpringBoot 来测试一下 Mybatis-Plus 代码生成的功能。 SpringBoot 项目中使用代码生成器需要引入一些依赖,依赖如下: <! 引入上面的依赖以后,下面的代码其实进行简单的修改就可以完成自己的代码生成,非常的方便。 代码简单的易懂,就不做过多说明。 生成结果 运行上面的代码,来看一下生成的内容,如下图: ?
通过ssh登录开发板 2.3 `体验鸿蒙Liteos-A` 1. 执行shell命令 2. 执行数码相框GUI程序 3. 退出程序 4. 测试LCD 5. 在LCD显示矢量字体 3. 模拟LCD显示功能 模拟led灯、按键 模拟at24cxx i2c存储芯片,直接可以通过用户态操作看到效果 模拟触摸屏(单点触摸) 后续会逐渐增加更多的模拟硬件模块 1.2 已经移植的系统 Linux 鸿蒙 button_drv.ko [root@qemu_imx6ul:~/button_driver_qemu]# insmod board_100ask_qemu_imx6ull.ko [root@qemu_imx6ul 2.3 体验鸿蒙Liteos-A 双击运行env.bat, 在里面执行harmony_liteos.bat即可启动、进入Liteos-A。 1. /bin/digitpic”,不能用绝对路径“/bin/digitpic” 注意:这个GUI程序是我们自己写得,很丑,与鸿蒙无关。 3.
1.环境搭建参考文章鸿蒙Flutter实战:01-搭建开发环境搭建好开发环境。IDE 安装好 DevEco 和 VsCode/Android Studio。 方案二适应DecEco运行鸿蒙项目,注意需要打开的是ohos鸿蒙目录代码,待IDE分析结束后,点击运行。 当app在鸿蒙设备上启动成功后,立即在 Vscode 中调出 Command Pallet,找到 Flutter Attach ,将 Flutter 调试器连接至宿主机然后就是增加断点,使用hot reload 重新加载 Flutter,调试项目代码。 调试 Webview参考文章 鸿蒙Flutter实战:04-如何使用DevTools调试Webview进行 Webview 调试。
前言本文代码案例基于Api13。 ,使代码更易维护和扩展。 提到AOP,大家最常见的就是日志的记录,AOP可以在不修改原有业务代码的情况下,通过代码插桩的方式,为应用程序添加日志记录功能;当然了,除了日志记录功能,相信大家肯定见过很多的三方的统计,比如友盟,神策等等 AOP,说的简单直白一点,就是,它可以实现对原有的对象方法,在执行前后,进行插桩,同样,在鸿蒙的开发中,我们也可以直接对其方法进行替换操作,如何实现,在Api 11之后使用Aspect对象即可。 相关总结正确的运用AOP,可以提升代码的模块化、复用性、可维护性和灵活性,同时降低了耦合度,使系统更易于扩展和维护。