精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳細教程:在鴻蒙系統源碼中添加第三方軟件包

電子工程師 ? 來源:HarmonyOS技術社區 ? 作者:HarmonyOS技術社區 ? 2020-10-24 11:12 ? 次閱讀

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

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

后續我們如果需要往系統中添加、移植任何開源代碼,都可以添加到這個文件夾中。

接下來,教大家如何添加一個自己的軟件包,名字為 a_myparty。

01

新建一個文件夾 a_myparty

02

往文件中放置軟件包源碼

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

03

新建 BUILD.gn 文件

整個代碼目錄如下:

04

myparty.c 文件內容如下

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

#include voidmyparty_test(void) { printf("firstmyparty "); }

05

BUILD.gn 文件內容如下

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

import("http://build/lite/config/component/lite_component.gni") import("http://build/lite/ndk/ndk.gni") #這里是配置頭文件路徑 config("a_myparty_config"){ include_dirs=[ ".", ] } #這里是配置要編譯哪些源碼 a_myparty_sources=[ "myparty.c", ] #這里是靜態鏈接,類似于Linux系統的.a文件 lite_library("a_myparty_static"){ target_type="static_library" sources=a_myparty_sources public_configs=[":a_myparty_config"] } #這里是動態加載,類似于Linux系統的.so文件 lite_library("a_myparty_shared"){ target_type="shared_library" sources=a_myparty_sources public_configs=[":a_myparty_config"] } #這里是入口,選擇是靜態還是動態 ndk_lib("a_myparty_ndk"){ if(board_name!="hi3861v100"){ lib_extension=".so" deps=[ ":a_myparty_shared" ] }else{ deps=[ ":a_myparty_static" ] } head_files=[ "http://third_party/a_myparty" ] }

到了這里我們基本上就寫完了。最后我們要讓這個第 3 放軟件包編譯到我們固件中。

06

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

打開 vendorhisihi3861hi3861BUILD.gn 文件,在下圖部分添加 "http://third_party/a_myparty:a_myparty_static",別忘了分號。

07

使用

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

打開 applicationssamplewifi-iotappmy_first_appBUILD.gn 文件,沒有的同學請自己先完成 hello world 入門例程先。

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

static_library("my_first_app"){ sources=[ "hello_world.c" ] include_dirs=[ "http://utils/native/liteos/include", "http://third_party/a_myparty" ] } 打開 hello_world.c 文件,內容如下:#include"ohos_init.h" #include"ohos_types.h" #include"stdio.h" //導入頭文件 #include"myparty.h" voidHelloWorld(void) { printf("%s%d ",__FILE__,__LINE__); printf("[DEMO]Helloworld. "); //調用第3方軟件包的函數myparty_test() myparty_test(); } SYS_RUN(HelloWorld);

08

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

[DEMO]Helloworld. firstmyparty

說明添加成功。

責任編輯:PSY

原文標題:如何往鴻蒙系統源碼中添加第三方軟件包

文章出處:【微信公眾號:HarmonyOS技術社區】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 源碼
    +關注

    關注

    8

    文章

    633

    瀏覽量

    29140
  • 軟件包
    +關注

    關注

    0

    文章

    101

    瀏覽量

    11584
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2634

    瀏覽量

    66220

