当前位置:   article > 正文

安卓开发转鸿蒙开发到底有多简单?

android和前端开发转鸿蒙谁更难

前言

相信各位搞安卓的同学多多少少都了解过鸿蒙了,有些一知半解而有些已经开始学习起来。那这个鸿蒙到底好不好搞?要不要搞?

安卓反正目前工作感觉不好找,即便是上海这样的大城市也难搞,人员挺饱和的。最近临近年关裁员的也很多。想想还是搞鸿蒙吧现在刚刚要起步说不定有机会!

  1. 作者:张保罗
  2. 链接:https://juejin.cn/post/7308001278420320275

首先可以肯定的一点,对于做安卓的来说鸿蒙很好搞,究竟有多好搞我来给大家说说。最近开始学鸿蒙,对其开发过程有了一定了解。刚好可以进行一些对比。

好不好搞?

开发环境

要我说,好搞的很。首先开发环境一样,不是说长得像,而是就一模一样。

7c97ab20f015b3b98b430b7e091a493c.png

你看这个DevEco-Studio和Android Studio什么关系,就是双胞胎。同样基于Intellj IDEA开发, 刚装上的时候我都惊呆了,熟悉的感觉油然而生。

再来仔细看看:

  • 项目文件管理栏,同样可以切换Project和Packages视图

03c525f6c30de4aa00d519e7ba1b09e6.png

  • 底部工具栏,文件管理,日志输出,终端,Profiler等

e9b1031727d5f598ed5c494e4ab37d79.png

  • SDK Manager, 和安卓一样也内建了SDK管理器,可以下载管理不同版本的SDK

63507c531b8b97b3f9e5b8cf4323c018.png

  • 模拟器管理器

9d5ecd7ee62472d7f962bc3155f4e592.png

可以看出鸿蒙开发的IDE是功能完备并且安卓开发人员可以无学习成本进行转换。

开发工具

安卓开发中需要安装Java语言支持,由于开发过程需要进行调试,adb也是必不可少的。在鸿蒙中,安装EcoDev-Studio后,可以在IDE中选择安装Node.js即可。由于鸿蒙开发使用的语言是基于TS改进增强而来,也就是熟悉JS语言就可以上手。而会JAVA的话很容易可以上手JS

  • 语言支持

34ffd5700d9c84730513c32d0046d50d.png

  • 鸿蒙上的类似adb的工具名叫hdc

hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与真实设备或者模拟器进行交互。

  1. hdc list targets

  2. hdc file send local remote

  3. hdc install package File

这里列举的几个命令是不是很熟悉?一看名字就知道和安卓中的adb是对应关系。不需要去记忆,在需要使用到的时候去官网查一下就行:hdc使用指导

配置文件

安卓中最主要的配置文件是AndroidManifest.xml。其中定义了版本号,申明了页面路径,注册了广播和服务。并且申明了App使用的权限。

而鸿蒙中也对应有配置文件,但与安卓稍有不同的是鸿蒙分为多个文件。

  • build-profile.json5

Sdk Version配置在这里, 代码的模块区分也在这里

  1. {
  2. "app": {
  3. "signingConfigs": [],
  4. "compileSdkVersion": 9,
  5. "compatibleSdkVersion": 9,
  6. "products": [
  7. {
  8. "name": "default",
  9. "signingConfig": "default",
  10. }
  11. ],
  12. "buildModeSet": [
  13. {
  14. "name": "debug",
  15. },
  16. {
  17. "name": "release"
  18. }
  19. ]
  20. },
  21. "modules": [
  22. {
  23. "name": "entry",
  24. "srcPath": "./entry",
  25. "targets": [
  26. {
  27. "name": "default",
  28. "applyToProducts": [
  29. "default"
  30. ]
  31. }
  32. ]
  33. }
  34. ]
  35. }
  • app.json5

包名,VersionCode,VersionName等信息

  1. {
  2. "app": {
  3. "bundleName": "com.example.firstDemo",
  4. "vendor": "example",
  5. "versionCode": 1000000,
  6. "versionName": "1.0.0",
  7. "icon": "$media:app_icon",
  8. "label": "$string:app_name"
  9. }
  10. }
  • module.json5

