CN115291852B - 一种Sketch插件的开发方法、装置、设备及介质 - Google Patents

一种Sketch插件的开发方法、装置、设备及介质 Download PDF

Info

Publication number
CN115291852B
CN115291852B CN202211198508.8A CN202211198508A CN115291852B CN 115291852 B CN115291852 B CN 115291852B CN 202211198508 A CN202211198508 A CN 202211198508A CN 115291852 B CN115291852 B CN 115291852B
Authority
CN
China
Prior art keywords
sketch
plug
language
native module
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211198508.8A
Other languages
English (en)
Other versions
CN115291852A (zh
Inventor
聂玉江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jinwei Zhiguang Information Technology Co ltd
Original Assignee
Beijing Jinwei Zhiguang Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jinwei Zhiguang Information Technology Co ltd filed Critical Beijing Jinwei Zhiguang Information Technology Co ltd
Priority to CN202211198508.8A priority Critical patent/CN115291852B/zh
Publication of CN115291852A publication Critical patent/CN115291852A/zh
Application granted granted Critical
Publication of CN115291852B publication Critical patent/CN115291852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种Sketch插件的开发方法、装置、设备及介质。其中,该方法包括:在Sketch中注册原生模块;当原生模块注册成功后,接收通过原生模块输入的用于开发Sketch插件的代码;其中,用于开发Sketch插件的代码采用如下至少一种编程语言:Objective‑C语言、C++语言和C语言。可见,本申请实施例中通过注册原生模块,使得能通过原生模块编写Sketch插件,从而使得API的调用不再受JavaScript语言脚本引擎的制约;而且通过Objective‑C语言、C++语言和C语言编写Sketch插件,可以调用macOS系统底层API,扩展了Sketch插件的功能。

Description

一种Sketch插件的开发方法、装置、设备及介质
技术领域
本申请涉及插件开发技术领域,更具体的说,涉及一种Sketch插件的开发方法、装置、设备及介质。
背景技术
Sketch是一个运行在macOS系统上面的用户界面(User Interface,UI)原型设计软件。Sketch 插件是Sketch的增强程序,用于拓展Sketch的功能。通过开发Sketch插件,并在Sketch安装相应的Sketch插件,使用安装后的Sketch插件,能帮助设计师更高效地完成设计工作。
目前,Sketch官方提供的Sketch插件的开发方案,是由Sketch维护的基于JavaScriptCore的JavaScript语言脚本引擎拓展而成的,使用Javascript 语言编写插件。在该开发方案中,macOS系统的应用程序接口(Application Program Interface,API)的调用处处受到JavaScript语言脚本引擎的限制,且使用Javascript 语言编写插件,无法调用macOS系统底层API,如C语言接口和C++语言接口,导致开发得到的Sketch插件的功能较少。
发明内容
有鉴于此,本申请实施例公开一种Sketch插件的开发方法、装置、设备及介质,以扩展Sketch插件的功能。
本申请实施例提供的技术方案如下:
本申请实施例第一方面提供了一种Sketch插件的开发方法,所述方法包括:
在Sketch中注册原生模块;
当所述原生模块注册成功后,接收通过所述原生模块输入的用于开发Sketch插件的代码;其中,所述用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。
在一种可能的实现方式中,所述在Sketch中注册原生模块包括:
执行JavaScript脚本,将所述原生模块注入所述Sketch的进程;其中,所述JavaScript脚本是所述Sketch官方推荐的用于编写Sketch插件的脚本。
在一种可能的实现方式中,所述方法还包括:
通过LLVM编译器或clang编译器对所述用于开发Sketch插件的代码进行语法检测。
在一种可能的实现方式中,所述方法还包括:
接收通过所述原生模块输入的用于管理Sketch插件内存的代码。
在一种可能的实现方式中,所述接收通过所述原生模块输入的用于开发Sketch插件的代码包括:
接收通过所述原生模块输入的用于调用macOS系统的应用程序接口API的代码;和/或,
接收通过所述原生模块输入的用于调用macOS系统的开源库的代码;和/或,
接收通过所述原生模块输入的用于从内存中获取Sketch数据的代码。
本申请第二方面提供了一种Sketch插件的开发装置,所述装置包括:
注册单元,用于在Sketch中注册原生模块;
接收单元,用于当所述原生模块注册成功后,接收通过所述原生模块输入的用于开发Sketch插件的代码;其中,所述用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。
在一种可能的实现方式中,所述注册单元具体用于:
执行JavaScript脚本,将所述原生模块注入所述Sketch的进程;其中,所述JavaScript脚本是所述Sketch官方推荐的用于编写Sketch插件的脚本。
在一种可能的实现方式中,所述装置还包括:
检测单元,用于通过LLVM编译器或clang编译器对所述用于开发Sketch插件的代码进行语法检测。
本申请实施例第三方面提供了一种Sketch插件的开发设备,所述设备包括:存储器,用于存储指令;处理器,用于执行所述存储器中的所述指令以执行以上第一方面任意一项所述的方法。
本申请实施例第四方面提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法。
本申请实施例第五方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法。
从上述的技术方案可知,本申请实施例公开了一种Sketch插件的开发方法、装置、设备及介质。其中,该方法包括:在Sketch中注册原生模块;当原生模块注册成功后,接收通过原生模块输入的用于开发Sketch插件的代码;其中,用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。可见,本申请实施例中通过注册原生模块,使得能通过原生模块编写Sketch插件,从而使得API的调用不再受JavaScript语言脚本引擎的制约;而且通过Objective-C语言、C++语言和C语言编写Sketch插件,可以调用macOS系统底层API,扩展了Sketch插件的功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本申请实施例公开的一种Sketch插件的开发方法的流程图;
图2为本申请实施例公开的一种Sketch插件的开发方法的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种Sketch插件的开发方法、装置、设备及介质。其中,该方法包括:在Sketch中注册原生模块;当原生模块注册成功后,接收通过原生模块输入的用于开发Sketch插件的代码;其中,用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。可见,本申请实施例中通过注册原生模块,使得能通过原生模块编写Sketch插件,从而使得API的调用不再受JavaScript语言脚本引擎的制约;而且通过Objective-C语言、C++语言和C语言编写Sketch插件,可以调用macOS系统底层API,扩展了Sketch插件的功能。
参见图1,本申请实施例公开的一种Sketch插件的开发方法的流程图,该方法包括:
步骤S101、在Sketch中注册原生模块;
其中,本申请实施例中的原生模块是通过在由Objective-C语言和C++语言构成的工程中编写代码,并通过编译器将该代码编译为可执行的二进制得到的。原生模块是一个可以使用Objective-C语言、C语言、C++语言编写Sketch插件的模块。
需要说明的是,本申请实施例中注册原生模块,实质上是将原生模块直接注入Sketch程序的内部,即将原生模块直接注入Sketch的进程,如此使得原生模块相当于是Sketch的一部分,后续通过该原生模块编写Sketch插件的各种行为在macOS系统看来,实际上就是Sketch在操作。
macOS系统是一款由苹果公司发行的运行在苹果电脑上的桌面操作系统。Sketch是一个运行在macOS系统上面的UI原型设计软件,从广义上来讲产品的功能架构、页面布局、内容信息都属于UI的范畴。
步骤S102、当所述原生模块注册成功后,接收通过所述原生模块输入的用于开发Sketch插件的代码;其中,所述用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。
需要说明的是,当原生模块注册成功后,就可以不再使用JavaScrip语言编写Sketch插件,可以使用Objective-C语言、C语言、C++语言编写Sketch插件。本申请实施例中主要是以Objective-C语言开发为主,C语言和C++语言开发为辅。
JavaScript(js)是一种使用广泛的脚本语言。在JavaScript中,如果一条运行不了,那么下面的语言也无法运行,而且由于每次重新加载都会重新解译,加载后,有些代码会延迟至运行时才解译,甚至会多次解译,所以速度较慢。JavaScriptCore是苹果系统内置的js语言脚本引擎。
C语言是一种非常底层的面向过程的程序开发语言。C语言可以像汇编语言一样对位、字节和地址进行操作,C语言还具有强大的图形功能,支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。另外C语言程序生成代码质量高,程序执行效率高等等。C++语言是一种底层的面向对象开发语言,兼容C语言。C++语言支持数据封装和数据隐藏,支持继承和重用,支持多态性等等。Objective-C(OC)是由苹果公司发行维护的一种编译型开发语言,兼容C语言以及C++语言,可以直接混写。
需要说明的是,官方提供的Sketch插件的开发方案是将所有插件的执行逻辑写入一个脚本文件,然后从第一行开始依次向下执行,如此导致脚本的执行效率极慢,从而导致Sketch插件的开发效率极慢。而本申请实施例中通过原生模块编写Sketch插件,能对应执行每一个Sketch插件对应的执行逻辑,Sketch插件的开发效率快。
需要说明的是,原生模块注册成功后,就可以自由的通过内存地址以及Sketch的头文件暴露的方法和函数,对Sketch的功能进行增强和补全,包括动态的进行UI的修改以及对内部方法的拦截和修改注入。可以理解的是,上述只是示例性说明,不应理解为对本申请的限制。
本申请实施例公开了一种Sketch插件的开发方法、装置、设备及介质。其中,该方法包括:在Sketch中注册原生模块;当原生模块注册成功后,接收通过原生模块输入的用于开发Sketch插件的代码;其中,用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。可见,本申请实施例中通过注册原生模块,使得能通过原生模块编写Sketch插件,从而使得API的调用不再受JavaScript语言脚本引擎的制约;而且通过Objective-C语言、C++语言和C语言编写Sketch插件,可以调用macOS系统底层API,扩展了Sketch插件的功能。
为进一步优化上述实施例,本申请实施例中提供的Sketch插件的开发方法中,步骤S103具体可以包括:
执行JavaScript脚本,将所述原生模块注入所述Sketch的进程;其中,所述JavaScript脚本是所述Sketch官方推荐的用于编写Sketch插件的脚本。
本申请实施例中可以执行JavaScript脚本,在JavaScript脚本内部调用loadFrameworkWithName 方法将原生模块注入Sketch的进程。其中,loadFrameworkWithName 方法只是一个上层的OC方法封装,底层的实现是基于 dlopen 这个C语言的函数,作用就是动态加载macOS系统的动态库以及静态库。当注册成功后,此时动态库就变成了Sketch程序的一部分,不再依赖js脚本引擎以及不再受到js脚本引擎的各种问题制约。需要说明的是,本申请实施例中的原生模块即是一个自定义的动态库。
可见,本申请实施例中只需要在开始注册的阶段调用js方法把原生模块注入sketch进程,后续就不需要再跟js脚本引擎有关联,不再依赖js脚本引擎以及不再受到js脚本引擎的各种问题制约。
为了进一步优化上述实施例,本申请实施例中提供的Sketch插件的开发方法还包括:
通过LLVM编译器或clang编译器对所述用于开发Sketch插件的代码进行语法检测。
需要说明的是,本申请实施例中还可以通过通过LLVM编译器或clang编译器对语法错误的代码进行自动提示。
可见,本申请实施例中可以借助LLVM编译器或 Clang编译器进行语法检测,避免代码编写的低级错误,减少开发过程中的错误率,解决了官方提供的Sketch插件开发方案中只能靠人工查代码而造成的效率低下的问题。
为了进一步优化上述实施例,本申请实施中提供的Sketch插件的开发方法还包括:
接收通过所述原生模块输入的用于管理Sketch插件内存的代码。
需要说明的是,由于JavaScript语言对内存不敏感,使得官方提供的Sketch插件开发方案中利用JavaScript语言编写逻辑复杂的Sketch插件,容易产生大量的内存泄露,且存在内存使用限制。Objective-C语言可以通过改编译参数决定自动管理内存还是手动管理,由此使得编写的Sketch插件没有内存使用限制,且能自由的管理内存。
可见,本申请实施例中通过原生模块编写的Sketch插件没有内存使用限制,能自由的管理内存,监控内存使用情况,避免了内存泄露的问题。
为了进一步优化上述实施例,本申请实施中提供的Sketch插件的开发方法中,所述接收通过所述原生模块输入的用于开发Sketch插件的代码包括:
步骤S201、接收通过所述原生模块输入的用于调用macOS系统的应用程序接口API的代码;和/或,
需要说明的是,应用程序接口(Application Program Interface,API)是一组用于构建和集成应用软件的定义和协议。
在官方提供的Sketch插件的开发方案中,由于受js脚本引擎的各种问题制约,故只能调用极少的macOS系统的API。本申请实施例中将原生模块注册到Sketch后,此后便不再受到js脚本引擎的制约,原生模块就相当于Sketch的一部分,后续通过该原生模块编写Sketch插件的各种行为在macOS系统看来,实际上就是Sketch在操作,故原生模块就可以跟macOS系统直接交互,就可以使用macOS系统提供的所有方法以及调用macOS系统提供的所有API。
例如:如果要开发带有UI的插件,可以调用AppKit的接口进行界面绘制。需要说明的是,上述例子只是示例性说明,不应理解为对本申请的限制。
步骤S202、接收通过所述原生模块输入的用于调用macOS系统的开源库的代码;和/或,
在官方提供的Sketch插件的开发方案中,由于只能用来开发Sketch插件,所以极其小众,开发工具链不全,不能集成使用macOS系统的开源库。本申请实施例中由于以Objective-C语言开发为主,C语言和C++语言开发为辅,故可以直接借用强大的原生开发工具链以及苹果平台多年以来积攒的各种实用工具,以及随意集成使用苹果平台多年以来积累的开源库,由此能加快Sketch插件的开发进度,扩展Sketch插件的功能。
步骤S203、接收通过所述原生模块输入的用于从内存中获取Sketch数据的代码;
在官方提供的Sketch插件的开发方案中,由于js语言屏蔽内存,故不可以从内存中获取Sketch数据。本申请实施例中,由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,故如果要做数据处理时,可以通过输入对应的代码直接从内存中获取Sketch的各种数据。
可见,本申请实施例中,通过原生模块可以调用macOS系统的所有API、所有开源库,以及从内存中获取Sketch数据,如此加快了Sketch插件的开发速度,扩展了Sketch插件的功能。
参见图2,本申请实施例公开的一种Sketch插件的开发装置的结构示意图,该装置包括:
注册单元201,用于在Sketch中注册原生模块;
其中,原生模块是通过在由Objective-C语言和C++语言构成的工程中编写代码,并通过编译器将该代码编译为可执行的二进制得到。
第一接收单元202,用于当所述原生模块注册成功后,接收通过所述原生模块输入的用于开发Sketch插件的代码;其中,所述用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。
本申请实施例公开了一种Sketch插件的开发方法、装置、设备及介质。其中,该方法包括:在Sketch中注册原生模块;当原生模块注册成功后,接收通过原生模块输入的用于开发Sketch插件的代码;其中,用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言。可见,本申请实施例中通过注册原生模块,使得能通过原生模块编写Sketch插件,从而使得API的调用不再受JavaScript语言脚本引擎的制约;而且通过Objective-C语言、C++语言和C语言编写Sketch插件,可以调用macOS系统底层API,扩展了Sketch插件的功能。
为进一步优化上述实施例,本申请实施例中提供的Sketch插件的开发装置中,注册单元具体用于:
执行JavaScript脚本,将所述原生模块注入所述Sketch的进程;其中,所述JavaScript脚本是所述Sketch官方推荐的用于编写Sketch插件的脚本。
为进一步优化上述实施例,本申请实施例中提供的Sketch插件的开发装置,还包括:
检测单元,用于通过LLVM编译器或clang编译器对所述用于开发Sketch插件的代码进行语法检测。
为进一步优化上述实施例,本申请实施例中提供的Sketch插件的开发装置,还包括:
第二接收单元,用于接收通过所述原生模块输入的用于管理Sketch插件内存的代码。
为进一步优化上述实施例,本申请实施例中提供的Sketch插件的开发装置中,第一接收单元202具体用于:
接收通过所述原生模块输入的用于调用macOS系统的应用程序接口API的代码;和/或,
接收通过所述原生模块输入的用于调用macOS系统的开源库的代码;和/或,
接收通过所述原生模块输入的用于从内存中获取Sketch数据的代码。
相应的,本申请实施例还提供了与Sketch插件的开发装置对应的Sketch插件的开发设备,该Sketch插件的开发设备包括处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令以执行以上方法实施例中提供的Sketch插件的开发方法。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic, GAL)或其任意组合。
存储器可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上方法实施例提供的Sketch插件的开发方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上方法实施例提供的Sketch插件的开发方法。
需要说明的是,装置实施例中各组成部分的具体工作原理请参见方法实施例对应部分,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种Sketch插件的开发方法,其特征在于,所述方法包括:
在Sketch中注册原生模块;
当所述原生模块注册成功后,接收通过所述原生模块输入的用于开发Sketch插件的代码;其中,所述用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言;
通过LLVM编译器或clang编译器对所述用于开发Sketch插件的代码进行语法检测。
2.根据权利要求1的方法,其特征在于,所述在Sketch中注册原生模块包括:
执行JavaScript脚本,将所述原生模块注入所述Sketch的进程;其中,所述JavaScript脚本是所述Sketch官方推荐的用于编写Sketch插件的脚本。
3.根据权利要求1的方法,其特征在于,所述方法还包括:
接收通过所述原生模块输入的用于管理Sketch插件内存的代码。
4.根据权利要求1的方法,其特征在于,所述接收通过所述原生模块输入的用于开发Sketch插件的代码包括:
接收通过所述原生模块输入的用于调用macOS系统的应用程序接口API的代码;和/或,
接收通过所述原生模块输入的用于调用macOS系统的开源库的代码;和/或,
接收通过所述原生模块输入的用于从内存中获取Sketch数据的代码。
5.一种Sketch插件的开发装置,其特征在于,所述装置包括:
注册单元,用于在Sketch中注册原生模块;
接收单元,用于当所述原生模块注册成功后,接收通过所述原生模块输入的用于开发Sketch插件的代码;其中,所述用于开发Sketch插件的代码采用如下至少一种编程语言:Objective-C语言、C++语言和C语言;
检测单元,用于通过LLVM编译器或clang编译器对所述用于开发Sketch插件的代码进行语法检测。
6.根据权利要求5的装置,其特征在于,所述注册单元具体用于:
执行JavaScript脚本,将所述原生模块注入所述Sketch的进程;其中,所述JavaScript脚本是所述Sketch官方推荐的用于编写Sketch插件的脚本。
7.一种Sketch插件的开发设备,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述存储器中的所述指令以执行权利要求1至4任意一项所述的方法。
8.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行权利要求1至4任意一项所述的方法。
CN202211198508.8A 2022-09-29 2022-09-29 一种Sketch插件的开发方法、装置、设备及介质 Active CN115291852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211198508.8A CN115291852B (zh) 2022-09-29 2022-09-29 一种Sketch插件的开发方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211198508.8A CN115291852B (zh) 2022-09-29 2022-09-29 一种Sketch插件的开发方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN115291852A CN115291852A (zh) 2022-11-04
CN115291852B true CN115291852B (zh) 2022-12-23

