自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何往鴻蒙系統(tǒng)源碼中添加第三方軟件包

系統(tǒng)
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com/#zz

[[352390]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

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

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

 點(diǎn)開我們可以看到有很多第三方代碼:

 后續(xù)我們?nèi)绻枰到y(tǒng)中添加、移植任何開源代碼,都可以添加到這個(gè)文件夾中。接下來(lái),教大家如何添加一個(gè)自己的軟件包,名字為a_myparty。

1. 新建一個(gè)文件夾a_myparty

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

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

3. 新建BUILD.gn文件

整個(gè)代碼目錄如下:


4. myparty.c文件內(nèi)容如下:

其實(shí),我這個(gè)只是為了演示的,所以里面代碼沒(méi)什么作用

  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文件內(nèi)容如下:

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

  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. #這里是靜態(tài)鏈接,類似于Linux系統(tǒng)的 .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. #這里是動(dòng)態(tài)加載,類似于Linux系統(tǒng)的 .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. #這里是入口,選擇是靜態(tài)還是動(dòng)態(tài) 
  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.  

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

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

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

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

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

別忘了分號(hào)。。。 

 7. 使用

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

打開 applications\sample\wifi-iot\app\my_first_app\BUILD.gn 文件,沒(méi)有的同學(xué)請(qǐng)自己先完成hello world入門例程先。


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

  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文件,內(nèi)容如下:

  1. #include "ohos_init.h" 
  2.  
  3. #include "ohos_types.h" 
  4.  
  5. #include "stdio.h" 
  6.  
  7. //導(dǎo)入頭文件 
  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.     //調(diào)用第3方軟件包 的函數(shù) myparty_test() 
  22.  
  23.     myparty_test(); 
  24.  
  25.  
  26. SYS_RUN(HelloWorld); 

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

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

 說(shuō)明添加成功。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

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

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2020-10-26 10:18:41

鴻蒙系統(tǒng)源碼第三方軟件包

2015-11-05 16:44:37

第三方登陸android源碼

2011-10-08 14:37:59

漏洞

2022-01-14 09:57:14

鴻蒙HarmonyOS應(yīng)用

2020-12-08 09:53:46

Fedora軟件第三方存儲(chǔ)庫(kù)

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庫(kù)

2021-03-03 09:42:26

鴻蒙HarmonyOS圖片裁剪

2021-12-06 09:44:30

鴻蒙HarmonyOS應(yīng)用

2021-08-26 16:07:46

鴻蒙HarmonyOS應(yīng)用

2021-09-10 10:13:27

Windows 10Windows微軟

2023-07-26 08:21:33

2009-11-25 17:19:58

桌面軟件Chrome第三方擴(kuò)展

2011-03-29 09:27:55

UbuntuFlash

2019-09-03 18:31:19

第三方支付電商支付行業(yè)

2021-08-03 10:07:41

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)