ArkUI-X构建Android平台AAR及使用
本教程主要讲述如何利用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
- 执行ace build aar命令,构建Android aar包。
ace build aar
DevEco Studio
1.导入跨平台的Sample工程Library
2.通过执行Build APP(s)选项,构建出Android aar包
AAR在应用工程的使用
通过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);
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test_aar_demo">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name="com.example.test_aar_demo.MainApplication"
android:allowBackup="true"
android:icon="@drawable/hihelloworld"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:name=".MainApplication"
android:theme="@style/Theme.Helloworld"><!-- 将name设为MainApplication-->
<activity android:name="com.example.myaar.EntryMainAbilityActivity"
android:windowSoftInputMode="adjustResize |stateHidden"
android:configChanges="orientation|keyboard|layoutDirection|screenSize|uiMode|smallestScreenSize"
><!-- 将name设为aar中的EntryMainAbilityActivity -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
build.gradle
添加ndk和编译依赖目录,这部分配置项与Android平台构建ArkUI应用内容一致。
完成上述步骤后即可按照Android应用构建流程,构建ArkUI Android应用。
ArkUI-X构建Android平台AAR及使用的更多相关文章
- gradle构建android项目详解
1.用Gradle构建 1.1 工程结构 如图所示,这是一个不能更普通的Android的Gradle工程了. 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这 ...
- cocos2dx使用了第三方库照样移植android平台-解决iconv库的移植问题
当我写这篇文章的时候我是怀着激动的心情的,因为我又解决了一个技术问题.你可能对题目还一知半解,这是什么意思,我之所以要写这篇文章就是要解决当我们在cocos2dx中使用了第三方库的时候,移植到andr ...
- cocos2dx移植android平台-我的血泪史
版权声明:本文由( 小塔 )原创,转载请保留文章出处! 本文链接:http://www.zaojiahua.com/android-platform.html 本人这几天一直都没有跟新自己的网站内容, ...
- Android平台NDK编程
转自:http://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代 ...
- 随笔之Android平台上的进程调度探讨
http://blog.csdn.net/innost/article/details/6940136 随笔之Android平台上的进程调度探讨 一由来 最近在翻阅MediaProvider的时候,突 ...
- cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)
链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...
- cocos2dx移植android平台
本人这几天一直都没有跟新自己的网站内容,问我干什么去了,当然是做这篇文章做的事了,说起这个移植来真是麻烦啊,网上试验了各种方法,都不知道谁对谁错啊.不过经过本人这三天的研究最后终于成功了,为了让大家少 ...
- Android平台的Swift—Kotlin
WeTest 导读 Kotlin 已经出来较长一段时间了,有些同学已经对Kotlin进行了深入的学习,甚至已经运用到了自己的项目当中,但是还有较多同学可能只是听过Kotlin或简单了解过,这篇文章的目 ...
- 《React Native 精解与实战》书籍连载「Android 平台与 React Native 混合开发」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- 在内网使用Gradle构建Android Studio项目
在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...
随机推荐
- OpenHarmony 开源鸿蒙北向开发——hdc工具安装
hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHar ...
- Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区 ...
- 使用LLaMA-Factory训练LLM大模型并用ollama调用
环境搭建 系统环境 需要Nvidia显卡,至少8G显存,且专用显存与共享显存之和大于20G 建议将非安装版的环境文件都放到非系统盘,方便重装或移植 以Windows11为例,非安装环境文件都放在 E ...
- BandiZip无广告版安装
BandiZip无广告版安装 Bandizip 是一款压缩软件,它支持Zip.7-Zip 和 RAR 以及其它压缩格式.它拥有非常快速的压缩和解压缩的算法,从大学用到现在,但是现在最新的版本在每次压缩 ...
- 【python-数据分析】pandas时间序列处理
1. timestamp 1.1 创建timestamp 自定义timestamp 语法:pd.Timestamp(ts_input,tz,year,month,day,hour,minute,sec ...
- Anonymous打靶学习笔记(5)
参考视频https://www.bilibili.com/video/BV1XufaYAEKc/?spm_id_from=333.1387.search.video_card.click 常见的100 ...
- ESP32+Arduino入门(一):开发环境搭建
前言 作为一名硬件小白,在动手组装了一下小智AI之后,感觉还挺有意思的,也想开始学习ESP32了. ESP32介绍 ESP32 是乐鑫科技(Espressif Systems)推出的一款高性能.低功耗 ...
- Semaphore.release()方法的底层原理
一.release() 方法代码解析 当调用 release() 方法时,实际调用的是 AQS 的 releaseShared(1) 方法.以下是其详细工作流程: public final boole ...
- Asp.net mvc基础(十五)EF原理及SQL监控
EF会自动把Where().OrderBy().Select()等这些编译成"表达式树",然后回把表达式树翻译成SQL语句,因此不是"把数据都取到内存中,然后使用集合的方 ...
- hybrid应用自动化
一.hybrid介绍 hybrid是一种混合app,将h5页面嵌入native原生页面. 基于uiautomator+chromedriver.native部分走uiautomator,web部分走c ...