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

如何編譯OpenHarmony SDK API

系統 OpenHarmony
OpenHarmony SDK是開源的,可以獲得代碼,因此可以在SDK里根據需要新增、修改一些代碼,然后編譯出定制的OpenHarmony SDK。也可以獲得最新的代碼,編譯出最新版本的OpenHarmony SDK,如 OpenHarmony SDK API 10 beta版本,來體驗新版本。本文就介紹下如何編譯OpenHarmony SDK API。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

在OpenHarmony應用開發時,少不了和OpenHarmony SDK打交道。OpenHarmony SDK包含支持的編程語言(即ArkTS、JS、Native)的API和構建工具,界面效果預覽器Previewer和toolchains工具鏈。對于HarmonyOS SDK,在OpenHarmony SDK的基礎上,增加了simulator設備模擬器、系統鏡像等,后續預計會豐富hms core相關的能力,如賬戶服務、地圖服務等。

OpenHarmony SDK是開源的,可以獲得代碼,因此可以在SDK里根據需要新增、修改一些代碼,然后編譯出定制的OpenHarmony SDK。也可以獲得最新的代碼,編譯出最新版本的OpenHarmony SDK,如 OpenHarmony SDK API 10 beta版本,來體驗新版本。本文就介紹下如何編譯OpenHarmony SDK API。

一、環境準備

可以參考官網資料站點設備開發文檔來準備開發環境、獲取代碼。

1、安裝庫和工具集

使用如下apt命令安裝后續操作所需的庫和工具:

sudo apt update
sudo apt install binutils binutils-dev git git-lfs gnupg 
sudo apt install flex bison gperf build-essential zip curl 
sudo apt install zlib1g-dev gcc-multilib g++-multilib 
sudo apt install gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 
sudo apt install lib32ncurses5-dev x11proto-core-dev libx11-dev 
sudo apt install lib32z1-dev ccache libgl1-mesa-dev libxml2-utils 
sudo apt install xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip 
sudo apt install ruby genext2fs device-tree-compiler make libffi-dev 
sudo apt install e2fsprogs pkg-config perl openssl libssl-dev libelf-dev 
sudo apt install libdwarf-dev u-boot-tools mtd-utils cpio doxygen 
sudo apt install liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools 
sudo apt install mtools default-jre default-jdk libncurses5 apt-utils 
sudo apt install wget scons python3.8-distutils tar rsync git-core 
sudo apt install libxml2-dev lib32z-dev grsync xxd libglib2.0-dev 
sudo apt install libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs 
sudo apt install squashfs-tools pcmciautils quota ppp libtinfo-dev 
sudo apt install libtinfo5 libncurses5-dev libncursesw5 libstdc++6 
sudo apt install gcc-arm-none-eabi vim ssh locales libxinerama-dev 
sudo apt install libxcursor-dev libxrandr-dev libxi-dev

2、將Python 3.8設置為默認Python版本

查看Python 3.8的位置:

which python3
# 或
which python3.8

將Python和Python3切換為Python 3.8:

#{Python 3.8 路徑}為上一步查看的Python 3.8的位置
sudo update-alternatives --install /usr/bin/python python {Python 3.8 路徑} 1    
sudo update-alternatives --install /usr/bin/python3 python3 {Python 3.8 路徑} 1

本文使用Ubuntu 22.04.2 LTS,預置的是python3.10,倒也沒有什么影響。Python版本3.8,3.10都可以。但是,對于其他軟件,還是盡量和資料中提交到的軟件版本保持一致,否則可能會導致一些意外。

3、將Ubuntu Shell環境修改為bash

執行如下命令,確認輸出結果為bash。

ls -l /bin/sh

如果輸出結果不是bash,需要將Ubuntu shell修改為bash。打開終端工具,執行如下命令,然后選擇No,將Ubuntu shell由dash修改為bash。

sudo dpkg-reconfigure dash

4、獲取源碼

記錄下獲取最新代碼,也可以參考官方資料頁面:[獲取源碼](OpenAtom OpenHarmony)。

在Ubuntu環境下通過以下步驟獲取OpenHarmony源碼。

配置gitee用戶信息,替換下面的名稱和郵件。

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

執行如下命令安裝碼云repo工具。下述命令中的安裝路徑以"~/bin"為例,請用戶自行創建所需目錄。

mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo 
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

將repo添加到環境變量。

vim ~/.bashrc # 編輯環境變量
export PATH=~/bin:$PATH # 在環境變量的最后添加一行repo路徑信息
source ~/.bashrc # 應用環境變量

通過repo + https下載master分支最新代碼:

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

5、安裝編譯器及二進制工具

在源碼根目錄下執行prebuilts腳本,安裝編譯器及二進制工具。