原文標題:如何往鴻蒙系統源碼中添加第三方軟件包

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙Flutter實戰:05-使用第三方插件

    # 鴻蒙Flutter 實戰:使用第三方插件 鴻蒙Flutter開發,如果涉及到使用原生功能,就要使用插件。使用插件有兩種方式,一種是
    發表于 10-22 21:54

    瑞芯微RK3566鴻蒙開發板Android11修改第三方輸入法為默認輸入法

    本文適用于觸覺智能所有支持Android11系統的開發板修改第三方輸入法為默認輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派設計,是Laval官方社區主薦的一款
    的頭像 發表于 09-24 09:43 ?351次閱讀
    瑞芯微RK3566<b class='flag-5'>鴻蒙</b>開發板Android11修改<b class='flag-5'>第三方</b>輸入法為默認輸入法

    維天地低代碼開發平臺助力第三方質檢行業數據可視化

    第三方檢驗是由獨立于買賣雙方利益之外的第三方機構(例如專業的監督檢驗機構)執行的,這些機構以公正、公平、權威的非當事人身份,依據雙方共同認可的法律、標準和合同等進行商品的符合性檢驗和認證活動
    的頭像 發表于 08-09 13:59 ?238次閱讀
    <b class='flag-5'>三</b>維天地低代碼開發平臺助力<b class='flag-5'>第三方</b>質檢行業數據可視化

    請問esp8266會開放使用第三方云服務器嗎?

    如題,esp8266會開放使用第三方云服務器嗎,如百度,阿里云服務器?
    發表于 07-12 11:40

    是否有可能在支持gdb的第三方集成開發環境中使用DAS配置調試?

    是否有可能在支持 gdb 的第三方集成開發環境中使用 DAS 配置調試?
    發表于 07-02 07:29

    微軟或將開放Xbox主機授權給第三方廠商

    據悉,5 月 26 日,知名媒體 Windows Central 的編輯 Jez Corden 揭露了微軟即將遵循第三方手柄流程,允許在其 XBOX 主機上引入第三方產品。
    的頭像 發表于 05-27 15:18 ?620次閱讀

    MacPaw將在歐盟成員國推出第三方應用商店Setapp

    5月14日,MacPaw正式宣布將在今年5月14日歐盟成員國面向蘋果iPhone推出第三方應用商城Setapp。自今年2月起,MacPaw已著手籌備該平臺。S
    的頭像 發表于 05-14 10:14 ?343次閱讀

    谷歌開放ZenDeviceEffects API,助第三方應用實現睡前屏幕管理

    據報道,谷歌近日安卓 15 開發者預覽版 2 推出了全新 ZenDeviceEffects API,允許第三方應用訪問數字健康的就寢模式功能。
    的頭像 發表于 05-08 16:41 ?457次閱讀

    Labview如何內嵌操作第三方EXE程序!

    自己在網上搜了下相關資料,能把第三方EXE內嵌進入容器里,但是有個問題,這個第三方軟件必須手動拖到容器正中間,手動最大化。請問有什么方法可以自動實現嗎? 下圖是我內嵌的POLL 軟件。
    發表于 04-18 14:26

    微軟或將引入第三方數字游戲商店至Xbox平臺

    微軟選擇引入這些第三方游戲平臺,一面可以增加自身擁有的硬件資源和服務優勢;另一面,也是為了吸引那些電腦端能夠自由選擇游戲購買渠道的游戲用戶。據悉,此前的Xbox系列產品都是只內置
    的頭像 發表于 03-27 15:51 ?467次閱讀

    Meta Quest頭顯將支持多款安卓第三方應用并行

    Meta已悄然啟動了與此相關的功能,意味著Quest頭顯可同時操作多個第三方Android應用。在此之前,Quest對第三方Android應用有嚴格限制,用戶每次僅能打開一個,無法實現同屏幕并行多個第三方應用進程。
    的頭像 發表于 03-11 10:58 ?701次閱讀

    蘋果iOS 17.4版允許歐盟地區用戶使用第三方應用商店下載應用

    3月6日,蘋果正式推出iOS 17.4版本,首次符合歐州《數字市場法》規定,引入“第三方應用商店”選項,讓iPhone用戶能從非App Store處下載應用程序。
    的頭像 發表于 03-06 10:51 ?821次閱讀

    MacPaw將于4月歐洲市場推出Setapp第三方應用商城

    3月1日報道,知名廠商MacPaw于今日發表聲明,宣稱其自有的第三方應用商城Setapp將進軍歐洲市場,發布會定于今年4月舉行,并且官網預告了可供用戶試用的候選頁面,以吸引更多人參與到Setapp移動版本Beta的測試來。
    的頭像 發表于 03-01 10:16 ?523次閱讀

    調用第三方API接口會遇到哪些問題?如何解決?

    實際工作,我們經常需要在項目中調用第三方API接口,獲取數據,或者上報數據,進行數據交換和通信。
    的頭像 發表于 11-30 11:05 ?2186次閱讀
    調用<b class='flag-5'>第三方</b>API接口會遇到哪些問題?如何解決?

    python第三方庫有哪些

    Python 作為一門功能強大的編程語言,擁有豐富的第三方庫,幾乎覆蓋了各個領域的應用。下面是一些常見且廣泛應用的 Python 第三方庫的總結,希望能為您提供幫助。 NumPy(Numerical
    的頭像 發表于 11-29 14:31 ?2093次閱讀