0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙ArkUI-X跨平台开发:【bility开发说明(Android平台)】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-21 10:54 次阅读

通过Stage模型开发Android端应用指南

简介

本文介绍将ArkUI框架扩展到Android平台所需要的必要的类及其使用说明,开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到Android平台,降低跨平台应用开发成本。

AndroidStudio配置

使用AndroidStudio所创建Android工程的PackageName需要与OpenHarmony工程的BundleName一致。

注: AndroidStudio:Android应用的开发工具。

ArkUI-X和Android平台集成所用关键类

开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

应用工程Android逻辑部分的StageApplication

应用需要继承arkui_android_adapter.jar包所提供的StageApplication。StageApplication用于初始化资源路径以及加载配置信息,例如:

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

public class HiStageApplication extends StageApplication {

}

应用工程Android逻辑部分的StageActivity

Activity需要继承arkui_android_adapter.jar包所提供的StageActivity,StageActivity主要功能是将Android中Activity的生命周期与OpenHarmony中Ability的生命周期进行映射,例如:

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进行关联,需要重写StageActivity中的onCreate事件,在super.onCreate(savedInstanceState)之前设置instanceName,规则如下:

bundleName:moduleName:abilityName:

其中bundleName的值来自于OpenHarmony应用中app.json5配置文件,moduleName、abilityName的值来自于OpenHarmony应用中的module.json5配置文件。

Ability与Activity对应规则

Android端应用内的Activity的packageName需要与Ability的bundleName一致。

Android端应用内的Activity的activityName组成规则:Ability的moduleName + Ability的abilityName + “Activity”。

示例如图: stage_android

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

通过继承StageApplication的方式进行初始化

import ohos.stage.ability.adapter.StageApplication;

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

继承Android原生Application方式,在onCreate方法中创建StageApplicationDelegate实例进行初始化

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中创建StageApplicationDelegate实例进行初始化

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);
    }
}

通过原生Activity拉起Ability并传递参数

使用原生Activity拉起Ability时,需使用原生应用的startActivity方法,参数的传递需要通过Intent中的putExtra()进行设置,规则如下:

key值为params
value为json格式

{
    "params":[
        {
            "key":键,
            "type":参数类型值,
            "value":值
        },
        {
            ...
        }
    ]
}

支持的参数类型列表

参数类型HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿参数类型值
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);
    }
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3934

    浏览量

    127315
  • 模型
    +关注

    关注

    1

    文章

    3217

    浏览量

    48801
  • 鸿蒙
    +关注

    关注

    57

    文章

    2335

    浏览量

    42794
  • OpenHarmony
    +关注

    关注

    25

    文章

    3710

    浏览量

    16243