模块的详细配置,页面名和模块使用到的权限在这里申明j

  1. {
  2. "module": {
  3. "name": "entry",
  4. "type": "entry",
  5. "description": "$string:module_desc",
  6. "mainElement": "EntryAbility",
  7. "deviceTypes": [
  8. "phone",
  9. "tablet"
  10. ],
  11. "deliveryWithInstall": true,
  12. "installationFree": false,
  13. "pages": "$profile:main_pages",
  14. "abilities": [
  15. {
  16. "name": "EntryAbility",
  17. "srcEntry": "./ets/entryability/EntryAbility.ts",
  18. "description": "$string:EntryAbility_desc",
  19. "icon": "$media:icon",
  20. "label": "$string:EntryAbility_label",
  21. "startWindowIcon": "$media:startIcon",
  22. "startWindowBackground": "$color:start_window_background",
  23. "exported": true,
  24. "skills": [
  25. {
  26. "entities": [
  27. "entity.system.home"
  28. ],
  29. "actions": [
  30. "action.system.home"
  31. ]
  32. }
  33. ]
  34. }
  35. ],
  36. "requestPermissions":[
  37. {
  38. "name" : "ohos.permission.APPROXIMATELY_LOCATION",
  39. "reason": "$string:reason",
  40. "usedScene": {
  41. "abilities": [
  42. "FormAbility"
  43. ],
  44. "when":"inuse"
  45. }
  46. }
  47. ]
  48. }
  49. }

官方指导

安卓开发的各种技术文档在网上可以很方便的搜索到,各种demo也有基数庞大的安卓开发者在技术网站上分享。虽然鸿蒙目前处于刚起步的阶段,但是官方的技术文档目前也已经非常完善,并且可以感受到鸿蒙的官方维护团队肯定在高强度加班中,他们的文档更新的太快了。经常能看到文档的编辑日期在迅速迭代。

ad8f783710396489cd07e2888d005ba0.png

fc1ab4de6882549362a01e6c582c46d6.png

从日期可以看到非常新。而且文档都是中文的,学习和查找起来都特别方便。

并且不仅仅是api文档,鸿蒙官方还提供了各种用以学习的demo, 甚至还有官方的视频教程和开发论坛。

9610a6f9287934ef6da947cbd48aa514.png

9ec401d998f01c70f58aeab6c71cfdbb.png

遇到问题有各种方法可以解决,查文档,看视频课程,抄官方demo, 论坛发帖提问,简直是保姆级的官方支持!

其他

  • 鸿蒙的UI开发模式是一种响应式开发,与安卓的compose UI很像。组件的名字可能不同,但是概念上是一致的,并且鸿蒙的原生组件种类丰富也比较全。熟悉以后使用起来很方便。t

  1. build() {
  2. Column() {
  3. Text(this.accessText)
  4. .fontSize(20)
  5. .fontWeight(FontWeight.Bold)
  6. if (!this.hasAccess) {
  7. Button('点击申请').margin({top: 12})
  8. .onClick(() => {
  9. this.reqPermissionsFromUser(this.permissions);
  10. })
  11. } else {
  12. Text('设备模糊位置信息:' + '\n' + this.locationText)
  13. .fontSize(20)
  14. .margin({top: 12})
  15. .width('100%')
  16. }
  17. }
  18. .height('100%')
  19. .width('100%')
  20. .padding(12)
  21. }
  • 对应安卓的权限管理

鸿蒙有ATM,ATM (AccessTokenManager) 是HarmonyOS上基于AccessToken构建的统一的应用权限管理能力。

  • 对应安卓的SharedPreferences能力,鸿蒙有首选项能力。

82ecf5de25942bdca2c988acf6d1045f.png

这里就不一一列举了

我们只需要知道在安卓上有的概念,就可以在鸿蒙官方文档中去找一下对应的文档。

原理都是相通的。所以有过安卓开发经验的同学相对于前端FE来说有对客户端开发理解的优势。

要不要搞?

先看看目前的情况, 各家大厂正在积极布局鸿蒙客户端开发。

4a06d8edec1c8c9f8f07745b7d0220b3.png

3afdc289a939a499bc2fdad2550755ae.png

24bf03d07abe6da6694dccb0ca533dc4.png

虽说移动端操作系统领域对安卓和iOS进行挑战的先例也有且还没有成功的先例。但是当前从国内互联网厂商的支持态度,从国际形势的情况,从华为对鸿蒙生态的投入来看。我觉得很有搞头!明年鸿蒙即将剔除对安卓的支持,届时头部互联网公司的大流量App也将完成鸿蒙原生纯血版的开发。

更有消息称鸿蒙PC版本也在路上了,了解信创的朋友应该能感受到这将意味着国产移动端和PC端操作系统会占有更大比例的市场。不仅仅是企业的市场行为,也是国产操作系统快速提升市占率的大好时机。

话说回来,作为安卓开发者,学习鸿蒙的成本并不高!

而对我们来说这是个机遇,毕竟技多不压身,企业在选取人才的时候往往也会偏好掌握更多技术的候选人。

如果鸿蒙起飞,你要不要考虑乘上这股东风呢?

关注我获取更多知识或者投稿

0bab1c4fa257b9fd72d5e18e8519ee74.jpeg

a8b14db13de242277537039e08d57424.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/248178
推荐阅读
相关标签
  

闽ICP备14008679号