zoukankan      html  css  js  c++  java
  • 鸿蒙系统,我要拥抱你~~

    前言:

    今天带着无比激动的心情准备开启一个全新的学习专栏----华为鸿蒙应用开发,如标题所示,作为国内“第一”款“自研”的操作系统,且不论它目前完不完善,主动拥抱它就完了,另外一个层面也是迫于自己公司组里的“压力”,这周碰到好几个同事都在问:“你们APP兼容鸿蒙么?据说它比Android流畅N倍?”,然后我沉默之后只送出“灿烂”的笑脸,目前一无所知!!!所以有必要打破窘境。

    其实吧,去年推出的时候就有想学的打算,但是呢,才当推出嘛,不着急,就跟当年的Android推出了Kotlin出来时我还特意买了一套很全的教程,买完之后就给放那冷藏了,导致现在还在学习它:

    因为不得不学,如今很多Android项目都采用Koltin来编写了到时你都看不懂那还称之为合格的Android程序员么?同样的,对于鸿蒙,随着未来的不断完善再加上“国人”的大量拥抱肯定也会要面临Android的程序员得要会鸿蒙应用的开发。。苦逼的Android猿猴们。。

    另外要开始学它的还有一个原因,就是华为前阵子6月2日发布了鸿蒙2:

    直接真实在华为机子上跑了呀。。能不慌么?然后现在百度搜鸿蒙2的相关新闻提示已升级的用户量:

    我朋友圈中就有人已经升级到鸿蒙了【国人情怀】:

    看着跟安卓木有差别的样式,反正目前应该是兼容Android的应用。

    总之,不管何种理由,今年肯定要主动拥抱鸿蒙,多多了解有益无害。

    鸿蒙了解:

    在正式使用鸿蒙进行开发之前,先对它有一个简单的了解,官网https://www.harmonyos.com/cn/home【国人的系统,以后学习不存在看官网需要FQ打不开的问题啦,刺激!】, 首先映入眼帘的是:

    一切合一,啥意思呢?上https://sale.vmall.com/harmonyos_connect.html上可以看一段官方的视频简介,其中最后一张截图就道出了鸿蒙系统的定位:

     

    是不是定位吊炸天,但是!!!想想一些现在安卓手机主流厂商的,貌似都有此思想,嗯,这里简单了解一下。

    对于开发者来说,当然只对开发的东东感兴趣,所以看一下官网的最底部有一个开发相关的东东:

    三种类型,其中对于我而言感兴趣的只有“应用开发”,设备开发和设备合作伙伴应该是针对硬件厂商的。然后此时再往右边一点看看,看到了“开发者论坛”:

    哟西,这个很亲切,点进去瞅瞅,发现基本上都是发的手机升到鸿蒙之后的各种问题,贴一下:

    一个全新的系统,各种问题是很正常的【android当年不一样的么,还有像当年刚用小米1代时也是各种发热各种卡各种死机,经过岁月的沉淀这些问题都会得到解决的】,反正我木有华为机子,也暂时不想升鸿蒙,看看热闹~~

    应用开发:

    案例在线体验:

    这里重点是来看一下应用开发相关的介绍,点击进入:

     

    嗯,很全的样子,然后往下翻阅时看到个好玩的东东:

    “一次开发,多设备部署”,这思想貌似对于如今比较热门的Flutter、RN的跨平台框架的思想很类似,点击去体验一下:

     

    要想跨平台,JS首当其冲~~另外还举了一个案例,也可以看一下:

    亲子教育应用,貌似挺神奇的样子,等于就是多台设备之间的互动,采用蓝牙么?可以查看一下它的原理图:

    牛逼的样子!!!这块在未来的学习中看能不能领略到这个分布式的魅力。

    教学视频:

    然后我往下看,又看到一个对于纯小白比较有用的东东:

    这个很不错呀,嗯,那接下来打算挑选比较好的入门教程做参考进行入门,事半功倍~~点击其中一个进去瞅瞅:

    哦,还要报名一下,那就点击报名,提示需要用华为者账号登录。。

    好吧,登录一下,然后再点击报名,还需要进行一个实名认证:

    其中学会还有个证书发放,如这样。。

    认证通过之后,此时就可以查看课程了:

    这个是快速学习的一大法定,官方工程师的教程应该也是最权威的,也是接下来个人学习之路的一个向导。

    HUAWEI DevEco Studio了解:

    要开发肯定是少不了IDE的,这里简单了解一下,为啥?因为我在他们一教学视频对IDE的介绍时是这么说的:

    那做Android开发的对于IDE这块的过渡几乎不费啥力气,也就不过多的介绍了,随着之后的不断深入对于它的一些使用方式就自然熟了,另外再补一张关于工具的特点说明:

    环境搭建:

    接下来则正式进入开发环境的搭建,如所有新技术的学习一样,最终运行一个Hello World级别的DEMO工程出来,来直观感受一下跟Android开发有啥不同。

    1、IDE下载:

    点击则跳到具体的下载入口:

    接下来下载安装就不过多说明了。装完之后:

    看到这图标是不是有种似曾相识的感觉,看看它:

    我去!!!瞬间感觉作为一名Android程序员的学习压力倍增呀,是不是得要有前端的基础才能搞得定鸿蒙开发呀~~有种不详的预感,不管怎么样,撸起袖子加油干就对了!!!

     接下来打开它:

     

    安装sdk,

    下载完成,到本地磁盘瞅一下目录,跟Android SDK有啥不一样:

    安装SDK完毕之后就可以看到主界面了:

    目前SDK有两个版本:

    2、创建HelloWorld工程:

    接下来则来创建一个DEMO工程:

    接下来分别来创建。

    Java版本:

    1、创建工程:

    对于Android开发者来说比较平滑的进行过渡是使用Java语言,所以这里改变一下默认行为,先创建Java版本的工程,具体过程可以参考官方文档https://developer.harmonyos.com/cn/docs/documentation/doc-guides/hello_world-0000001054516888,如下:

    具体每个选项的含义可以参考官网https://developer.harmonyos.com/cn/docs/documentation/doc-guides/create_new_project-0000001053342414,这里对不太熟悉的贴出来说明一下:

    Project Type:工程的类型,标识该工程是一个原子化服务(Atomic Service)或传统方式的需要安装的应用。 

    说明
    如果是创建的原子化服务,则:
    
    原子化服务是免安装的,config.json中自动添加installationFree字段,取值为“true”。
    如果entry模块的installationFree字段为true,则其相关的所有hap模块的installationFree字段都默认为true;如果entry模块的installationFree字段为false,则其相关的所有hap模块可以配置为true或false。
    编译构建App时,每个hap包大小不能超过10MB。

    Show in Service Center:是否在服务中心露出。如果Project Type为Service,则会同步创建一个2*2的服务卡片模板,同时还会创建入口卡片;如果Project Type为Application,则只会创建一个2*2的服务卡片模板。

    2、工程目录简览:

    接下来大致瞅一下工程结构,具体可以参考https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-fundamentals-0000000000041611

    其中发现貌似跟Android app差不多的身影:

    分别打开瞅一下大概的样子:

    嗯,对应Android中的Application嘛,再来看一下MainAbility:

    这思想简直就跟Android一模一样,貌似只是把Activity换成了Ability对吧,其实吧这只是表像,其工程结构跟Android已经发生了翻天覆地的变化了,要不然人家怎么可能申请专利是一个“全新”的系统呢,不信可以上官网看一下应用结构,其中应用的整体结构盗一下官网的如下:

    其中根据官网的解释:“HarmonyOS的用户应用程序包以APP Pack(Application Package)形式发布,它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成。HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。”,简单理解一下:

    “HarmonyOS的用户应用程序包以APP Pack(Application Package)形式发布”,从图中也能知道:

    "它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成",看图理解:

    而“它是由一个或多个HAP(HarmonyOS Ability Package)”怎么理解呢?这里需要再看一下HAP的组成才能理解它,如官网所说,“一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型”,哦,这回大概理解了,所以看图说话:

    而关于这俩的区别,再贴一下官网的解释:

    • entry:应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。
    • 应用的动态特性模块。一个APP可以包含一个或多个feature类型的HAP,也可以不含。只有包含Ability的HAP才能够独立运行。

    这里其实可以理解成Android中的app和module,app只能有一个,而module可以有多个。 

    最后再来理解一下工程中的几个元素,也是来自官网的解释:

    Ability

    Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。Ability分为两种类型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是应用的基本组成单元,能够实现特定的业务功能。FA有UI界面,而PA无UI界面。

     

    库文件

    库文件是应用依赖的第三方代码(例如so、jar、bin、har等二进制文件),存放在libs目录。

    资源文件

    应用的资源文件(字符串、图片、音频等)存放于resources目录下,便于开发者使用和维护,详见资源文件的分类。这里瞅一下咱们创建的工程:

    配置文件

    配置文件 (config.json) 是应用的Ability信息,用于声明应用的Ability,以及应用所需权限等信息,详见应用配置文件

    这里有木有发现,一些配置都是用的json格式的,而非xml,像Android的Manifest.xml也木有了。

    以上先大概的对整个工程结构有一个认识,目前虽说有点陌生,但随着不断的学习,自然而然就会变得亲切了。

    3、使用模拟器运行应用:

    接下来则来进行一个项目的运行,看看模拟器长啥样:

    点击之后,则弹出这样的弹窗:

    其中要求需要登录,那是因为需要实名进行认证,点击“Login”:

    发现模拟器还是提示需要Login,啥情况呢?其实这点需要特别注意了,华为模拟器使用是需要“实名认证”的,具体这块的认证可以参考官方说明https://developer.huawei.com/consumer/cn/doc/start/itrna-0000001076878172,由于我的账号木有实名,所以目前模拟器即使授权登录了也还是看不到模拟器,所以接下来进行一下实名认证:

    这一块就不占用过多篇幅来介绍了,按着向导一步步操作就成了,成功认证之后:

    注意:此时需要等一段时间,貌似是几分钟,由于我是中途有事出去了,反正回来时再看此时模拟器就出来了,如下:

    其中关于模拟器多了解一点,如官网所示https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_simulator-0000001053303709,模拟器其实是分为两大类:

    既然是“远程”的模拟器,很显然是不需要下载到本地的,咱们来开启一下试一下效果就知道了,目前只看phone,如今也只有P40可进行模拟,如下:

    点击开启,注意体验一下“远程”的感觉:

    看到木有,在启动时有一个“Connecting”,很显然是需要连网进行远程启动的,如不信,把网断了再来启动一次,则会报网络异常:

    此时对于“远程模拟器”的概念就比较清楚了吧,这跟Android的模拟器还是有很大的不同,我觉得挺好的,不占空间,本身我mac本的空间也不大,另外启动速度也还不错,这一点体验来说在我印象中加分【不过由于不是下载到本地感觉运行起来有一点卡卡的,不过影响不大】!!!接下来到无比鸡冻的时刻了,运行,走一把!!!

    牛逼!!!

    4、修改布局:

    接下来咱们试着简单改一下布局,看一下效果:

    预想中看是否有前端那种实时预览的功能,发现木有找到。。【不过android studio这块也不怎么支持,期待未来这块体验能进行超越~~】所以此时需要重新再运行一次才行:

    JS版本:

    如创建项目向导中看到,默认其实选的不是java版本的,而是js【这块是android程序员比较薄弱的,前端知识肯定是需要补的】,所以这里再以js创建向导再来看一下整个的DEMO过程。

    1、创建工程:

    2、工程目录简览:

    下面简单的瞅一下整个js工程的目录结构:

    展开js:

    接下来再来看一下config.json,它是应用的配置文件,打开里面有一些关键元素简单了解一下:

    另外它也是用来标识应用的唯一性的,类似于android的applicationId。

    3、使用模拟器运行应用:

    接下来运行看一下:

    4、修改布局:

    接下来咱们给页面中增加一个button,关于细节不用管,先来尝试修改一下让其修改生效:

    发现在编写html元素时,智能提示太弱了,这块体验有待加强!!!接下来在css中定义一下button的样式:

    然后这里要想开启实时预览,可以切换一下视图,如下:

    另外实时预览相比Android Studio体验还是差了一些,主要是不够实时,不过这块未来肯定会加强,期待!!!另外给按钮增加一个点击事件:

    然后这里点击则改变一下文本的颜色,先来定义相关颜色:

     

    此时再来定义事件响应:

    运行看一下效果:

     

    总结:

    至此,对于鸿蒙应用的开发有了一个初步的认识,环境配置也已经搭建好了,总的来说体验还可以,当然肯定会有些小瑕疵,这也是任何新系统从0到成熟的必经之路,之后则会从基础慢慢的来研究它,不管未来鸿蒙如何发展,做为国人对于国人目前唯一一个移动端的系统哪有不拥抱的道理,跟着鸿蒙一起加油!!!

  • 相关阅读:
    cf D. Vessels
    cf C. Hamburgers
    zoj 3758 Singles' Day
    zoj 3777 Problem Arrangement
    zoj 3778 Talented Chef
    hdu 5087 Revenge of LIS II
    zoj 3785 What day is that day?
    zoj 3787 Access System
    判断给定图是否存在合法拓扑排序
    树-堆结构练习——合并果子之哈夫曼树
  • 原文地址:https://www.cnblogs.com/webor2006/p/14861199.html
Copyright © 2011-2022 走看看