鴻蒙系統:
開發背景:鴻蒙OS釋出于2019年,但是最早可以追溯到2012年,彼時任正非與華為2012實驗室的專家座談時提出,華為要自研作業系統做備份,哪怕幾十年都用不上也一定要做。否則一旦作業系統“斷糧”對華為就是數千億美元的損失。2019 年,美國政府禁止美國向華為出口,這切斷了該公司與大多數晶片和軟體供應商的聯系。如果無法通路關鍵部件和應用程式,就很難建構手機。數字化新時代的到來需要新的作業系統;oT 與 5G:5G物聯網時代的到來對作業系統提出了新的要求;大資料與雲計算:TB、PB級的大資料需要一個能夠提供多機互聯的作業系統;為了适應時代的發展需求,面對美國對華為的封鎖。華為公司具有前瞻的戰略意識,居安思危。最終開發了鴻蒙系統。
開發曆史:2012年9月,華為開始規劃自有作業系統“鴻蒙”。華為“2012諾亞方舟實驗室”專家座談會上,任正非提出了要做終端作業系統防範于未然,要在“斷了我們糧食的時候,備份系統要能用得上。”
2017年,鴻蒙核心 1.0
2018年,鴻蒙核心 2.0
2019年,鴻蒙OS 1.0
2019年5月24日,國家知識産權局商标局網站顯示,華為已申請“華為鴻蒙”商标,申請日期是2018年8月24日,注冊公告日期是2019年5月14日,專用權限期是從2019年5月14日到2029年5月13日。
2019年5月17日,由某教授上司的華為作業系統團隊開發了自主産權作業系統——鴻蒙。
2019年8月9日,華為正式釋出鴻蒙系統(HongmengOS),實行開源。
2020年,鴻蒙OS 2.0
2020年9月10日,華為在HDC開發者大會上如約釋出鴻蒙 2.0,并面向應用開發者釋出Beta版本。明年鴻蒙将全面支援華為手機。鴻蒙HarmonyOS正式開源,今年年底首先對國内開發者釋出針對智能手機的HarmonyOS beta版本。
二:關于鴻蒙是否套殼的争議:
華為鴻蒙作業系統是基于ASOP開發的。ASOP:Android Open Source Project,中文名:安卓開源項目。谷歌的安卓系統,實際上是基于linux的ASOP+GMS,即安卓開源項目和谷歌移動服務包組合成了安卓系統,而國内基本上GMS都被閹割的,賣到海外的國産手機,除了華為被制裁,其餘的國産手機系統是有GMS的。
是以,鴻蒙之是以可以支援安卓的APP就可以了解了,因為還是基于ASOP進行的再次開發,但又不能說鴻蒙就是安卓系統的換殼,因為鴻蒙是ASOP+HMS,即安卓開源項目+華為移動服務。在ASOP這個項目裡,任何機構和企業都有義務為開源社群貢獻代碼,也能夠使用和下載下傳開源代碼,并基于開源項目做二次開發。是以ASOP的代碼并不全是谷歌寫的,華為也是ASOP的重要貢獻者。
世界上許多創新都是在已有的技術跟知識層面上進行創新的,人類技術的發展是一步一步起來的,不可能一蹴而就。鴻蒙系統合理的運用安卓開源項目,進行技術創新。最終搭建起了鴻蒙系統。
三:代碼風格分析:
“...
package stdx;
2
3
import java.io.*;
4
import java.util.*;
5
6
public class ConfigFile implements Closeable{
7
class Data{
8
public String key = "";
9
public String val = "";
10
public String info = "";
11
12
public Data(String key, String val){
13
this(key, val, "");
14
}
15
public Data(String key, String val, String info){
16
this.key = key;
17
this.val = val;
18
this.info = info;
19
20
}
...”
分析:Java語言是一種純面向對象的程式設計語言。其代碼清晰易讀,排版幹淨利索。Import導入類。Public修飾類與資料權限,this在構造方法中就代表了目前對象,思路清晰,便于了解。
from SimpleXMLRPCServer import SimpleXMLRPCServer
def add(a, b):
return a + b
def start_rpc_server():
s = SimpleXMLRPCServer(("", 1989))
s.register_function(add)
s.serve_forever()
分析:Pythony語言import導入SimliexXMLRPCServer.add對資料操作簡單明了,資料輸出簡單。代碼可讀性高。
time.sleep(1)
s.close()
21
def simple_call_rpc():
22
serv_addr = ('136.24.8.45', 1989)
23
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
24
s.connect(serv_addr)
25
program_name = "R2319Cfm"
26
cmd = "find /crmbak -name %s.log.gz -mtime 30 2>/dev/null |xargs ls -l --block-size=1024 |grep %s.log.gz$ 2>/dev/null |awk '{sum+=$5}END{print sum}'" % (program_name, program_name)
27
s.send(cmd)
28
data = s.recv(1024)
29
print 80 * '-'
30
print "cmd:", cmd
31
print "data:", data
32
33
34
35
if __name__ == '__main__':
start_chat()
36
simple_call_rpc()
37
#start_chat()
分析:調用time()這個方法沒有Import相應的包。可讀性差,