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

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

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

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

鴻蒙開發(fā)學習:【appspawn應(yīng)用孵化組件】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-18 22:01 ? 次閱讀

功能簡介

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

基本概念

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

表 1 字段說明

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

約束與限制

僅限標準系統(tǒng)下使用

開發(fā)指導

場景介紹

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

    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)用進程控制

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

    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());
    
  • 冷啟動
    支持通過aa命令冷啟動應(yīng)用。

    param set startup.appspawn.cold.boot 1 // 打開冷啟動開關(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)用獨立運行于自身沙盒環(huán)境。應(yīng)用沙盒中,只保留應(yīng)用依賴的庫或文件,同時,應(yīng)用之間數(shù)據(jù)的也進行隔離。

接口說明

接口定義路徑: "/base/startup/appspawn/interfaces/innerkits/include/client_socket.h",接口說明參見表2。

表 2 接口說明

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

開發(fā)步驟

沙盒配置說明:

{
      "common" : [{                                           // 應(yīng)用沙盒通用掛載項
          "top-sandbox-switch": "ON",                         // 沙盒總開關(guān) ON: 打開, 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 不檢查當前項掛載結(jié)果, true: 檢查當前項掛載結(jié)果
                  }
              ],
              "symbol-links" : [{                             // link 的目錄項
                      "target-name" : "/system/bin",          // link 的源目錄
                      "link-name" : "/bin",                   // 鏈接名稱
                      "check-action-status": "false"
                  }
              ]
          }],
      // 應(yīng)用獨有配置參考
      "individual" : [{                                        // 個別應(yī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" : []
          }]
      }]
  }

參考沙盒配置說明,修改配置文件。

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

表 3 沙盒配置文件解釋

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

開發(fā)實例

以launcher應(yīng)用新增獨有配置應(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" : []
}],

常見問題

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

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

