目录一、概览二、跨平台代码编辑器三、GN入门四、示范工程五、关键细节六、结语[编译器选项]其中前两部分是前缀部分,原本没有跨平台构建经验和知识的同学可以借助来帮助理解,后四部分则是讲述GN工程的基本结构、如何搭建一个GN构建的工程、以及关键的一些GN知识一、概览如何开始这个话题是我比较在意的,因为对于部分人而言,真正从思维和理解上切入这篇文章真正要阐述的点是有困难的。这在于跨平台编译和开发这块,如果没有...
2022-03-04 14:00:41 3.7w浏览 4点赞 0回复 3收藏
1.节流从滚动条监听的例子说起:监听浏览器滚动事件,返回当前滚条与顶部的距离functionshowTop(){varscrollTopdocument.body.scrollTopdocument.documentElement.scrollTop;console.log("滚动条位置:"+scrollTop);}window.onscrollshowTop;点击选中一个页面的滚动条,然后点击一次键盘的【向下方向键】,会发现函数执行了89次!然而实际上我们并不需要如此高频的反馈,毕竟浏览器的性能是有限的,不应该浪费在这里,所以接着...
2021-03-26 10:03:04 8622浏览 0点赞 0回复 0收藏
引子从修真故事说起上文大概介绍了垃圾回收的机制和标记清除法的核心思路,接下来准备深入介绍下v8引擎里的垃圾回收算法。既然是算法类的介绍,那自然是比较枯燥的,如果想完全弄懂,可以收藏下来,多看几遍(!··!)。为了缓解一下讲解的枯燥,我觉得可以先从一个比较有意思的话题来引入。相信大家都看过一些修真玄幻的小说,渡劫和飞升就是里面常见的桥段,现在来给大家讲个故事:初始大陆上有很多普通的修真者在修仙,随着...
2021-03-26 10:02:54 1.1w浏览 0点赞 0回复 0收藏
我们知道,JavaScript是一门弱类型的语言,它创建的变量保存的值是可以在脚本生命周期内改变的,假如初始化定义的变量值为数字(vara1;),然后进行改变它的值的操作(aa+'个';),这个变量值就会转换为字符串类型(alert(a);"1个")。实际上,JavaScript的变量实际复杂程度还远不止如此。基本类型和引用类型一个变量可以存放两种类型的值,基本类型的值(primitivevalues)和引用类型的值(referencevalues)。基本类型值指的...
2021-03-26 10:02:40 9268浏览 0点赞 0回复 0收藏
本文介绍HomaryOS下基于ToastDialog自定义Toast实现的方法。ToastDialog类的相关方法https:developer.harmonyos.comcndocsdocumentationdocreferencestoastdialog0000001054440045Toast的简单实现publicstaticvoidshowSimpleToast(Contextcontext,StringtoastStr){newToastDialog(context).setDuration(500).setText(toastStr).setAlignment(LayoutAlignment.CENTER).show();}这种方法直接利用ToastDialog类的setText方法,默认...
2021-03-25 09:50:00 1.8w浏览 1点赞 0回复 1收藏
今天又有坛友问到TextField换行怎么实现,我来分享一下实现代码吧,首先看布局页面,代码如下<xmlversion"1.0"encoding"utf8"><DependentLayoutxmlns:ohos"http:schemas.huawei.comresohos"ohos:height"matchparent"ohos:width"matchparent"ohos:orientation"vertical"><TextFieldohos:id"$+id:txtNumber"ohos:height"300vp"ohos:width"500vp"ohos:backgroundelement"AFEEEE"ohos:alignparenttop"true"ohos:textsize"20vp"ohos:...
2021-03-25 09:49:48 1.4w浏览 0点赞 0回复 0收藏
在鸿蒙源码的最新版本1.0.1中有关于NDK开发的教程,教程的方法个人感觉和鸿蒙源码的1.0版中的Hi3861上开发第一个应用方法一样。教程位于源码的buildlitendk下以下为教程内容简介NDKNativeDevelopmentKit,主要包括系统提供的cc++接口库文件,编译工具链,工具和接口描述文档。目录结构:├──build编译框架│├──config│└──toolchain├──docnativeapi接口描述文档├──gcc编译工具链│├──armlinuxohoseabiarmlinuxm...
2021-03-25 09:49:36 1.6w浏览 0点赞 0回复 0收藏
简介Zergling是我们团队自研的埋点管理平台,默认的数据格式如下:{"page":"dsongufm","resource":"song",歌曲"resourceid":1,资源id"target":111,不感兴趣"targetid":"button","reason":"","reasontype":"fixed"}一种自定义json格式,比较不同在于:带注释字符串通过分割符,当做数组用value为基本类型,没有object。在实际过程中有一些不符合规范的地方:用value当做注释,而不用comment应该为id:1111,活动url用做数组分割符,...
2021-03-24 09:35:38 1.1w浏览 2点赞 0回复 2收藏
引子我忽然想起来了还有个博客账号,最近工作任务较少,所以间歇性踌躇满志又更新一下\正文背景介绍什么是垃圾回收垃圾回收(garbagecollection)是指对已分配的内存进行回收,当我们在创建一些变量,函数,对象时,例如:vara"Hello";vargetNamefunction(){函数体}都需要分配内存,而当这些值不再被使用的时候,js就需要在合适的时候将这部分的内存进行回收,这就是垃圾回收机制,对于一些大型应用程序来说,垃圾回收可以有效提...
2021-03-24 09:35:21 8583浏览 0点赞 0回复 0收藏
开发者的生活总是在学习新的东西,跟上变化不应该比现在更难,我的动机是介绍所有JavaScript的最佳实践,比如简写功能,作为一个前端开发者,我们必须知道,让我们的生活在2021年变得更轻松。你可能做了很长时间的JavaScript开发,但有时你可能没有更新最新的特性,这些特性可以解决你的问题,而不需要做或编写一些额外的代码。这些技术可以帮助您编写干净和优化的JavaScript代码。此外,这些主题可以帮助你为2021年的JavaScrip...
2021-03-24 09:35:04 7214浏览 0点赞 0回复 0收藏
17.小数基数指数Longhandfor(vari0;i<10000;i++){...}Shorthandfor(vari0;i<1e4;i++){18.默认参数值Longhandfunctionadd(test1,test2){if(test1undefined)test11;if(test2undefined)test22;returntest1+test2;}shorthandadd(test11,test22)>(test1+test2);add()output:319.扩展运算符简写longhandjoiningarraysusingconcatconstdata[1,2,3];consttest[4,5,6].concat(data);shorthandjoiningarraysconstdata[1,2,3];consttest[4,...
2021-03-24 09:34:52 9119浏览 0点赞 0回复 0收藏
当明确驱动已经加载完成时,用户态应用可通过接口:structHdfIoServiceHdfIoServiceBind(constcharserviceName,modetpermission)获取驱动的服务,获取到服务后通过服务中的Dispatch方法向驱动发送消息。该接口在hdfioserviceif.h文件中有如下声明:参数serviceName表示指向要获取的服务名称的指针参数permission表示创建设备节点的权限,从用户空间调用此函数时,可以使用默认值0如果操作成功,函数返回指向驱动程序服务对象的指...
2021-03-23 09:36:08 1.0w浏览 0点赞 0回复 0收藏
1、将Linuxshell改为bash(1)查看shell是否为bash,在终端运行如下命令lslbinsh如果为显示为binsh>bash则为正常,否则请按以下方式修改:方法一:在终端运行如下命令,然后选择no。sudodpkgreconfiguredash方法二:先删除sh,再创建软链接。rmrfbinshsudolnsbinbashbinsh安装Python环境(1)打开Linux编译服务器终端。(2)输入命令“python3version”,查看Python版本号。需使用python3.7以上版本,否则请按以下步骤执行,以python3...
2021-03-23 09:35:48 1.2w浏览 0点赞 0回复 0收藏
在前面课程中,我们通过驱动服务基类成员IDeviceIoService中的Dispatch方法进行用户态应用程序和内核态驱动程序的消息交互,其中涉及到两个HdfSBuf——data与reply:data:为app向驱动传递的数据的指针reply:为驱动向app传递的数据的指针除此之外,app下发数据以后,驱动程序可以通过主动上报事件的方式向app发送消息,而app端则需要注册监听上报事件的相关操作方法。在前面课程的代码基础上,app与驱动源码需要做下列修改:app代...
2021-03-23 09:35:36 1.0w浏览 0点赞 0回复 0收藏
什么是对象简单的说,对象就是一组属性(property)的集合。每个属性包含两部分:属性名(key)——可以是字符串或者符号(symbol)类型值。特征(attributes)——用来描述属性的状态。属性的分类对象属性可以分为两类:数据属性(dataproperty)——属性值是可以直接访问的。访问器属性(accessorproperty)——属性值通过访问器函数(accessorfunction)来访问的,包含getter和setter方法。getter方法用来获取属性值,setter...
2021-03-22 09:50:39 1.2w浏览 0点赞 0回复 0收藏
DOM事件流(eventflow)存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获(eventcapturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件。事件冒泡(dubbedbubbling):与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点。无论是事件捕获还是...
2021-03-22 09:50:19 1.3w浏览 0点赞 0回复 0收藏
a)在源码根目录下新建一个testapp的文件夹:在终端输入mkdirtestapp指令新建一个名为testapp的文件夹如下b)进入testapp文件夹,新建一个名为myfirstapp.c的文件,并编写自己的应用程序:在终端输入cdtestapp进入该文件夹,接着输入vimyfirstapp.c新建并打开该文件,然后编写一个简单的程序如下:c)回到源码根目录,输入命令:cddrivershdflitemanager进入该路径,该路径下有一个BUILD.gn的文件,输入命令viBUILD.gn打开该文件,在”lite...
2021-03-22 09:50:01 9416浏览 0点赞 0回复 0收藏
年前我看到合成大西瓜小游戏火了,想到之前从来没有研究过游戏方面的开发,这次就想趁着这个机会看看JavaScript游戏开发,从原生角度上如何实现游戏里的物理特性,例如运动、碰撞。虽然之前研究过物理相关的动画库,但是我打算试试不用框架编写一个简单的JavaScript物理引擎,实现小球的碰撞效果。为什么不用现成的游戏库呢?因为我觉得在了解底层的实现原理之后,才能更有效的理解框架上的概念和使用方法,在解决BUG的时候能够...
2021-03-22 09:49:23 1.3w浏览 0点赞 0回复 0收藏
在JavaScript中,几乎所有的对象都是Object类型的实例,它们都会从Object.prototype继承属性。Object是JavaScript的一个内置对象,它是一个构造函数,但是也可以用作普通的函数。构造函数Object作为构造函数,可以使用new关键字来生成一个新的对象。这是一个空对象varobjnewObject();Object可以接受一个参数:若参数是null或者undefined,则返回一个空对象。若参数是一个对象,则直接返回这个对象;若参数是一个原始类型值,则...
2021-03-19 09:49:57 8418浏览 0点赞 0回复 0收藏
当前ECMAScript标准定义了8种数据类型,包括7个原始(primary)类型,还有一个是对象类型。Null和Undefined类型据说在最初设计JavaScript时,像Java一样,只设置了null表示“无”。根据C语言的传统,null可以自动转为0。但是,JavaScript的设计者BrendanEich,觉得这样做还不够。首先,BrendanEich觉得表示“无”的值最好不是对象。其次,那时的JavaScript不包括错误处理机制,BrendanEich觉得,如果null自动转为0,很不容易发...
2021-03-19 09:49:41 1.1w浏览 0点赞 0回复 0收藏