前言
相信各位搞安卓的同学多多少少都了解过鸿蒙了,有些一知半解而有些已经开始学习起来。那这个鸿蒙到底好不好搞?要不要搞?
安卓反正现在工作感觉不好找,即便是上海这样的大城市也难搞,人员挺饱满的。最近接近年关裁员的也许多。想想还是搞鸿蒙吧现在刚刚要起步说不定有时机!
首要能够肯定的一点,关于做安卓的来说鸿蒙很好搞,终究有多好搞我来给大家说说。最近开始学鸿蒙,对其开发进程有了必定了解。刚好能够进行一些比照。
好不好搞?
开发环境
要我说,好搞的很。首要开发环境一样,不是说长得像,而是就一模一样。
你看这个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系统上与真实设备或许模拟器进行交互。
- hdc list targets
- hdc file send local remote
- 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端操作系统会占有更大比例的商场。不仅仅是企业的商场行为,也是国产操作系统快速提升市占率的大好时机。
话说回来,作为安卓开发者,学习鸿蒙的本钱并不高!
而对我们来说这是个机会,究竟技多不压身,企业在选取人才的时分往往也会偏好把握更多技能的提名人。
如果鸿蒙起飞,你要不要考虑乘上这股东风呢?
我是张保罗,一个老安卓。最近在学鸿蒙
写了一个鸿蒙开发专栏《动手学鸿蒙App开发 HarmonyOS》,正在逐步更新。欢迎点赞关注!