本教程主要讲述如何利用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工程

img


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

img


img

在应用工程初始化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

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" >

     <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>

 </manifest>

使用intent打开Activity页面

startActivity(new Intent(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();

img

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