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

249 篇文章 7 订阅
213 篇文章 2 订阅

前言

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

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

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

好不好搞?

开发环境

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

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

再来仔细看看

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

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

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

模拟器管理器。

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

开发工具

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

语言支持

鸿蒙上的类似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配置在这里, 代码的模块区分也在这里。

{
  "app": {
    "signingConfigs": [],
    "compileSdkVersion": 9,
    "compatibleSdkVersion": 9,
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
      }
    ],
    "buildModeSet": [
      {
        "name": "debug",
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

app.json5

包名,VersionCode,VersionName等信息。

{  
  "app": {  
    "bundleName": "com.example.firstDemo",  
    "vendor": "example",  
    "versionCode": 1000000,  
    "versionName": "1.0.0",  
    "icon": "$media:app\_icon",  
    "label": "$string:app\_name"  
  }  
}  

module.json5

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

{  
  "module": {  
    "name": "entry",  
    "type": "entry",  
    "description": "$string:module\_desc",  
    "mainElement": "EntryAbility",  
    "deviceTypes": \[  
      "phone",  
      "tablet"  
    \],  
    "deliveryWithInstall": true,  
    "installationFree": false,  
    "pages": "$profile:main\_pages",  
    "abilities": \[  
      {  
        "name": "EntryAbility",  
        "srcEntry": "./ets/entryability/EntryAbility.ts",  
        "description": "$string:EntryAbility\_desc",  
        "icon": "$media:icon",  
        "label": "$string:EntryAbility\_label",  
        "startWindowIcon": "$media:startIcon",  
        "startWindowBackground": "$color:start\_window\_background",  
        "exported": true,  
        "skills": \[  
          {  
            "entities": \[  
              "entity.system.home"  
            \],  
            "actions": \[  
              "action.system.home"  
            \]  
          }  
        \]  
      }  
    \],  
    "requestPermissions":\[  
      {  
        "name" : "ohos.permission.APPROXIMATELY\_LOCATION",  
        "reason": "$string:reason",  
        "usedScene": {  
          "abilities": \[  
            "FormAbility"  
          \],  
          "when":"inuse"  
        }  
      }  
    \]  
  }  
}  

官方指导

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

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

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

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

其他

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

build() {
  Column() {
    Text(this.accessText)
      .fontSize(20)
      .fontWeight(FontWeight.Bold)

    if (!this.hasAccess) {
      Button('点击申请').margin({top: 12})
        .onClick(() => {
          this.reqPermissionsFromUser(this.permissions);
        })
    } else {
      Text('设备模糊位置信息:' + '\n' + this.locationText)
        .fontSize(20)
        .margin({top: 12})
        .width('100%')
    }
  }
  .height('100%')
  .width('100%')
  .padding(12)
}

对应安卓的权限管理

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

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

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

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

要不要搞?

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

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

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

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

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

为了能让大家更好的学习鸿蒙 (OpenHarmony) 开发技术,这边特意整理了《鸿蒙 (OpenHarmony)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (OpenHarmony)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. ……

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门?:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值