ArkUI-X在Android上使用Fragment开发指南

简介: 本文详细介绍如何将ArkUI框架的UIAbility跨平台部署至Android平台的Fragment,实现Android原生Fragment与ArkUI跨平台Fragment的混合开发。主要内容包括: 1. **Android工程配置**:确保PackageName与BundleName一致,并在gradle.properties中使能AndroidX,同时添加必要的依赖项。 2. **关键类集成**: - **StageApplication**:初始化资源路径及加载配置信息。

本文介绍将ArkUI框架的UIAbility跨平台部署至Android平台Fragment的使用说明,实现Android原生Fragment和ArkUI跨平台Fragment的混合开发,方便开发者灵活部署跨平台界面。

Android工程配置

Android工程的PackageName需要与OpenHarmony工程的BundleName一致;

请在Android应用的gradle.properties文件,使能AndroidX:

android.useAndroidX=true

请在Android应用的build.gradle文件增加AndroidX Fragment库的依赖项:

dependencies {
   
    implementation  'androidx.appcompat:appcompat:1.4.1'
}

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

应用工程Android逻辑部分的StageApplication

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

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

public class MyApplication extends StageApplication {
   

}

应用工程Android逻辑部分Fragment的宿主Activity

原生Activity需要继承androidx.fragment.app.FragmentActivity,绑定StageFragment示例如下:

package com.example.myapplication;

import android.os.Bundle;

import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;

import ohos.stage.ability.adapter.StageFragment;

public class MainActivity extends FragmentActivity {
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        StageFragment fragment = new HiFragment();
        FragmentManager manager = getSupportFragmentManager();
        manager.beginTransaction().add(R.id.frag,fragment).commit();
    }
}

其中activity_main.xml文件示例如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/frag"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    </LinearLayout>

</LinearLayout>

如果当前StageFragment对应的UIAbility涉及页面跳转,Activity需要重写onBackPressed方法,以便在手机back键点击或手势侧滑时逐级返回页面,否则会退出跨平台承载的Activity页面。

@Override
public void onBackPressed() {
   
    if(fragment.onBackPressed()) {
   
        super.onBackPressed();
    }
}

参数传递

StageFragment支持传递参数,参数的传递需要通过setArguments()进行设置,规则如下:

key值为params
value为json格式

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

        }
    ]
}

支持的参数类型列表
| 参数类型 | 参数类型值 |
| ------- | --------- |
| boolean | 1 |
| int | 5 |
| double | 9 |
| string | 10 |

示例:

StageFragment fragment = new HiFragment();
Bundle args = new Bundle();
args.putString("params", "{\"params\":[{\"key\":\"path\",\"type\":10,\"value\":\"local\"}]}");
fragment.setArguments(args);

应用工程Android逻辑部分的StageFragment

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

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

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

为了将Fragment和UIAbility进行关联,需要重写StageFragment中的onCreate事件,在super.onCreate(savedInstanceState)之前设置instanceName,规则如下:

bundleName:moduleName:abilityName:

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

