首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ArkUI-X添加到现有Android项目中

本教程主要讲述如何利用ArkUI-X SDK完成Android AAR开发,实现基于ArkTS的声明式开发范式在android平台显示。包括:

1.跨平台Library工程开发介绍

2.AAR在Android应用工程的集成方式

使用ACE Tools和DevEco Studio集成ArkUI-X SDK进行Android AAR开发

可以通过通过ACE Tools或DevEco Studio完成

ACE Tools

1.ace create 命令创建一个跨平台的library模版工程:

ace create [project] -t library

2.执行ace build aar命令,构建Android aar包。

ace build aar

DevEco Studio

1.创建一个ArkUI-X Library工程

2.通过执行Build APP(s)选项,构建出Android aar包

在应用工程初始化ArkUI-X

通过Android studio 创建一个应用工程,将我们上述的aar包添加到工程目录下的libs目录中 Application部分

继承调用

package com.example.helloworld;import com.example.myaar.MyApplication;

public class MainApplication extends MyApplication {}

代理类调用

package com.example.helloworld;import android.app.Application;import android.content.res.Configuration;import android.util.Log;import ohos.stage.ability.adapter.StageApplicationDelegate;

public class MainApplication extends Application {private StageApplicationDelegate appDelegate = null;public void onCreate(){   super.onCreate();   this.appDelegate = new StageApplicationDelegate();   this.appDelegate.initApplication(this); }

public void onConfigurationChanged(Configuration newConfig) {   super.onConfigurationChanged(newConfig);   if(this.appDelegate == null) {     Log.e("StageApplication", "appDelegate is null");   } else {     this.appDelegate.onConfigurationChanged(newConfig);   } }}

打开ArkUI-X页面使用Activity加载页面

在AndroidManifest.xml中配置Activity

<application android:name="com.example.test_aar_demo.MainApplication">   <activity     android:name="com.example.myaar.EntryMainAbilityActivity"     android:windowSoftInputMode="adjustResize |stateHidden"     android:configChanges="orientation|keyboard|layoutDirection|screenSize|uiMode|smallestScreenSize"/></application>

使用intent打开Activity页面

startActivity(newIntent(this, EntryMainAbilityActivity.class));

使用Fragment加载页面

在Activity中加载StageFragment

StageFragment stageFragment = new StageFragment();stageFragment.setInstanceName("com.example.myaar:entry:EntryMainAbilityActivity:");supportFragmentManager.beginTransaction().replace(R.id.content, it).commitNowAllowingStateLoss();

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OC8Db9hAi-vZ2hwk4D6zesmQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券