解決方法

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

  2. 確認冷啟動命令是否正確。

    審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2310

    瀏覽量

    42743
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)就業(yè)前景到底怎么樣?

    鴻蒙, 作為華為自主研發(fā)的基于微內(nèi)核的下一代操作系統(tǒng),正在逐漸走進人們的視野 。隨著鴻蒙系統(tǒng)的不斷發(fā)展和完善,越來越多的人開始關(guān)注鴻蒙開發(fā)這一領(lǐng)域,想要了解
    發(fā)表于 05-09 17:37

    鴻蒙OS開發(fā)學習:【尺寸適配實現(xiàn)】

    鴻蒙開發(fā)中,尺寸適配是一個重要的概念,它可以幫助我們在不同屏幕尺寸的設(shè)備上正確顯示和布局我們的應(yīng)用程序。本文將介紹如何在鴻蒙開發(fā)中實現(xiàn)尺寸適配的方法。
    的頭像 發(fā)表于 04-10 16:05 ?1677次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b><b class='flag-5'>學習</b>:【尺寸適配實現(xiàn)】

    鴻蒙OS開發(fā)實例:【組件化模式】

    組件化一直是移動端比較流行的開發(fā)方式,有著編譯運行快,業(yè)務(wù)邏輯分明,任務(wù)劃分清晰等優(yōu)點,針對Android端的組件化;與Android端的組件化相比,HarmonyOS的
    的頭像 發(fā)表于 04-07 17:44 ?593次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b>實例:【<b class='flag-5'>組件</b>化模式】

    鴻蒙開發(fā)學習:【媒體引擎組件

    HiStreamer是一個輕量級的媒體引擎組件,提供播放、錄制等場景的媒體數(shù)據(jù)流水線處理。
    的頭像 發(fā)表于 03-11 17:16 ?472次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>學習</b>:【媒體引擎<b class='flag-5'>組件</b>】

    鴻蒙實戰(zhàn)項目開發(fā):【短信服務(wù)】

    ://gitee.com/openharmony/applications_app_samples.git git pull origin master ? 最后呢,很多開發(fā)朋友不知道需要學習那些鴻蒙技術(shù)?
    發(fā)表于 03-03 21:29

    學習鴻蒙背后的價值?星河版開放如何學習

    需要有更多的鴻蒙人才;鴻蒙開發(fā)工程師也將會迎來爆發(fā)式的增長! 所以學習鴻蒙勢在必行,而大部分人都能適合學
    發(fā)表于 02-22 20:55

    未來從事鴻蒙開發(fā)?是否會有前景?

    應(yīng)屆畢業(yè)生:有一定Java編程基礎(chǔ),系統(tǒng)學習鴻蒙應(yīng)用開發(fā) 想轉(zhuǎn)行/跨行人員:求職、轉(zhuǎn)行,希望趕上時代風口并彎道超車 IT相關(guān)工作者:工作遇上瓶頸,想提升技能,升職加薪 鴻蒙
    發(fā)表于 02-19 21:31

    使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠商都希望將自己的應(yīng)用移植到鴻蒙平臺上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發(fā)鴻蒙原生應(yīng)用,也可將現(xiàn)有的
    的頭像 發(fā)表于 02-02 16:09 ?823次閱讀
    使用 Taro <b class='flag-5'>開發(fā)</b><b class='flag-5'>鴻蒙</b>原生應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>開發(fā)</b>指南

    鴻蒙ArkUI開發(fā)-Video組件的使用

    以視頻功能為例,在應(yīng)用開發(fā)過程中,我們需要通過ArkUI提供的Video組件為應(yīng)用增加基礎(chǔ)的視頻播放功能。借助Video組件,我們可以實現(xiàn)視頻的播放功能并控制其播放狀態(tài)。常見的視頻播放場景包括觀看網(wǎng)絡(luò)上的較為流行的短視頻,也包括
    的頭像 發(fā)表于 01-23 16:59 ?1264次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI<b class='flag-5'>開發(fā)</b>-Video<b class='flag-5'>組件</b>的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用
    的頭像 發(fā)表于 01-19 16:01 ?1771次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI<b class='flag-5'>開發(fā)</b>-Tabs<b class='flag-5'>組件</b>的使用

    鴻蒙開發(fā)-ArkUI 組件基礎(chǔ)

    1 組件介紹 組件(Component)是界面搭建與顯示的最小單位,HarmonyOS ArkUI聲明式開發(fā)范式為開發(fā)者提供了豐富多樣的UI組件
    發(fā)表于 01-17 19:31

    鴻蒙開發(fā)OpenHarmony組件復用案例

    ) } }, item => item) } } } 本文主要是對鴻蒙開發(fā)基礎(chǔ)當中的OpenHarmony技術(shù)組件復用示例, 更多鴻蒙開發(fā)
    發(fā)表于 01-15 17:37

    鴻蒙開發(fā)基礎(chǔ)-Web組件之cookie操作

    }) ... } ... 本文章主要是對鴻蒙開發(fā)當中ArkTS語言的基礎(chǔ)應(yīng)用實戰(zhàn),Web組件里的cookie操作。更多的鴻蒙應(yīng)用開發(fā)
    發(fā)表于 01-14 21:31

    免費學習鴻蒙(HarmonyOS)開發(fā),一些地址分享

    國內(nèi)一流高校。通過鴻蒙班的設(shè)立,高校可以為學生提供專業(yè)的鴻蒙OS學習環(huán)境和豐富的實踐機會,培養(yǎng)出更多的鴻蒙開發(fā)人才,為
    發(fā)表于 01-12 20:48

    鴻蒙基礎(chǔ)開發(fā)實戰(zhàn)-(ArkTS)像素轉(zhuǎn)換

    的使用。通過像素轉(zhuǎn)換案例,向開發(fā)者講解了如何使用像素單位設(shè)置組件的尺寸、字體的大小以及不同像素單位之間的轉(zhuǎn)換方法。更多鴻蒙4.0的學習,可以前往主頁
    發(fā)表于 01-11 16:53