HarmonyOS那些事兒


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM