微信小程序剖析 , 运行机制及框架原理:
运行机制
还好微信的开发团队在软件工程的实践还有待提高,我们才有机会可以深入了解他们的代码。
解压应用
首先你需要有下面的工具:
-
Mac电脑
-
微信 Web 开发者工具.app
-
WebStorm / 其他编程器 或 IDE,最好可以支持重命名
首先,我们需要右键微信web开发者工具.app,然后显示包的内容,在 Contents/Resources/app.nw
下面的内容即是我们的代码,拷贝出来:
简单的说明一下:
-
app/ 目录下放置了app的代码
-
modified_modules/ 即一些修改后的模块
-
node_modules/ 地球人都知道
-
package.json 呵呵,你一定是知道的,配置了NW相关的内容
在modified_modules
目录下有两个子模块:
-
anyproxy,从名字就可以看起来这是一个代理模块
-
weinre,远程调试工具
IDE
我们已经知道了这是一个NodeWebkit封装的Web应用了。
在package.json中的"main": "app/html/index.html",
,即定义了这个APP的入口是这个index.html
,而不是别的文件。
很顺利的我们看到了他们调用的文件了:
这里面有一个init方法,看来他就是NodeWebkit相关的入口了。用WebStorm的shift + f6 RENAME 这些变量好十几次,终于看到了下面的代码了: