当前位置: 首页 > 科技观察

牛破了!HarmonyOS与Android的完美融合,把HarmonyOS当作Android设备使用

时间:2023-03-21 22:26:19 科技观察

了解更多请访问:Harmonyos.51cto.com,与华为官方共同打造的鸿蒙技术社区1.你长得像鸿蒙,其实它是安卓,你看是安卓,其实是鸿蒙。至此,HarmonyOS2.0已经推出一个多月了,很多朋友可能已经迫不及待想知道HarmonyOS是什么了。华为官网发布了一个IDE:DevEcoStudio2.0,用于HarmonyOSApp的开发,可以使用Java和JavaScript两种编程语言进行开发。这两种编程语言是等价的、独立的。换句话说,同样的HarmonyOSApp可以用Java和JavaScript来开发。基于Java的开发方式类似于AndroidApp的开发方式,基于JavaScript的开发方式类似于微信小程序的开发方式。本文仅讨论使用Java开发HarmonyOSApp的方式。可能很多朋友对HarmonyOS进行了深入的研究,发现HarmonyOSApp的开发方式与Android类似。比较细心的朋友发现HarmonyOS的模拟器列表也可以通过adbdevices命令获取,于是毫不犹豫的认为HarmonyOS就是Android。案件。其实,真相并不是你想的那样。没错,通过adbdevices命令可以检测到HarmonyOS设备,但是这个只能检测到HarmonyOS的Android部分。也就是说,HarmonyOS其实包含两部分:HarmonyOS和Android。如果你安装HAP(HarmonyOS安装包,类似于Androidapk),它会使用HarmonyOS部分运行,如果你安装apk,它会使用Android部分运行。因此,HarmonyOS本质上并不是一个Android外壳,而是与Android并行运行,相当于在HarmonyOS设备中同时运行HarmonyOS和Android系统,而这一切对用户来说都是透明的。这有点像白衣吴天和《西游记后传》的吴天。他们共享同一个身体,但他们有正邪两面。善念生起白衣,恶念生起黑衣。同一个神(无天),两个人格(白黑),同一个系统(鸿蒙),运行着两种应用(鸿蒙和安卓)。2、HarmonyOS设备也可以当安卓设备用,你赚到钱了。由于HarmonyOS内置了Android系统,因此您也可以将HarmonyOS设备当作Android设备来使用。我们知道,目前鸿蒙2.0只能通过在DevEcoStudio中启动鸿蒙预览器来体验,并且同一个开发者账号只能同时获取一台鸿蒙预览器。开启多个HarmonyOS预览器,需要通过多个华为开发者账号,在不同的机器上进行。当然,在华为发布鸿蒙模拟器和鸿蒙设备后,你可以在本地获取多个鸿蒙实例。例如,启动鸿蒙模拟器后,您还可以连接到真实的鸿蒙设备。比如下面连接安装了HarmonyOS2.0的华为智慧屏,效果如下图。如果DevEcoStudio发现连接了多个鸿蒙设备,运行鸿蒙App时会弹出下图选择发布设备的窗口。第一台设备是HarmonyOSPreviewer,第二台设备是华为智慧屏。图5由于HarmonyOS集成了Android系统,是否可以直接在HarmonyOS中发布AndroidApp?当然有可能。并且可以直接从AndroidStudio工程的源码中编译发布。为了更好的体现HarmonyOS的兼容性,这里使用了Flutter(谷歌推出的用于开发AndroidApp和iOSApp的跨平台开发框架,使用谷歌的儿子Dart语言开发)来开发AndroidApp。现在启动AndroidStudio并创建一个Flutter项目。在AndroidStudio上方的设备选择列表中(由于DevEcoStudio2.0目前只支持Windows,所以这里使用的是Windows版本的AndroidStudio,如果是macOS版本的AndroidStudio,也会出现iOS设备)。两款此前推出的HarmonyOS设备,如下图所示。选择一个运行设备,然后运行FlutterApp,编译好的apk会上传到HarmonyOS设备上运行,如下图。点击右下角的按钮,会弹出AndroidToast信息框,如下图。让我们看看HarmonyOS设备上是否真的安装了FlutterApp。进入“AllApps”列表,会看到最后一个深绿色的图标,上面有一个小机器人(图标可以修改),就是之前运行的FlutterApp。而且从App的运行效果来看,无法区分哪个是AndroidApp,哪个是HarmonyOSApp,所以HarmonyOS真正实现了两个系统的无缝切换,用户完全感觉不到。3、使用adb命令行控制HarmonyOS设备。adb命令也可以控制HarmonyOS设备,但是控制的是Android部分。由于HarmonyOS和Android共用一台设备,相当于控制了HarmonyOS设备。比如使用adbdevices命令会列出当前环境连接了多少鸿蒙设备(当然也包括安卓设备)。例如下图列出了3台设备,前两台是HarmonyOS设备,最后一台是Android设备。事实上,从这份名单中,根本无法分辨出哪一款是鸿蒙OS设备,哪一款是安卓设备。其实从本质上来说,它们都应该属于安卓设备,只不过前两款设备的安卓来自于鸿蒙系统内置的安卓系统,而最后一款则来自于纯安卓系统。使用adbinstalltest.apk安装AndroidApp,使用adbshellscreencap进行截图,使用adbpush命令将文件上传到HarmonyOS设备的指定目录,adb命令的用法有很多,大家可以自行测试。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区