HarmonyOS那些事儿

一、鸿蒙操作系统的概述

  • 开发背景

    早在2012年任正非与华为2012实验室的专家座谈时就提出,华为要自研操作系统做备份,哪怕几十年都用不上也一定要做,否则一旦操作系统“断粮”对华为就是数千亿美元的损失。2019年,美国引渡孟晚舟。同年,谷歌终止向华为授权GMS服务,企业与国家使命的战争打响。

  • 开发历史

    2012年,正式提出开发鸿蒙系统。

    2019年,发布鸿蒙操作系统,实行代码开源。

    2020年,发布鸿蒙系统2.0版本,同年,开放Beta测试版本。

    2021年,Harmony OS应用开发网站上线。同年6月,华为正式举办鸿蒙操作系统发布会,手机系统陆续更新。

  • 需求

    摆脱西方技术垄断,带动中国信息技术产业发展。

  • 应用场景

    鸿蒙操作系统致力于全场景式OS,着重强调万物互联,包括电器、交通工具、手机等智能设备。

 

二、关于鸿蒙系统是否套壳的争议

  • 什么是创新

    基于安卓的ASOP代码是鸿蒙是否套壳的主要争议。但根据华为所说,在ASOP这个项目里,任何机构和企业都有义务为开源社区贡献代码,也能够使用和下载开源代码,并基于开源项目做二次开发。所以ASOP的代码并不全是谷歌写的,华为也是ASOP的重要贡献者。由此,我认为代码ASOP的相同不算是套壳。同时,由于安卓用户广泛并且APP开发者众多,如果一时全部更改代码,对于新的鸿蒙系统是个莫大的挑战,对于华为经济也有较大的冲击。

    什么是创新?我所认为的,创新就是在旧事、旧物、旧理论上的不断改进和提升,使之在某些特征方面焕然一新,有如沐春风之感。或是用途变广,或是视听升级,或是耳目一新。无论是何种类型的创新,参考或引用无法避免。我们应当承认创新不是创造,创新是旧的故事写下新的篇章。原创、真实、价值,是我们创新路上要不断追求的目标。

  • 代码复用与创新的关系

    计算机已经经过几十年的发展,包装好的代码数不胜数。科技的发展与计算机密不可分,已经得到的成果我们应该加以利用,然后再其基础上更好的发展。就像站在巨人的肩膀上看世界,我们能看的更远。代码复用和创新同样如此,基于已有的代码,我们可以发展更加有用的工具,功能在原有的基础上叠加。现在的超级APP就类似与这个概念,在一个应用上,我们可以使用相关的众多软件,这是众多代码的总和。

 

三、代码风格分析

  我喜欢长得好看的人(起码就第一印象来说),亦然,代码好看也一定更讨人喜欢。下面给出几例代码风格的分析:

  • 摒弃

    代码不规范,读者两行泪。try应该和option缩进相同,except和try同级。



import os
import sys
import subprocess
from PyInquirer import prompt


def enable_option(file_name):
option_list = []
try:
with open('.config', 'r') as config_file:
for line in config_file:
if line.startswith('CONFIG_'):
str1 = line.split('=')
option_list.append(str1[0][7:])
except IOError:
print('No config file')
return


  • 推荐    

    排版清晰,缩进有序。如果再加上注释就锦上添花啦!



import os
import sys
import subprocess

def main(argv):
if len(argv) != 3: # this is called by build system, must has 3 args.
print("argv count error, return!")
return

path = argv[1]
folder = os.path.exists(path)
if not folder:
os.makedirs(path)
print("make folder OK")
else:
print("folder already existed")

symlink_path = argv[2]
src_path = os.path.abspath(path)
print("skia path is : " + src_path)
dst_path = os.path.abspath(symlink_path)
print("symlink path is: " + dst_path)
subprocess.run(['ln', '-s', dst_path, src_path])

if __name__ == '__main__':
main(sys.argv)


  嚯哗!休息!!!

 2021-09-10  10:41:39