开发周记(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阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容