Family

ID=83833355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211198508.8A Active CN115291852B (zh) 2022-09-29 2022-09-29 一种Sketch插件的开发方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115291852B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108694049A (zh) * 2017-02-23 2018-10-23 阿里巴巴集团控股有限公司 一种更新软件的方法和设备
CN110955540A (zh) * 2019-11-28 2020-04-03 上海携程商务有限公司 插件交互方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545730B2 (en) * 2018-05-07 2020-01-28 Red Hat, Inc. Automatically generating code for application programming interfaces

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108694049A (zh) * 2017-02-23 2018-10-23 阿里巴巴集团控股有限公司 一种更新软件的方法和设备
CN110955540A (zh) * 2019-11-28 2020-04-03 上海携程商务有限公司 插件交互方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
React Native使用指南-原生模块;jingcheng345413;《https://blog.csdn.net/ jingcheng345413/article/details/54967819》;20170210;正文页 *
积木Sketch插件进阶开发指南;美团技术团队;《https://segmentfault.com/a/1190000037746695》;20201106;正文第3节 *

Also Published As

Publication number Publication date
CN115291852A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
JP6198939B2 (ja) ドライバをロードする方法及び組み込みデバイス
CN111090433B (zh) 一种数据处理的方法、装置和存储介质
US8239823B2 (en) Generating libraries for reflection without project compilation
US8407667B2 (en) Inferring missing type information for reflection
US8914780B2 (en) Incremental generation of managed assemblies
US9841953B2 (en) Pluggable components for runtime-image generation
US8924944B2 (en) Implementation of distributed methods that support generic functions
US8549502B2 (en) Compiler with user-defined type inference rules
US20200249925A1 (en) On-demand loading of dynamic scripting language code for reduced memory usage
US9645800B2 (en) System and method for facilitating static analysis of software applications
US10120655B2 (en) Seamless high performance interoperability between different type graphs that share a garbage collector
US9405906B1 (en) System and method for enhancing static analysis of software applications
CN110609687A (zh) 一种编译方法、装置、电子设备和存储介质
CN110795091B (zh) 一种模块化路由解耦方法、存储介质、电子设备及系统
CN115291852B (zh) 一种Sketch插件的开发方法、装置、设备及介质
US20130111431A1 (en) Validation of a system model including an activity diagram
WO2023123111A1 (zh) 编译方法以及用于编译的装置
CN111367512B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN111399842B (zh) 一种代码编译方法及装置
CN112114809B (zh) 一种程序代码安全防护方法、装置及存储介质
CN110737431B (zh) 软件开发方法、开发平台、终端设备及存储介质
CN111796832A (zh) 热补丁文件生成方法、装置、设备及存储介质
EP1337915A1 (fr) Verification formelle notamment d'une machine virtuelle securisee
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
CN114168489B (zh) 一种函数信息获取方法、计算设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant