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

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

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

鴻蒙ArkUI-X跨平臺(tái)開發(fā):【bility開發(fā)說(shuō)明(Android平臺(tái))】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-21 10:54 ? 次閱讀

通過(guò)Stage模型開發(fā)Android端應(yīng)用指南

簡(jiǎn)介

本文介紹將ArkUI框架擴(kuò)展到Android平臺(tái)所需要的必要的類及其使用說(shuō)明,開發(fā)者基于OpenHarmony,可復(fù)用大部分的應(yīng)用代碼(生命周期等)并可以部署到Android平臺(tái),降低跨平臺(tái)應(yīng)用開發(fā)成本。

AndroidStudio配置

使用AndroidStudio所創(chuàng)建Android工程的PackageName需要與OpenHarmony工程的BundleName一致。

注: AndroidStudio:Android應(yīng)用的開發(fā)工具。

ArkUI-X和Android平臺(tái)集成所用關(guān)鍵類

開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

應(yīng)用工程Android邏輯部分的StageApplication

應(yīng)用需要繼承arkui_android_adapter.jar包所提供的StageApplication。StageApplication用于初始化資源路徑以及加載配置信息,例如:

package com.example.myapplication;
import ohos.stage.ability.adapter.StageApplication;

public class HiStageApplication extends StageApplication {

}

應(yīng)用工程Android邏輯部分的StageActivity

Activity需要繼承arkui_android_adapter.jar包所提供的StageActivity,StageActivity主要功能是將Android中Activity的生命周期與OpenHarmony中Ability的生命周期進(jìn)行映射,例如:

package com.example.myapplication;
import ohos.stage.ability.adapter.StageActivity;

public class EntryMainAbilityActivity extends StageActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.setInstanceName("com.example.myapplication:entry:MainAbility:");
        super.onCreate(savedInstanceState);
    }
}

為了將Activity和ability進(jìn)行關(guān)聯(lián),需要重寫StageActivity中的onCreate事件,在super.onCreate(savedInstanceState)之前設(shè)置instanceName,規(guī)則如下:

bundleName:moduleName:abilityName:

其中bundleName的值來(lái)自于OpenHarmony應(yīng)用中app.json5配置文件,moduleName、abilityName的值來(lái)自于OpenHarmony應(yīng)用中的module.json5配置文件。

Ability與Activity對(duì)應(yīng)規(guī)則

Android端應(yīng)用內(nèi)的Activity的packageName需要與Ability的bundleName一致。

Android端應(yīng)用內(nèi)的Activity的activityName組成規(guī)則:Ability的moduleName + Ability的abilityName + “Activity”。

示例如圖: stage_android

StageApplication初始化支持以下三種方式

通過(guò)繼承StageApplication的方式進(jìn)行初始化

import ohos.stage.ability.adapter.StageApplication;

public class HiStageApplication extends StageApplication {
    @Override
    public void onCreate() {
        super.onCreate();
    }
}

繼承Android原生Application方式,在onCreate方法中創(chuàng)建StageApplicationDelegate實(shí)例進(jìn)行初始化

import android.app.Application;
import ohos.stage.ability.adapter.StageApplicationDelegate;

public class HiStageApplication extends Application {
    private StageApplicationDelegate appDelegate_ = null;

    @Override
    public void onCreate() {
        super.onCreate();
        appDelegate_ = new StageApplicationDelegate();
        appDelegate_.initApplication(this);
    }
}

在Activity中創(chuàng)建StageApplicationDelegate實(shí)例進(jìn)行初始化

import android.app.Activity;
import ohos.stage.ability.adapter.StageApplicationDelegate;

public class EntryEntryAbilityActivity extends Activity {

    private StageApplicationDelegate appDelegate_ = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        appDelegate_ = new StageApplicationDelegate();
        appDelegate_.initApplication(this.getApplication());
        super.onCreate(savedInstanceState);
    }
}

通過(guò)原生Activity拉起Ability并傳遞參數(shù)

使用原生Activity拉起Ability時(shí),需使用原生應(yīng)用的startActivity方法,參數(shù)的傳遞需要通過(guò)Intent中的putExtra()進(jìn)行設(shè)置,規(guī)則如下:

key值為params
value為json格式

{
    "params":[
        {
            "key":鍵,
            "type":參數(shù)類型值,
            "value":值
        },
        {
            ...
        }
    ]
}

支持的參數(shù)類型列表

參數(shù)類型HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿參數(shù)類型值
boolean1
int5
double9
string10

搜狗高速瀏覽器截圖20240326151547.png

示例代碼

public class EntryEntryAbilityActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = new Intent();
        intent.setClass(this, EntryEntryAbilityTwoActivity.class);
        intent.putExtra("params",
                "{"params":[{"key":"bool","type":1,"value":"true"}," +
                "{"key":"double","type":9,"value":"2.3"}," +
                "{"key":"int","type":5,"value":"2"}," +
                "{"key":"string","type":10,"value":"test"}]}");
        startActivity(intent);
    }
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3903

    瀏覽量

    126605
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3029

    瀏覽量

    48345
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42481
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3546

    瀏覽量

    15734
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Android、iOS、鴻蒙平臺(tái)框架ArkUI-X

    Android、iOS、鴻蒙多個(gè)平臺(tái)上提供生動(dòng)而流暢的用戶界面體驗(yàn)。 一、配套關(guān)系 表1 版本軟件和平臺(tái)配套關(guān)系 目標(biāo)平臺(tái) 項(xiàng)目編譯使用O
    的頭像 發(fā)表于 01-31 14:52 ?1550次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>Android</b>、iOS、<b class='flag-5'>鴻蒙</b>多<b class='flag-5'>平臺(tái)</b>框架<b class='flag-5'>ArkUI-X</b>

    鴻蒙開發(fā)學(xué)習(xí):初探【ArkUI-X

    **簡(jiǎn)單來(lái)說(shuō),ArkTS + ArkUI-X 對(duì)標(biāo)的框架為 flutter,一次代碼,編譯為 native 全平臺(tái)運(yùn)行**
    的頭像 發(fā)表于 05-13 15:58 ?800次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>學(xué)習(xí):初探【<b class='flag-5'>ArkUI-X</b>】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項(xiàng)目平臺(tái)應(yīng)用開發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺(tái)運(yùn)行,用于構(gòu)
    的頭像 發(fā)表于 05-21 17:39 ?1130次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開發(fā)</b>:【命令行工具(ACE Tools)】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【SDK目錄結(jié)構(gòu)介紹】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如Android和iOS
    的頭像 發(fā)表于 05-20 16:28 ?669次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開發(fā)</b>:【SDK目錄結(jié)構(gòu)介紹】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【bility開發(fā)說(shuō)明(iOS端)】

    本文介紹將ArkUI框架擴(kuò)展到iOS平臺(tái)所需要的必要類及其使用說(shuō)明開發(fā)者基于OpenHarmony,可復(fù)用大部分的應(yīng)用代碼(生命周期等)并可以部署到iOS
    的頭像 發(fā)表于 05-21 14:35 ?675次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>bility</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>說(shuō)明</b>(iOS端)】

    鴻蒙ArkUI-X語(yǔ)言調(diào)用說(shuō)明:【平臺(tái)橋接開發(fā)指南(Android)】

    平臺(tái)橋接用于客戶端(ArkUI)和平臺(tái)Android或iOS)之間傳遞消息,即用于ArkUI平臺(tái)
    的頭像 發(fā)表于 05-25 16:26 ?438次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b>語(yǔ)言調(diào)用<b class='flag-5'>說(shuō)明</b>:【<b class='flag-5'>平臺(tái)</b>橋接<b class='flag-5'>開發(fā)</b>指南(<b class='flag-5'>Android</b>)】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI平臺(tái)設(shè)計(jì)總體說(shuō)明

    本文檔描述ArkUI開發(fā)框架平臺(tái)運(yùn)行能力相關(guān)的總體技術(shù)方案。
    的頭像 發(fā)表于 05-24 15:41 ?1250次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI-X</b>基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>設(shè)計(jì)總體<b class='flag-5'>說(shuō)明</b>】

    ArkUI-X開發(fā)指南:【SDK配置和構(gòu)建說(shuō)明

    ArkUI-X SDK是ArkUI-X開源項(xiàng)目的編譯產(chǎn)物,可將ArkUI-X SDK集成到現(xiàn)有Android和iOS應(yīng)用工程中,使開發(fā)者基于
    的頭像 發(fā)表于 05-25 16:48 ?2230次閱讀
    <b class='flag-5'>ArkUI-X</b><b class='flag-5'>開發(fā)</b>指南:【SDK配置和構(gòu)建<b class='flag-5'>說(shuō)明</b>】

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開源!

    OpenHarmony項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)(以下簡(jiǎn)稱“TSC”)-平臺(tái)應(yīng)用開發(fā)框架TSG所孵化項(xiàng)目 —— ArkUI-X,近期已正式開源 ,開發(fā)
    發(fā)表于 08-11 16:10

    鴻蒙平臺(tái)框架:【ArkUi-X】創(chuàng)建工程

    鴻蒙推出了鴻ArkUi-X 框架所以就寫個(gè)文章分享一下
    的頭像 發(fā)表于 05-13 17:48 ?620次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>框架:【<b class='flag-5'>ArkUi-X</b>】創(chuàng)建工程

    鴻蒙ArkUI-X平臺(tái)技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI平臺(tái)應(yīng)用開發(fā)的初學(xué)者。通過(guò)開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉ArkUI
    的頭像 發(fā)表于 05-24 10:40 ?306次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X平臺(tái)技術(shù):【開發(fā)初體驗(yàn)】

    在DevEco Studio中導(dǎo)入ArkUI-X Sample,快速創(chuàng)建平臺(tái)工程。
    的頭像 發(fā)表于 05-17 15:54 ?416次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>技術(shù):【<b class='flag-5'>開發(fā)</b>初體驗(yàn)】

    鴻蒙ArkUI-X平臺(tái)開發(fā):【 應(yīng)用工程結(jié)構(gòu)說(shuō)明

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如Android和iOS
    的頭像 發(fā)表于 05-19 21:05 ?377次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開發(fā)</b>:【 應(yīng)用工程結(jié)構(gòu)<b class='flag-5'>說(shuō)明</b>】

    鴻蒙ArkUI-X語(yǔ)言調(diào)用說(shuō)明平臺(tái)差異化【Android、ios動(dòng)態(tài)化】

    ArkUI-X支持動(dòng)態(tài)化,使用者可以根據(jù)自己需要?jiǎng)討B(tài)發(fā)布平臺(tái)內(nèi)容,從而使平臺(tái)部分和宿主應(yīng)用進(jìn)行解耦。
    的頭像 發(fā)表于 05-23 14:38 ?471次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b>語(yǔ)言調(diào)用<b class='flag-5'>說(shuō)明</b>:<b class='flag-5'>平臺(tái)</b>差異化【<b class='flag-5'>Android</b>、ios動(dòng)態(tài)化】

    鴻蒙ArkUI-X框架開發(fā):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開發(fā)的初學(xué)者。通過(guò)環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解平臺(tái)項(xiàng)目開發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?302次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>框架<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】