当前位置: 首页 > wzjs >正文

长沙网站建设团队广告联盟大全

长沙网站建设团队,广告联盟大全,电影大型网站制作,做响应式网站设计师需要做什么上一篇中说明了Openharmony V3.1的编译构建流程,如何在标准系统即L2设备添加一个模块呢,在Openharmony上如何编译与运行HelloWorld此篇中有所提及,此篇对此进行详细的说明。一、标准系统添加一个模块在Openharmony中添加模块可以分以下三种情…

上一篇中说明了Openharmony V3.1的编译构建流程,如何在标准系统即L2设备添加一个模块呢,在Openharmony上如何编译与运行HelloWorld此篇中有所提及,此篇对此进行详细的说明。

一、标准系统添加一个模块

在Openharmony中添加模块可以分以下三种情况,对原有的配置文件时行不同程度的修改

  • 在原有的部件中添加一个模块

  • 新建部件并在其中添加模块

  • 新建子系统并在该子系统的部件下添加模块

以下分三种方式对添加一个模块的过程来分别分析。

二、 在原有部件中添加一个模块

1.在模块目录下配置BUILD.gn,根据类型选择对应的模板

支持的模板类型:

ohos_executable		#可执行程序
ohos_shared_library #动态库
ohos_static_library #静态库# 预编译模板
ohos_prebuilt_executable 		#预编译可执行程序
ohos_prebuilt_shared_library 	#预编译动态库
ohos_prebuilt_etc				#预编译配置

以下例子中对BUILD.gn文件中各模板的属性及配置项的注释说明

例子:

ohos_shared_library示例

import("//build/ohos.gni")
ohos_shared_library("helloworld") {source = ["",""]		# 包含的C或C++文件include_dir = ["",""] # 包含的头文件cflags = []			# 编译选项cflags_c = []cflags_CC = []ldflags = []configs = []deps = []				# 部件内模块依赖external_deps = ["part_name:module_name",]# 跨部件模块依赖定义# 定义格式为 "部件名:模块名称"# 这里依赖的模块必须是部件声明在inner_kits中的模块defines += ["",""]	# 宏定义output_name = "" 		# 可选,模块输出名output_extension = "" # 可选,模块名后缀module_install_dir = ""	# 可选,缺省在/system/lib64或/system/lib下,模块安装路径,模块安装路径,从system/,vendor/后开始指定relative_install_dir = ""	# 可选,模块安装相对路径,相对于/system/lib64或/system/lib;如果有module_install_dir配置时,该配置项不生效part_name = ""		# 必选,所属部件名称subsystem_name = ""	# 可选,子系统名称
}

ohos_executable示例

ohos_executable模板属性和ohos_shared_library基本一致。

ohos_executable("helloworld") {source = ["",""]		# 包含的C或C++文件include_dir = ["",""] # 包含的头文件
...install_enable = true	# 编译后的镜像烧录后,可执行模块默认是不安装在开发板内,如果要安装需要指定install_enable为true.
}

ohos_prebuilt_etc示例

ohos_prebuilt_etc就是将预编译的文件安装在开发板内,一般会是配置文件,例如xml,cfg等。

ohos_prebuilt_etc("helloworld") {source = ""		deps = [] 	# 部件内模块依赖module_install_dir = ""	# 可选,模块安装路径,从system/,vendor/后开始指定relative_install_dir = ""	# 可选,模块安装相对路径,相对于/system/etc;如果有module_install_dir配置时,该配置项不生效part_name = ""		# 必选,所属部件名称
}

2.修改包含该模块所属部件的bundle.json

以base/account/os_account/bundle.json为例:

此模块的BUILD.gn文件所在目录为//base/account/os_account/,

则在“sub_component”中添加"//base/account/os_account:helloworld"。

{"name": "@ohos/os_account","description": "Allowing apps to use OS account-related functions","version": "3.1","license": "Apache License 2.0","publishAs": "code-segment","segment": {"destPath": "base/account/os_account"},
..."component": {"name": "os_account_standard","subsystem": "account",
..."build": {"sub_component": ["//base/account/os_account/services:services_target","//base/account/os_account/services/accountmgr/src/appaccount:app_account_service_core","//base/account/os_account/frameworks/appaccount/native:app_account_innerkits","//base/account/os_account/frameworks/osaccount/core:os_account_core","//base/account/os_account/frameworks/common:common_target","//base/account/os_account/frameworks/osaccount/native:os_account_innerkits","//base/account/os_account/interfaces/kits/napi/appaccount:appaccount","//base/account/os_account/interfaces/kits/napi/distributedaccount:distributedaccount","//base/account/os_account/interfaces/kits/napi/osaccount:osaccount","//base/account/os_account/sa_profile:account_sa_profile","//base/account/os_account/tools:os_account_tools","//base/account/os_account:helloworld"],
...}}
}

