99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開(kāi)發(fā)學(xué)習(xí):【appspawn應(yīng)用孵化組件】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-18 22:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

功能簡(jiǎn)介

應(yīng)用孵化器,負(fù)責(zé)接受應(yīng)用程序框架的命令孵化應(yīng)用進(jìn)程,設(shè)置其對(duì)應(yīng)權(quán)限,并調(diào)用應(yīng)用程序框架的入口。

基本概念

appspawn注冊(cè)的服務(wù)名稱為“appspawn”。appspawn 通過(guò)監(jiān)聽(tīng)本地socket,接收來(lái)自客戶端的請(qǐng)求消息。消息類型為AppParameter的結(jié)構(gòu)體,定義路徑為:“interfaces/innerkits/include/appspawn_msg.h“。

表 1 字段說(shuō)明

字段名說(shuō)明
processName即將啟動(dòng)的應(yīng)用服務(wù)進(jìn)程名,最大256字節(jié)。
bundleName即將啟動(dòng)的應(yīng)用程序包名,最大256字節(jié)。
soPath即應(yīng)用程序指定的動(dòng)態(tài)庫(kù)的路徑,最大256字節(jié)。
uid即將啟動(dòng)的應(yīng)用進(jìn)程的uid。
gid即將啟動(dòng)的應(yīng)用進(jìn)程的gid。
gidTable即將啟動(dòng)的應(yīng)用進(jìn)程組信息,長(zhǎng)度由gidCount指定,最大支持64個(gè)進(jìn)程組,必須為正值。
gidCount即將啟動(dòng)的應(yīng)用進(jìn)程組個(gè)數(shù)。
accessTokenId即應(yīng)用進(jìn)程權(quán)限控制的token id。
apl即應(yīng)用進(jìn)程權(quán)限控制的apl,最大32字節(jié).
renderCmd即圖形圖像渲染命令, 最大1024字節(jié)。
flags即冷啟動(dòng)標(biāo)志位。
pid即渲染進(jìn)程pid,查詢渲染進(jìn)程退出狀態(tài)。
AppOperateType即App操作類型,0: 默認(rèn)狀態(tài); 1:獲取渲染終止?fàn)顟B(tài)。

約束與限制

僅限標(biāo)準(zhǔn)系統(tǒng)下使用

開(kāi)發(fā)指導(dǎo)

場(chǎng)景介紹

  • 安全控制
    支持為app設(shè)置SELinux標(biāo)簽。
    SELinux標(biāo)簽接口代碼如下:

    AppSpawnClientExt *appProperty = (AppSpawnClientExt *)client;
    HapContext hapContext;
    ret = hapContext.HapDomainSetcontext(appProperty- >property.apl, appProperty- >property.processName);
    if (ret != 0) {
        APPSPAWN_LOGE("AppSpawnServer::Failed to hap domain set context, errno = %d %s",
            errno, appProperty- >property.apl);
    } else {
        APPSPAWN_LOGI("AppSpawnServer::Success to hap domain set context, ret = %d", ret);
    }
    
  • 應(yīng)用進(jìn)程控制

    • 支持為app設(shè)置AccessToken。
    • 支持重啟前,appspawn停止后,可同時(shí)停止所有已孵化的app進(jìn)程。

    AccessToken接口代碼如下:

    AppSpawnClientExt *appProperty = (AppSpawnClientExt *)client;
    int32_t ret = SetSelfTokenID(appProperty- >property.accessTokenId);
    APPSPAWN_LOGI("AppSpawnServer::set access token id = %d, ret = %d %d", appProperty- >property.accessTokenId, ret, getuid());
    
  • 冷啟動(dòng)
    支持通過(guò)aa命令冷啟動(dòng)應(yīng)用。

    param set startup.appspawn.cold.boot 1 // 打開(kāi)冷啟動(dòng)開(kāi)關(guān)
    aa start -d 12345 -a $name -b $package -C
    參考:
    aa start -d 12345 -a ohos.acts.startup.sysparam.function.MainAbility -b ohos.acts.startup.sysparam.function -C
    
  • 應(yīng)用沙盒
    應(yīng)用獨(dú)立運(yùn)行于自身沙盒環(huán)境。應(yīng)用沙盒中,只保留應(yīng)用依賴的庫(kù)或文件,同時(shí),應(yīng)用之間數(shù)據(jù)的也進(jìn)行隔離。

