成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何往鴻蒙系統源碼中添加第三方軟件包

系統
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[352390]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

打 開鴻蒙系統的源碼,可以看到有這么一個文件夾:third_party。里面存放的是第三方的代碼。

 點開我們可以看到有很多第三方代碼:

 后續我們如果需要往系統中添加、移植任何開源代碼,都可以添加到這個文件夾中。接下來,教大家如何添加一個自己的軟件包,名字為a_myparty。

1. 新建一個文件夾a_myparty

2. 往文件中放置軟件包源碼

這里我放在的是 myparty.c文件

3. 新建BUILD.gn文件

整個代碼目錄如下:


4. myparty.c文件內容如下:

其實,我這個只是為了演示的,所以里面代碼沒什么作用

  1. #include <stdio.h> 
  2.  
  3.  
  4.  
  5.  
  6. void myparty_test(void) 
  7.  
  8.  
  9.     printf("first myparty \r\n"); 
  10.  

 5. BUILD.gn文件內容如下:

BUILD.gn文件主要是描述了軟件包的相關信息,包括編譯哪些源文件,頭文件路徑、編譯方式(目前Hi3861 只支持靜態加載) 

  1. import("//build/lite/config/component/lite_component.gni"
  2.  
  3. import("//build/lite/ndk/ndk.gni"
  4.  
  5.  
  6.  
  7.  
  8. #這里是配置頭文件路徑 
  9.  
  10. config("a_myparty_config") { 
  11.  
  12.     include_dirs = [ 
  13.  
  14.         "."
  15.  
  16.     ] 
  17.  
  18.  
  19.  
  20.  
  21.  
  22. #這里是配置要編譯哪些源碼 
  23.  
  24. a_myparty_sources = [ 
  25.  
  26.     "myparty.c"
  27.  
  28.  
  29.  
  30.  
  31.  
  32. #這里是靜態鏈接,類似于Linux系統的 .a文件 
  33.  
  34. lite_library("a_myparty_static") { 
  35.  
  36.     target_type = "static_library" 
  37.  
  38.     sources = a_myparty_sources 
  39.  
  40.     public_configs = [ ":a_myparty_config" ] 
  41.  
  42.  
  43.  
  44.  
  45.  
  46. #這里是動態加載,類似于Linux系統的 .so文件 
  47.  
  48. lite_library("a_myparty_shared") { 
  49.  
  50.     target_type = "shared_library" 
  51.  
  52.     sources = a_myparty_sources 
  53.  
  54.     public_configs = [ ":a_myparty_config" ] 
  55.  
  56.  
  57.  
  58.  
  59.  
  60. #這里是入口,選擇是靜態還是動態 
  61.  
  62. ndk_lib("a_myparty_ndk") { 
  63.  
  64.     if (board_name != "hi3861v100") { 
  65.  
  66.         lib_extension = ".so" 
  67.  
  68.         deps = [ 
  69.  
  70.             ":a_myparty_shared" 
  71.  
  72.         ] 
  73.  
  74.     } else { 
  75.  
  76.         deps = [ 
  77.  
  78.             ":a_myparty_static" 
  79.  
  80.         ] 
  81.  
  82.     } 
  83.  
  84.     head_files = [ 
  85.  
  86.         "//third_party/a_myparty" 
  87.  
  88.     ] 
  89.  

到了這里我們基本上就寫完了。

最后我們要讓這個第3放軟件包編譯到我們固件中。

6. 打開第3方軟件包功能,使其參與編譯:

打開vendor\hisi\hi3861\hi3861\BUILD.gn 文件

在下圖部分添加 "//third_party/a_myparty:a_myparty_static"

別忘了分號。。。 

 7. 使用

到了這里我們的第3方軟件包就添加完成了,接下來我們要在app 代碼中使用它

打開 applications\sample\wifi-iot\app\my_first_app\BUILD.gn 文件,沒有的同學請自己先完成hello world入門例程先。


添加 "//third_party/a_myparty" 頭文件路徑,BUILD.gn文件內容如下:

  1. static_library("my_first_app") { 
  2.  
  3.     sources = [ 
  4.  
  5.         "hello_world.c" 
  6.  
  7.     ] 
  8.  
  9.     include_dirs = [ 
  10.  
  11.         "//utils/native/liteos/include"
  12.  
  13.         "//third_party/a_myparty" 
  14.  
  15.     ] 
  16.  

 打開hello_world.c文件,內容如下:

  1. #include "ohos_init.h" 
  2.  
  3. #include "ohos_types.h" 
  4.  
  5. #include "stdio.h" 
  6.  
  7. //導入頭文件 
  8.  
  9. #include "myparty.h" 
  10.  
  11.  
  12.  
  13.  
  14. void HelloWorld(void) 
  15.  
  16.  
  17.     printf("%s %d \r\n", __FILE__, __LINE__); 
  18.  
  19.     printf("[DEMO] Hello world.\n"); 
  20.  
  21.     //調用第3方軟件包 的函數 myparty_test() 
  22.  
  23.     myparty_test(); 
  24.  
  25.  
  26. SYS_RUN(HelloWorld); 

 8.最后編譯測試即可看到打印信息: 

  1. [DEMO] Hello world. 
  2.  
  3. first myparty  

 說明添加成功。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-10-26 10:18:41

鴻蒙系統源碼第三方軟件包

2015-11-05 16:44:37

第三方登陸android源碼

2011-10-08 14:37:59

漏洞

2022-01-14 09:57:14

鴻蒙HarmonyOS應用

2020-12-08 09:53:46

Fedora軟件第三方存儲庫

2009-01-14 12:45:05

MSNIM蘋果

2015-01-20 17:01:30

Android源碼QQdemo

2009-04-20 09:36:33

2014-07-25 09:33:22

2014-07-23 08:55:42

iOSFMDB

2019-07-30 11:35:54

AndroidRetrofit

2021-03-03 09:42:26

鴻蒙HarmonyOS圖片裁剪

2021-08-26 16:07:46

鴻蒙HarmonyOS應用

2021-09-10 10:13:27

Windows 10Windows微軟

2023-07-26 08:21:33

2009-11-25 17:19:58

桌面軟件Chrome第三方擴展

2011-03-29 09:27:55

UbuntuFlash

2021-03-01 14:00:11

鴻蒙HarmonyOS應用

2021-12-06 09:44:30

鴻蒙HarmonyOS應用

2009-12-31 14:38:34

Silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区久久精品视 | 亚洲欧美日韩电影 | 亚洲精品乱码 | 久久精品久久久久久 | 欧美精品第一区 | 亚洲精品www | 免费黄色录像视频 | 国产视频久久久久 | 中文字幕日韩一区二区 | 日韩有码一区 | 波霸ol一区二区 | 九九久久精品视频 | 亚洲精品在线观看视频 | 黄色在线免费看 | 成人一区二区在线 | 亚洲成人精品一区二区 | 久久乐国产精品 | 黄色一级大片视频 | 亚洲黄色国产 | 91亚洲精品国偷拍自产在线观看 | 日韩在线国产 | 999久久久 | 久久久高清 | 日韩精品视频中文字幕 | 性色网站| 亚洲国产二区 | 欧美自拍日韩 | 亚洲毛片在线观看 | 成人午夜激情 | 久久午夜精品福利一区二区 | 91影视 | 国产区视频在线观看 | 69av网| www.三级 | 成人黄色电影在线播放 | 久久首页 | 久久这里只有精品首页 | 国产一级在线 | 欧美成人a∨高清免费观看 色999日韩 | 成人一区二区三区 | 激情小说综合网 |