相关文章
|
2月前
|
存储 IDE 开发工具
ArkUI-X跨平台框架接入指南
ArkUI-X是ArkUI的跨平台扩展框架,支持OpenHarmony、Android和iOS等多平台开发,未来还将增加更多平台支持。开发者只需一套主代码即可构建高性能、精美的多平台应用。使用DevEco Studio进行ArkUI-X开发时,需注意:仅支持ArkUI-X源码调试,各平台Native代码需用对应IDE处理;支持真机与模拟器调试;需配置相关SDK(如Android SDK)及环境变量(如ANDROID_HOME)。创建工程后,可通过DevEco Studio编译生成跨平台应用包,并在不同平台上运行查看效果。
230 64
|
1月前
|
API Android开发 开发者
ArkUI-X跨平台应用改造指南
随着HarmonyOS Next 5.0的发布,基于ArkTS开发的应用日益丰富,但也面临多平台适配的挑战。ArkUI-X框架提供“一次开发、三平台部署”解决方案,助力开发者高效实现跨平台应用。本文介绍如何通过ArkUI-X将HarmonyOS Next应用改造为支持Android与iOS的跨平台工程,涵盖产品定制层(products)、基础特性层(features)和公共能力层(commons)的设计与实现,优化代码复用与交互一致性。
140 52
|
1月前
|
JSON API Android开发
ArkUI-x跨平台Bridge最佳实践
ArkUI-X框架的bridge核心架构思想旨在实现ArkTS与平台原生语言(如Java、OC)之间的通信,支持业务层通信及跨平台API中转。bridge具备三种能力:多种桥接模式(JSON、二进制、线程并发)、数据与方法互传,以及“一码三平台”支持。通过分层架构设计,上层业务调用统一接口,下层实现平台差异化逻辑。FAQ部分提供了HMS API跨平台改造方案,包括动态import优化以避免crash问题,提升代码效率与整洁性。
130 44
|
29天前
|
移动开发 开发工具 Android开发
ArkUI-X跨平台技术落地-华为运动健康(二)
本文介绍了ArkUI-X在华为运动健康应用中的实践,涵盖原生与ArkUI界面参数传递、跨平台bridge桥接通信、平台差异化动态编译处理及性能表现。通过intent与putExtra()实现页面参数传递,定义5类bridge(数据、设备、页面跳转、日志、用户账户)提升跨平台与原生交互能力。采用编译前动态修改import技术屏蔽多端差异,确保业务代码复用。ArkUI-X跨平台页面达到60fps滑动帧率,包体积增加19MB,内存表现与原生持平。目前心脏健康模块已在iOS商用,Android版处于Beta阶段,未来将迁移更多高频模块至ArkUI-X框架,进一步提升开发效率与用户体验。
|
29天前
|
移动开发 JSON Android开发
ArkUI-X跨平台技术落地-华为运动健康(一)
华为运动健康App在多端开发中面临工作量大和体验不一致的问题,传统H5技术虽可跨平台但性能不足。为此,在鸿蒙NEXT版本开发中引入ArkUI-X框架,实现“一次开发、三端部署”。具体策略为:首页保留原生开发,二级页面(如心脏健康、睡眠)采用ArkUI-X技术复用代码,三级及低频页面仍使用H5。同时,通过抽象数据平台接口、bridge桥接底层能力差异等方式,解决多端数据与功能适配问题,大幅降低开发成本并提升用户体验一致性。架构设计上,新增独立跨平台Entry模块与健康Module,支持编译hap包供Android和iOS复用,形成高效跨平台解决方案。
|
1月前
|
Android开发
ArkUI-X与Android联动编译开发指南
本文介绍通过CLI工具链创建项目并生成联动编译脚本,实现Android Studio编译Android应用时自动编译ArkTS源码并将产物拷贝至Android工程。其功能包括手动配置ArkTS源码编译开关、编译module及文件输出路径。文章详细说明了编译配置方法,如设置`configBuildFlag`开关触发编译脚本、添加跨平台module(例:`moduleLists=entry,testmodule`)、修改Android的arkuix和systemRes输出路径。相关脚本位于`.arkui-x/android`目录。
|
28天前
|
开发框架 开发工具 Android开发
ArkUI-X应用工程结构说明
本文档介绍了ArkUI-X的跨平台开发框架,扩展OpenHarmony ArkUI至Android和iOS平台。开发者可复用大部分UI与逻辑代码,降低跨平台开发成本。文档详细说明了应用工程目录结构,包括跨平台模块配置(`arkui-x-config.json5`)以及ArkTS、ArkUI资源的编译构建流程。在Android平台上,资源通过`assets`管理;在iOS平台上,资源通过`Bundle Resources`管理。此外,还展示了Android与iOS应用工程的具体结构,涵盖编译后的字节码文件、资源文件及框架动态库等内容。
|
2月前
|
前端开发 API vr&ar
DevEco重大更新快来体验吧
HarmonyOS API 17正式发布,DevEco新增多项特性。支持创建API 17应用,模拟器首次适配阔折叠手机与2in1设备。新增权限管理功能,可自动签名快速申请ACL权限;新增自动监听WebView进程能力,简化调试流程。系统能力方面,支持指定窗口大小、AR Engine深度估计、ArkUI对2in1设备优化及新增File Manager Service Kit文件管理服务,大幅提升开发效率与用户体验。
175 64
DevEco重大更新快来体验吧
|
1月前
|
Android开发 开发者
ArkUI-X中Plugin生命周期开发指南
ArkUI-X插件用于扩展ArkUI应用功能,支持管理插件生命周期。本文聚焦于Android平台ArkUI-X插件生命周期的使用,介绍如何通过实现`IArkUIXPlugin`接口创建插件,包括`onRegistry`初始化和`onUnRegistry`销毁方法。开发者可通过`addPlugin`方法在`StageActivity`中注册插件,确保调用顺序正确(需在`super.onCreate()`前)。示例代码展示了插件的创建、资源管理和注册流程,帮助开发者快速上手。
123 57
|
1月前
|
开发工具 Android开发
ArkUI-X添加到现有Android项目中
本教程介绍如何使用ArkUI-X SDK开发Android AAR,实现ArkTS声明式开发在Android平台的显示。主要内容包括:1) 跨平台Library工程开发;2) AAR在Android应用中的集成方式。通过ACE Tools或DevEco Studio完成AAR构建,初始化ArkUI-X,并通过Activity或Fragment加载页面。具体步骤涵盖工程创建、构建AAR包、配置Manifest及使用Intent或Fragment打开页面等。
133 57