執行成功后,會在源碼根目錄同級目錄下生成一個目錄openharmony_prebuilts,保存下載的工具軟件壓縮包;會在源碼根目錄下生成一個目錄prebuilts,有

bash build/prebuilts_download.sh

執行成功后,會在源碼根目錄同級目錄下生成一個目錄openharmony_prebuilts,保存下載的工具軟件壓縮包;會在源碼根目錄下生成一個目錄prebuilts,包含解壓后的各種工具,如下:

zhushy@DESKTOP-RPE9R4O:~/openharmony/prebuilts$ tree -L 2
.
├── ark_tools
│   └── ark_js_prebuilts
├── build-tools
│   ├── common
│   └── linux-x86
├── clang
│   └── ohos
├── cmake
│   ├── linux-x86
│   └── windows-x86
├── develop_tools
   ├── bpftool
│   └── pahole
├── gcc
│   └── linux-x86
├── mingw-w64
│   └── ohos
├── python
│   └── linux-x86
└── rustc
    ├── linux-x86_64
    ├── rust-1.68.0-dev-x86_64-unknown-linux-gnu
    ├── rust-std-1.68.0-dev-aarch64-linux-ohos
    └── rust-std-1.68.0-dev-armv7-linux-ohos

二、編譯full-SDK

在官網資料編譯full-SDK內,提到編譯SDK需要執行一些命令來需要的軟件包:

yes y | sudo apt install libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
rm -rf prebuilts/clang/ohos/darwin-x86_64/clang-480513
rm -rf prebuilts/clang/ohos/windows-x86_64/clang-480513
rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513
bash build/prebuilts_download.sh -ndk
prebuilts_download.sh apt-get update -qqy
apt-get install doxygen -y --force-yes

上述命令中,實際運行時,我的環境上不存在需要刪除的文件目錄clang-480513。執行prebuilts_download.sh時,也不需要指定-ndk參數。

執行完畢上述命令,就可以構建OpenHarmony Full SDK了。

./build.sh --product-name ohos-sdk --ccache

執行成功后,OpenHarmony SDK會輸出到out/sdk/packages/ohos-sdk/:

zhushy@DESKTOP-RPE9R4O:~/openharmony$ tree out/sdk/packages/ohos-sdk/ -L 2
out/sdk/packages/ohos-sdk/
├── linux
│   ├── ets-linux-x64-4.0.9.5-Beta2.zip
│   ├── js-linux-x64-4.0.9.5-Beta2.zip
│   ├── native-linux-x64-4.0.9.5-Beta2.zip
│   ├── previewer-linux-x64-4.0.9.5-Beta2.zip
│   └── toolchains-linux-x64-4.0.9.5-Beta2.zip
└── windows
    ├── ets-windows-x64-4.0.9.5-Beta2.zip
    ├── js-windows-x64-4.0.9.5-Beta2.zip
    ├── native-windows-x64-4.0.9.5-Beta2.zip
    ├── previewer-windows-x64-4.0.9.5-Beta2.zip
    └── toolchains-windows-x64-4.0.9.5-Beta2.zip

編譯輸出OpenHarmony SDK后,就可以替換SDK來使用了。

三、關于OpenHarmony SDK的一些其他知識

1、ohos-sdk模塊配置

上文簡單介紹過,OpenHarmony SDK包含ets、js、native、previewer、toolchains等模塊,這些模塊定義在文件ohos_sdk_description_std.json。這個文件是個json數組,每個元素是個對象,包含install_dir、module_label和target_os,片段如下:

[
    {
        "install_dir": "toolchains",
        "module_label": "http://developtools/syscap_codec:syscap_tool_bin",
        "target_os": [
            "linux",
            "windows",
            "darwin"
        ]
    },
   ......
    {
        "install_dir": "js/api",
        "module_label": "http://interface/sdk-js:ohos_declaration_common",
        "target_os": [
            "windows",
            "linux",
            "darwin"
        ]
    },
   ......
    {
        "install_dir": "ets/build-tools/ets-loader/bin/ark/build-mac/bin",
        "module_label": "http://arkcompiler/ets_frontend/es2panda:es2abc_build_mac_ets",
        "target_os": [
            "darwin"
        ]
    },
 .....   
]

2、如何編譯Public SDK

上文編譯的是Full SDK,如果只想編譯Public SDK,可以執行如下命令:

./build.sh --product-name ohos-sdk --gn-args sdk_build_public=true

其中gn參數:sdk_build_public定義在文件ohos_var.gni。

declare_args() {
  sdk_build_public = false
}

該參數在文件BUILD.gn中使用:

if (sdk_build_public) {
  public_sdk_config_parser = "http://build/ohos/sdk/parse_public_sdk.py"
  ohos_sdk_pub_description_file =
      "http://out/sdk-public/ohos_sdk_pub_description_std.json"
 ......
}