接口說(shuō)明

接口定義路徑: "/base/startup/appspawn/interfaces/innerkits/include/client_socket.h",接口說(shuō)明參見(jiàn)表2。

表 2 接口說(shuō)明

接口名說(shuō)明
CreateClient創(chuàng)建client。
CloseClient關(guān)閉client。
ConnectSocket向appspawn服務(wù)發(fā)起連接請(qǐng)求。
WriteSocketMessage發(fā)送消息到appspawn服務(wù)。
ReadSocketMessage接收來(lái)自appspawn服務(wù)的消息。

開(kāi)發(fā)步驟

沙盒配置說(shuō)明:

{
      "common" : [{                                           // 應(yīng)用沙盒通用掛載項(xiàng)
          "top-sandbox-switch": "ON",                         // 沙盒總開(kāi)關(guān) ON: 打開(kāi), OFF: 關(guān)閉
          "app-base" : [{
              "sandbox-root" : "/mnt/sandbox/< PackageName >",  // 沙盒根路徑
              "mount-paths" : [{
                      "src-path" : "/config",                 // mount的源目錄
                      "sandbox-path" : "/config",             // 沙盒掛載路徑
                      "sandbox-flags" : [ "bind", "rec" ],    // 掛載方式
                      "check-action-status": "false"          // false 不檢查當(dāng)前項(xiàng)掛載結(jié)果, true: 檢查當(dāng)前項(xiàng)掛載結(jié)果
                  }
              ],
              "symbol-links" : [{                             // link 的目錄項(xiàng)
                      "target-name" : "/system/bin",          // link 的源目錄
                      "link-name" : "/bin",                   // 鏈接名稱
                      "check-action-status": "false"
                  }
              ]
          }],
      // 應(yīng)用獨(dú)有配置參考
      "individual" : [{                                        // 個(gè)別應(yīng)用單獨(dú)掛載項(xiàng)
          "com.ohos.medialibrary.MediaLibraryDataA" : [{       // 應(yīng)用名
              "sandbox-switch": "ON",                          // ON: 掛載沙盒路徑, OFF: 掛載根路徑
              "sandbox-root" : "/mnt/sandbox/< PackageName >",   // 沙盒根路徑
              "mount-paths" : [{
                      "src-path" : "/storage/media/< currentUserId >",
                      "sandbox-path" : "/storage/media",
                      "sandbox-flags" : [ "bind", "rec" ],
                      "check-action-status": "false"
                  }
              ],
              "symbol-links" : []
          }]
      }]
  }

參考沙盒配置說(shuō)明,修改配置文件。

  • 進(jìn)入設(shè)備下:/system/etc/sandbox/路徑下,直接修改對(duì)應(yīng)沙盒配置文件, 重新啟動(dòng)。
  • 代碼路徑下:base/startup/appspawn_standard, 修改對(duì)應(yīng)沙盒配置文件。

表 3 沙盒配置文件解釋

沙盒配置文件解釋
appdata-sandbox64.json64位系統(tǒng)的沙盒配置
appdata-sandbox.json32位系統(tǒng)的沙盒配置
product-sandbox.json應(yīng)用沙盒的產(chǎn)品差異化配置

開(kāi)發(fā)實(shí)例

以launcher應(yīng)用新增獨(dú)有配置應(yīng)用為例:

"com.ohos.launcher" : [{
    "sandbox-switch": "ON",
    "sandbox-root" : "/mnt/sandbox/< PackageName >",
    "mount-paths" : [{
            "src-path" : "/data/app/el1/bundle/public/",
            "sandbox-path" : "/data/bundles/",
            "sandbox-flags" : [ "bind", "rec" ],
            "check-action-status": "true"
        }
    ],
    "symbol-links" : []
}],

常見(jiàn)問(wèn)題

冷啟動(dòng)應(yīng)用失敗

現(xiàn)象描述
通過(guò)命令冷啟動(dòng)應(yīng)用, 應(yīng)用拉起失敗。

解決方法

  1. 需要設(shè)置 param set startup.appspawn.cold.boot 1生效。

  2. 確認(rèn)冷啟動(dòng)命令是否正確。

    審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2613

    瀏覽量

    44010
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【HarmonyOS 5】鴻蒙頁(yè)面和組件生命周期函數(shù)

    【HarmonyOS 5】鴻蒙頁(yè)面和組件生命周期函數(shù) ##鴻蒙開(kāi)發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)
    的頭像 發(fā)表于 07-11 18:24 ?232次閱讀

    【HarmonyOS 5】金融應(yīng)用開(kāi)發(fā)鴻蒙組件實(shí)踐

    【HarmonyOS 5】金融應(yīng)用開(kāi)發(fā)鴻蒙組件實(shí)踐 ##鴻蒙開(kāi)發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##
    的頭像 發(fā)表于 07-11 18:20 ?227次閱讀
    【HarmonyOS 5】金融應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>鴻蒙</b><b class='flag-5'>組件</b>實(shí)踐

    飛書(shū)開(kāi)源“RTV”富文本組件 重塑鴻蒙應(yīng)用富文本渲染體驗(yàn)

    更高效的富文本解決方案。 富文本作為內(nèi)容展示和信息交互的重要形式,在內(nèi)容創(chuàng)作、辦公協(xié)作、教育學(xué)習(xí)、企業(yè)應(yīng)用等多種復(fù)雜業(yè)務(wù)場(chǎng)景中扮演著重要角色。隨著鴻蒙生態(tài)應(yīng)用類型的不斷豐富,富文本渲染成為各類應(yīng)用開(kāi)發(fā)過(guò)程中不可或缺的基礎(chǔ)能力。
    的頭像 發(fā)表于 07-11 15:20 ?65次閱讀
    飛書(shū)開(kāi)源“RTV”富文本<b class='flag-5'>組件</b> 重塑<b class='flag-5'>鴻蒙</b>應(yīng)用富文本渲染體驗(yàn)

    開(kāi)鴻開(kāi)發(fā)板深度體驗(yàn):從開(kāi)源鴻蒙開(kāi)發(fā)到AI場(chǎng)景實(shí)踐

    開(kāi)鴻開(kāi)發(fā)板KaihongBoard-3588S-SBCKaihongBoard-3576-SBC體驗(yàn)開(kāi)源鴻蒙能力學(xué)習(xí)開(kāi)源鴻蒙開(kāi)發(fā)●●●搭載K
    的頭像 發(fā)表于 07-03 17:03 ?272次閱讀
    開(kāi)鴻<b class='flag-5'>開(kāi)發(fā)</b>板深度體驗(yàn):從開(kāi)源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>到AI場(chǎng)景實(shí)踐

    鴻蒙5開(kāi)發(fā)寶藏案例分享---Swiper組件性能優(yōu)化實(shí)戰(zhàn)

    鴻蒙寶藏:Swiper組件性能優(yōu)化實(shí)戰(zhàn),告別卡頓丟幀! 大家好!最近在鴻蒙開(kāi)發(fā)時(shí),偶然發(fā)現(xiàn)了官方文檔里埋藏的 性能優(yōu)化寶藏案例 ,尤其是<span class=\"
    發(fā)表于 06-12 17:53

    HarmonyOS實(shí)戰(zhàn):組件化項(xiàng)目搭建

    前言 鴻蒙應(yīng)用開(kāi)發(fā)已經(jīng)成為互聯(lián)網(wǎng)新的風(fēng)口,開(kāi)發(fā)鴻蒙軟件已經(jīng)成為今年工作的核心目標(biāo)。在軟件開(kāi)發(fā)過(guò)程中,對(duì)于復(fù)雜度較大,功能較多的軟件都會(huì)采用
    的頭像 發(fā)表于 06-09 14:58 ?203次閱讀
    HarmonyOS實(shí)戰(zhàn):<b class='flag-5'>組件</b>化項(xiàng)目搭建

    2025開(kāi)源鴻蒙開(kāi)發(fā)者大會(huì)圓滿落幕

    近日,開(kāi)源鴻蒙開(kāi)發(fā)者大會(huì)2025(OHDC.2025,簡(jiǎn)稱“大會(huì)”)在深圳隆重開(kāi)幕。大會(huì)正式發(fā)布了開(kāi)源鴻蒙5.1 Release版本,舉行了開(kāi)源鴻蒙應(yīng)用技術(shù)
    的頭像 發(fā)表于 05-26 17:03 ?554次閱讀

    鴻蒙北向開(kāi)發(fā)OpenHarmony5.0 DevEco Studio開(kāi)發(fā)工具安裝與配置

    本文介紹OpenHarmony5.0 DevEco Studio開(kāi)發(fā)工具安裝與配置,鴻蒙北向開(kāi)發(fā)入門必備!由觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)
    的頭像 發(fā)表于 03-28 18:05 ?844次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開(kāi)發(fā)</b>OpenHarmony5.0 DevEco Studio<b class='flag-5'>開(kāi)發(fā)</b>工具安裝與配置

    開(kāi)源啦?。?!基于鴻蒙ArkTS封裝的圖表組件《McCharts》,大家快來(lái)一起共創(chuàng)

    Hello;大家好,我是陳楊。好久沒(méi)更新了,首先是自己本職工作比較忙,基本沒(méi)時(shí)間寫(xiě)作。其次就是學(xué)習(xí)技術(shù),自學(xué)鴻蒙ArkTS語(yǔ)言已經(jīng)接近半年了,也算半路出師了,這次將分享我封裝的組件庫(kù),所以有啥講錯(cuò)
    發(fā)表于 03-15 15:21

    【「極速探索HarmonyOS NEXT 」閱讀體驗(yàn)】 初印象:一本純血鴻蒙應(yīng)用開(kāi)發(fā)入門的好書(shū)

    非常有幸的于近日收到了電子發(fā)燒友寄來(lái)的《 極速探索HarmonyOS NEXT **** 純血鴻蒙應(yīng)用開(kāi)發(fā)實(shí)踐》這本由清華大學(xué)出版社出版的一本純血鴻蒙應(yīng)用開(kāi)發(fā)
    發(fā)表于 03-04 12:41

    HarmonyOS 應(yīng)用開(kāi)發(fā)賦能套件:鴻蒙原生應(yīng)用開(kāi)發(fā)的 “神助攻”

    隨著鴻蒙生態(tài)的快速發(fā)展,越來(lái)越多的開(kāi)發(fā)者投身于鴻蒙原生應(yīng)用的開(kāi)發(fā)中。然而,在學(xué)習(xí)鴻蒙原生應(yīng)用
    發(fā)表于 02-17 16:37

    AIGC入門及鴻蒙入門

    JDK、配置SDK等。 3. 開(kāi)發(fā)實(shí)踐: 學(xué)習(xí)鴻蒙系統(tǒng)的架構(gòu)和API,了解其組件化、分布式等特性。 通過(guò)官方文檔和社區(qū)資源,學(xué)習(xí)和掌握
    發(fā)表于 01-13 10:32

    《HarmonyOS第一課》煥新升級(jí),賦能開(kāi)發(fā)者快速掌握鴻蒙應(yīng)用開(kāi)發(fā)

    《HarmonyOS第一課》煥新升級(jí),賦能開(kāi)發(fā)者快速掌握鴻蒙應(yīng)用開(kāi)發(fā) 隨著HarmonyOS NEXT發(fā)布,鴻蒙生態(tài)日益壯大,廣大開(kāi)發(fā)者對(duì)于
    發(fā)表于 01-02 14:24

    OpenHarmony怎么修改DPI密度值?觸覺(jué)智能RK3566鴻蒙開(kāi)發(fā)板演示

    開(kāi)源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區(qū)推薦
    的頭像 發(fā)表于 12-24 11:46 ?721次閱讀
    OpenHarmony怎么修改DPI密度值?觸覺(jué)智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>板演示

    鴻蒙原生開(kāi)源庫(kù)ViewPool在OpenHarmony社區(qū)正式上線

    近日,由伙伴參與共建的鴻蒙原生開(kāi)源庫(kù)“ViewPool”在OpenHarmony社區(qū)正式上線。這個(gè)開(kāi)發(fā)庫(kù)是基于OpenHarmony技術(shù)孵化的成果,充分發(fā)揮了平臺(tái)的技術(shù)特性,同時(shí)融入了伙伴在應(yīng)用
    的頭像 發(fā)表于 12-20 14:44 ?615次閱讀