此时再在Openharmony里执行

./build.sh --product-name rk3568

编译完成后,在//out/rk3568/account/os_account_standard/目录下可以找到编译完成的可执行文件与动态库。

三、新建部件并在其中添加模块

  1. 在模块目录下配置BUILD.gn,根据类型选择需要的模板

此步与在原部件中添加一个模块的方法基本上一致,只需要注意该模块对应BUILD.gn文件中的part_name为新建部件的名称即可。

2.修改或者新建bundle.json

在原有子系统中添加一个新的部件,有两种方法,一种就是如第二点所述,在原有的bundle.json文件中添加该部件。另一种就是新建一个。注意无论哪种方式该bundle.json文件均在对应子系统所在的文件目录下。除非你修改了//build/subsystem_config.json中关于此子系统对应的路径信息。参考Openharmony的编译构建--基础篇。

以account子系统为例,添加新的子部件os_account_test.

  • 首先base/account下创建目录os_account_test,此目录下新建bundle.json。内容如下

{"name": "@ohos/os_account","description": "Allowing apps to use OS account-related functions","version": "3.1","license": "Apache License 2.0","publishAs": "code-segment","segment": {"destPath": "base/account/os_account"},
..."component": {"name": "os_account_test",		# 新建的部件名称"subsystem": "account",			# 所属的子系统
...},"build": {"sub_component": [			# 部件包含的模块的gn目标
...                                  ],"inner_kits": [
...],"test": [
...]}}
}
  • 添加BUILD.gn

如果在base/account/os_account_test新建BUILD.gn,则sub_component添加如下

"//base/account/os_account_test:helloworld"
  • inner_kits与test

假如有提供给其它部件的接口,需要在inner_kits说明,假如有测试用例,需要在test中说明,inner_kits与test不是必选项,可以不添加。

3.//productdefine/common/products/rk3568.json文件添加部件"account:os_account_test":{}

{"product_name": "rk3568","product_company": "hihope","product_device": "rk3568","version": "2.0","type": "standard","product_build_path": "device/hihope/build","parts":{"ace:ace_engine_standard":{},"ace:napi":{},"account:os_account_standard":{},"account:os_account_test":{},"barrierfree:accessibility":{},
......}
}

至此,重新编译。在//out/rk3568/account/os_account_test/目录下会得到新增的模块下可执行文件或动态库。

后续更精彩

1.Openharmony编译构建--进阶篇2

http://www.dtcms.com/wzjs/92358.html

相关文章:

  • 重庆建网站推广价格线上推广渠道有哪些
  • 电子商务网站开发分几个模块百度直播
  • 东莞正规的企业网站设计多少钱网站优化的方式有哪些
  • 网站建设及报价惠州百度seo哪家好
  • php网站接入支付宝关键词智能优化排名
  • dede网站模板页在什么文件夹宁波怎么优化seo关键词
  • 怎么做动态网站视频短片优化关键词步骤
  • c2c网站模板b站推广网站2024年
  • 河北省建设厅网站怎么登陆乐天seo视频教程
  • 在重庆_那里可以做诚信网站认证海外建站
  • 做漫画网站 漫画哪找自己怎么做网站
  • 网站用哪些系统做的比较好用自己怎么给网站做优化排名
  • 双一流建设专题网站优化是什么意思
  • 个人网站命名 备案今日头条热点新闻
  • 马云做的国外的网站叫什么名字社交网络推广方法有哪些
  • python做后台网站的多吗抖音优化排名
  • 网站开发大牛营销培训讲师
  • 怎么把网站地图上传产品推广计划怎么写
  • 广州网站改版设计公司百度河南代理商
  • 潍坊网站建设方案郑州专业网站建设公司
  • 设计师做网站效果图seo优化方案模板
  • jsp网站制作seo泛目录培训
  • 新网站优化中小企业网站优化
  • 如何做起一个网站推广百度人工电话多少号
  • 北京到安阳火车时刻表查询网站关键词优化排名怎么做
  • 厦门城乡建设局网站自媒体怎么入门
  • 免费放单平台无需垫付seo外包公司兴田德润
  • 网站如何做区域屏蔽代码seo技术培训价格表
  • 滨海新区网站建设今日国际新闻最新消息十条
  • 完善的seo网站上海官网seo