3、如何區分Public SDK和Full SDK

Public-SDK是提供給應用開發的工具包,跟隨DevEco Studio下載,不包含系統應用所需要的高權限API。Full-SDK是提供給OEM廠商開發應用的工具包,不能隨DevEco Studio下載,包含了系統應用所需要的高權限API。Public-SDK不支持開發者使用所有的系統API,包括animator組件、xcomponent組件、@ohos.application.abilityManager.d.ts、@ohos.application.formInfo.d.ts、@ohos.bluetooth.d.ts等,如工程必須依賴于系統API,需要替換為Full SDK。如果SDK名稱上不能區分,可以查看ets\api目錄下是否包含文件@ohos.application.abilityManager.d.ts,包含則為Full SDK,否則為Public SDK。

高權限API也可以從注釋中可以看出來,帶@systemapi標記的就是高權限的系統接口。

/**
   * Updates the configuration by modifying the configuration.
   *
   * @permission ohos.permission.UPDATE_CONFIGURATION
   * @param { Configuration } config - Indicates the new configuration.
   * @param { AsyncCallback<void> } callback - The specified callback method.
   * @syscap SystemCapability.Ability.AbilityRuntime.Core
   * @systemapi
   * @since 8
   * @deprecated since 9
   * @useinstead ohos.app.ability.abilityManager/abilityManager#updateConfiguration
   */
  function updateConfiguration(config: Configuration, callback: AsyncCallback<void>): void;

4、Public SDK和Full SDK在IDE中的使用

如果需要在DevEco Studio中使用編譯的SDK,需要參考替換SDK相關文檔完成替換。在應用工程級build-profile.json5文件中,設置SDK版本,如下圖所示,然后點擊該文件右上角的Sync Now進行同步,即可看到左側的External Libraries的ArkTS版本發生了變化。

如何編譯OpenHarmony SDK API-開源基礎軟件社區如何編譯OpenHarmony SDK API-開源基礎軟件社區

如果使用的SDK不對,會無法導入期望的模塊,如下圖:

如何編譯OpenHarmony SDK API-開源基礎軟件社區如何編譯OpenHarmony SDK API-開源基礎軟件社區

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-07-18 14:00:00

鴻蒙Sample案例

2023-02-09 15:28:19

鴻蒙編譯速度

2024-07-26 16:39:33

鴻蒙系統開源構建系統

2022-03-29 10:04:44

APIHarmony文件管理

2023-12-11 17:30:52

預安裝應用鴻蒙Launcher

2022-01-11 15:41:18

鴻蒙HarmonyOS應用

2023-08-11 14:06:58

鴻蒙Windows

2023-12-11 17:26:21

Launcher鴻蒙預安裝應用

2022-05-07 16:13:59

DevEcoTool鴻蒙

2021-12-02 10:05:01

鴻蒙HarmonyOS應用

2022-05-27 15:04:53

鴻蒙操作系統

2022-05-11 15:08:52

驅動開發系統移植

2022-02-25 15:08:06

DevEco開發OpenHarmon鴻蒙

2021-06-28 09:38:50

鴻蒙HarmonyOS應用

2022-04-25 09:10:50

RK3568鴻蒙

2022-12-06 15:39:16

鴻蒙主干代碼

2023-02-01 16:28:30

Linux內核鴻蒙

2011-05-27 12:51:44

Android API

2022-09-22 15:29:17

public-SDK應用開發

2011-06-16 09:10:49

Qt Symbian Nokia
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 特一级毛片 | 国产激情福利 | 色成人免费网站 | 久久精品欧美一区二区三区不卡 | 亚洲精品麻豆 | 激情久久久久 | 欧美亚洲国语精品一区二区 | 精品国产91乱码一区二区三区 | 久久综合伊人 | 欧美日韩综合视频 | 99精品免费| 岛国av免费在线观看 | 午夜成人免费视频 | 特级黄一级播放 | 99久久久国产精品 | 最新黄色在线观看 | 欧美成人不卡 | 国产97色 | 久久国产精品久久久久久 | 午夜精品在线观看 | 久热精品在线观看视频 | 福利社午夜影院 | 欧产日产国产精品v | 亚洲一区二区久久 | 成人精品福利 | 久草.com | 成人福利网 | 国产在线二区 | 久久久99国产精品免费 | 精品综合久久 | 久久亚洲一区二区三区四区 | 四虎影院免费在线 | 欧美精品一区在线 | 在线中文字幕亚洲 | 亚洲国产69 | 特黄视频 | 一区中文字幕 | 国产精品视频一二三区 | 韩三级在线观看 | 欧美日韩在线精品 | 日韩精品在线视频 |