開發周記(2017/4/10-2017/4/16)

skia4.jpg

未來應該是屬于google以及Android的世界 偉大 開放的google
我決定以后成為google的跟屁蟲了
選擇google的v8 js engine
選擇google的skia render engine
選擇google的android mobile platform
選擇google的Android things embedded system
選擇google的Android studio / sdk / ndk
選擇google 就是選擇未來!

總結:
本周是獲得蠻多成果的一周:

本周的成果源于前兩周的準備,前兩周的開發周記如下:

2017/4/10(周一):

上午:

花了一個上午,研究v8對C++包裝的問題。
終于解決了一個困擾我蠻多時間的問題,非常棒的感覺,具體蠻難說清楚,等我好了后再分享。
非常棒的感覺,這樣的話,現有的C++程序會非常方便的被V8所調用。

下午/晚上:

撰寫設計模式在UI系統開發中的應用(導讀)一文

2017/4/11(周二):

上午:

下午

  • 編譯跨平臺的Cario繪圖引擎
  • 測試Cario引擎的性能,感覺還是稍微差了點。算了,還是選擇opengl(es)吧!
  • 將以前用C++寫的一個程序通過V8 C++,并入到Nodejs中去。感覺還是滿爽的,不需要重新用JS來撰寫,雖然研究花了不少時間,但是比重寫要有趣的多了
  • 繼續學習vue2.x,繼續我的前后端Demo制作。
  • 明白了vue2.x中的prop單向綁定的含義及原理
  • 明白了vue2.x中slot的含義,其實就像面向對象語言中的多態的概念一樣.slot就像類的虛函數,有個default的實現。你可以繼承后進行override。從而替換內容。

2017/4/12(周三):

上午:

  • 修正原來寫的程序

下午:

  • 一個很重大的成果,找到JS和CPP之間完美的協調關系,不需要修改一句代碼,就能自動將CPP綁定到V8引擎,由于nodejs也使用V8引擎,這樣,以前寫的c++代碼,可以自動并入到nodejs

以前用C++寫的JSCode-->JSAst--->CPP源碼的工具,后來重寫目前完成60%。

js_ast.png

將generator.js讀入內存,由v8 運行

main函數.png

generator.js,實際調用的是用C++中的JSAST::SourceGenerator 類(該C++類被包裝成V8 js腳本可以調用的形式)。test.js是一個純js實現,303k,還是比較大的一個js文件。

JS源碼.png

generator.js中調用的SourceGenerator類對應的C++類:

對應的C++類.png

樹形打印出JS的ast名稱(ast=抽象語法樹)

JS2CPPGenerator.png

原來寫的程序有近5000行,當時還不知道有nodejs,后來發現nodejs真是好東西,想移植過去,但是工作量有點大。現在好了,完美的解決js/c++互調.

現在重寫整個程序,進行擴展,先JS版,然后typescript版,實際上ts更容易轉換成C++

js2cpp文檔.png

兩年前弄的規范,由于js缺乏類型系統,因此為了能自動轉換,需要一些變量聲明帶類型前綴的規范。還有就是需要規定一套機制,例如繼承,虛函數動態綁定,函數回調之類,內存析構等(還有很多,碰到一個問題解決一個唄,不停的測試),由于js太靈活,因此需要一套限定規則,才能更好的進行轉換。目前重新弄一下。慢慢來!整個框架和關鍵的地方都弄好了,現在就是需要更好的制定規則。

貼一些以前的研究成果,后來重寫整個解析和生成流程,代碼比以前質量高很多,但是目前只是完成關鍵部分,還有很多沒弄呢
下圖是兩年前的成果:(都是由js源碼自動生成對應的語言,當時沒做縮進輸出,字符輸出間隔規則也沒做處理,可以利用代碼編輯器format,現在可以進行縮進輸出,因為ast樹結構,天然的層次關系,特棒)

js2cpp

6C4EC7EE89EB4F056D8CF1D146F210E0.jpg

js2objc

6BD841C90CCAFA115DBE8427ADC533D8.jpg

js2cs

F3026FEA065CA99BBEFDD07BD1ADBB44.jpg

入口

E637B3F02E59C716D07AD3E7614EB511.jpg

2017/4/13(周四):

上午:

下午:

  • 參加孩子學校舉行的安全教育,由上海東方衛視的東方110主持人黃奕警官進行現場指導,氣氛熱烈,并且學到不少知識!
安全教育.jpg
  • 分享一下有用的信息:
    1、一定要了解,上海的每個地鐵內都是分區塊的,每個區塊都是有編號的,只要報編號,110可以在30秒內快速定位。

    2、在高架上,如果車子出問題,不知道具體方位,可以在周圍找區塊編號,只要報標號,110可以在30秒內快速定位。

最后還接受了電視臺采訪,感覺講的不錯,就不知道什么時候播出,不知道處女秀是否可以被播出,應該ok吧。哈哈哈!

2017/4/14(周五):

上午:

  • 下載google skia源碼,這個貌似要有點時間了。
  • 繼續撰寫設計模式在UI系統開發中的應用(UIPAnimation實現 上)
  • 現在的軟件真是太大了,就這兩個禮拜,我已經用掉了50g 硬盤空間,僅僅是編譯一些庫而已,現在每個庫動不動就可以產生好幾個g的中間文件,太可怕了,咋就這么大呢,代碼量咋就這么多呢!

下午:

2017/4/15(周六):

上午:

  • skia庫編譯成功,單單編譯,花了半個小時以上,生成的skia.lib靜態鏈接庫281兆,還真是夠大啊!

  • 測試一下skia庫是否ok

  • 從昨天下午到今天上午,終于編譯出最新版的skia引擎,測試效果還是滿不錯的,效率很高,畢竟可直接調用opengl等API,并且重要的是字體渲染和質量很高,其實渲染里面最麻煩的是字體渲染!

skia編譯.jpg

一共1404個編譯單元,超過30分鐘的編譯時間!

skia編譯結果.jpg
skia1.jpg
skia2.jpg
skia3.jpg
skia4.jpg

最后發現,google還是很強大的,技術棧還是選擇:
google v8 js engine/google skia render engine/C++
或許是目前質量比較有保證的選擇!

這幾天再將這些庫在android/ios中編譯運行。IOS應該不會有很大問題,但是android ndk或許會碰到一些問題,但是應該是可以解決的。

  • 好了,skia可以使用了,也算是一個不小的成果。今天天氣好,下午一起出去玩玩,心情舒暢.

2017/4/16(周日):

上午:

  • 京東購買的東西到貨,一個HDMI轉VGA接口,另外一個32G 閃存卡,這樣我的兩個樹莓派3就有用武之地,一個已經裝了linux操作系統,一個安裝了android things操作系統。完美!
google技術棧.jpg
  • 今天是家庭運動日,出去吃飯,下午乒乓,羽球運動。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容