收藏 人收藏

    评论

    相关推荐

    Android、iOS、鸿蒙平台框架ArkUI-X

    Android、iOS、鸿蒙多个平台上提供生动而流畅的用户界面体验。 一、配套关系 表1 版本软件和平台配套关系 目标平台 项目编译使用O
    的头像 发表于 01-31 14:52 1774次阅读
    <b class='flag-5'>跨</b><b class='flag-5'>Android</b>、iOS、<b class='flag-5'>鸿蒙</b>多<b class='flag-5'>平台</b>框架<b class='flag-5'>ArkUI-X</b>

    鸿蒙开发学习:初探【ArkUI-X

    **简单来说,ArkTS + ArkUI-X 对标的框架为 flutter,一次代码,编译为 native 全平台运行**
    的头像 发表于 05-13 15:58 1020次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>学习:初探【<b class='flag-5'>ArkUI-X</b>】

    鸿蒙ArkUI-X平台开发:【命令行工具(ACE Tools)】

    ACE Tools是一套为ArkUI-X项目平台应用开发者提供的命令行工具,支持在Windows/Ubuntu/macOS平台运行,用于构
    的头像 发表于 05-21 17:39 1723次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>开发</b>:【命令行工具(ACE Tools)】

    鸿蒙ArkUI-X平台开发:【SDK目录结构介绍】

    本文档配套ArkUI-X,将OpenHarmony ArkUI开发框架扩展到不同的OS平台,比如Android和iOS
    的头像 发表于 05-20 16:28 799次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>开发</b>:【SDK目录结构介绍】

    鸿蒙ArkUI-X平台开发:【bility开发说明(iOS端)】

    本文介绍将ArkUI框架扩展到iOS平台所需要的必要类及其使用说明开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到iOS
    的头像 发表于 05-21 14:35 874次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>开发</b>:【<b class='flag-5'>bility</b><b class='flag-5'>开发</b><b class='flag-5'>说明</b>(iOS端)】

    鸿蒙ArkUI-X语言调用说明:【平台桥接开发指南(Android)】

    平台桥接用于客户端(ArkUI)和平台Android或iOS)之间传递消息,即用于ArkUI平台
    的头像 发表于 05-25 16:26 657次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b>语言调用<b class='flag-5'>说明</b>:【<b class='flag-5'>平台</b>桥接<b class='flag-5'>开发</b>指南(<b class='flag-5'>Android</b>)】

    鸿蒙开发ArkUI-X基础知识:【ArkUI平台设计总体说明

    本文档描述ArkUI开发框架平台运行能力相关的总体技术方案。
    的头像 发表于 05-24 15:41 1535次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>ArkUI-X</b>基础知识:【<b class='flag-5'>ArkUI</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>设计总体<b class='flag-5'>说明</b>】

    ArkUI-X开发指南:【SDK配置和构建说明

    ArkUI-X SDK是ArkUI-X开源项目的编译产物,可将ArkUI-X SDK集成到现有Android和iOS应用工程中,使开发者基于
    的头像 发表于 05-25 16:48 2589次阅读
    <b class='flag-5'>ArkUI-X</b><b class='flag-5'>开发</b>指南:【SDK配置和构建<b class='flag-5'>说明</b>】

    资讯速递 | ArkUI-X 预览版已正式开源!

    OpenHarmony项目群技术指导委员会(以下简称“TSC”)-平台应用开发框架TSG所孵化项目 —— ArkUI-X,近期已正式开源 ,开发
    发表于 08-11 16:10

    鸿蒙平台框架:【ArkUi-X】创建工程

    鸿蒙推出了鸿ArkUi-X 框架所以就写个文章分享一下
    的头像 发表于 05-13 17:48 930次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>框架:【<b class='flag-5'>ArkUi-X</b>】创建工程

    鸿蒙ArkUI-X平台技术:【开发准备】

    本文档适用于ArkUI平台应用开发的初学者。通过开发环境搭建、应用工程创建、编译和运行,熟悉ArkUI
    的头像 发表于 05-24 10:40 464次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>技术:【<b class='flag-5'>开发</b>准备】

    鸿蒙ArkUI-X平台技术:【开发初体验】

    在DevEco Studio中导入ArkUI-X Sample,快速创建平台工程。
    的头像 发表于 05-17 15:54 624次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b>技术:【<b class='flag-5'>开发</b>初体验】

    鸿蒙ArkUI-X平台开发:【 应用工程结构说明

    本文档配套ArkUI-X,将OpenHarmony ArkUI开发框架扩展到不同的OS平台,比如Android和iOS
    的头像 发表于 05-19 21:05 581次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>开发</b>:【 应用工程结构<b class='flag-5'>说明</b>】

    鸿蒙ArkUI-X语言调用说明平台差异化【Android、ios动态化】

    ArkUI-X支持动态化,使用者可以根据自己需要动态发布平台内容,从而使平台部分和宿主应用进行解耦。
    的头像 发表于 05-23 14:38 849次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b>语言调用<b class='flag-5'>说明</b>:<b class='flag-5'>平台</b>差异化【<b class='flag-5'>Android</b>、ios动态化】

    鸿蒙ArkUI-X框架开发:【开发准备】

    本文档适用于ArkUI-X框架开发的初学者。通过环境搭建、代码下载、代码编译、API扩展和使用,快速了解平台项目开发流程。
    的头像 发表于 05-23 21:02 455次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkUI-X</b>框架<b class='flag-5'>开发</b>:【<b class='flag-5'>开发</b>准备】