| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 极客星球 | Android原生SDK无缝嵌入鸿蒙开发“黑科技” -> 正文阅读 |
|
[移动开发]极客星球 | Android原生SDK无缝嵌入鸿蒙开发“黑科技” |
鸿蒙的原生开发是无法支持到安卓原生配置的,导致鸿蒙直接嵌入安卓库需要做相应的改造。MobTech作为第三方SDK提供方,有必要为开发者提供更方便的接入解决方案。我们的目标是鸿蒙开发者和安卓开发者接入MobSDK的成本是一样的。在这个终极目标的前提下,我们需要突破鸿蒙的一些限制。 本文主要就如何突破安卓和鸿蒙之间的差异做到无缝迁移展开,同时将为大家介绍鸿蒙的一些原理性知识。下面我们将从鸿蒙与安卓的差异、兼容的卡点、突破的原理几个方面进行深入讨论。 二、鸿蒙项目 VS 安卓项目 从项目整体结构上来看,鸿蒙和安卓基本是相同的,包含代码、资源、布局、配置和国际化等。但是深入了解则发现存在很大的差别。 1、四大组件到Ability 鸿蒙为了跟安卓剥离的更为彻底,已经完全废弃了四大组件的设计(仅仅保留四大组件的概念),这种改变带来的问题是需要重写原来这部分安卓代码。 2、AndroidManifest.xml到config.json 鸿蒙废弃了XML的配置,采用了json格式来配置项目,但是这种改变并不是简单的文本格式的转变,里面可配置的内容也做了很大的修改,甚至有些属性是只有鸿蒙才有的,而有些在安卓里的属性在鸿蒙里已被完全废除。 3、AAR变成了HAR HAR(HarmonyOS Ability Resources)可以提供构建应用所需的所有内容,包括源代码、资源文件和config.json文件。HA不同HAP,HAR不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。 4、鸿蒙不支持kotlin语言 如果原来安卓SDK是kotlin语言编写的,那么直接放入鸿蒙工程中,是跑不起来的。目前鸿蒙还不能支持kotlin语言。 三、无缝兼容的卡点 1、 AndroidManifest.xml四大组件怎么配置到鸿蒙里面? 3、 如何无阻碍的使用AAR包? 4、 安卓源码如何和鸿蒙一起通过编译? 四、了解原理,突破限制 鸿蒙打包后生成的是hap文件,解压后的结构如下:
最为神秘的就是其中的.apk文件了,它就一个作用:用来兼容安卓系统。如果没有这个apk,在安卓手机上根本就无法运行hap文件,它就是一个入口,通过它可以去加载鸿蒙的代码。主要是ShellMyApplication和 MainAbilityShellActivity 去实现加载鸿蒙,有点类似插件化的概念。 ShellMyApplication核心事情
MainAbilityShellActivity核心事情
有了apk,我们就有了突破卡点的入口。因为apk里了我们需要的AndroidManifest.xml文件、资源文件夹。我们要做的就是在编译的过程中将原来安卓SDK的配置写进去就可以了。 最终效果 最后,我们在鸿蒙里接入分享SDK和安卓里接入分享SDK的对比效果:
五、总结 通过突破鸿蒙无安卓配置的卡点并加上业务逻辑封装成一个单独的插件,我们就能抹平鸿蒙项目接入安卓SDK所代来的差异,使得鸿蒙开发和安卓开发几乎可以无缝衔接。 目前MobTech的ShareSDK有包括微信、QQ、微博、抖音在内的多个平台已经“鸿蒙化”,开发者接入这些平台将跟接入安卓保持一致,后续我们会进一步扩充平台的数量,同时也会将MobTech下的其他SDK也逐步“鸿蒙化”,方便开发者接入。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:43:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |