Android 基于Android blockly和蓝牙通信的机
2018-04-20 本文已影响1066人
Jafir
Blockly
Blockly is a library for building drag-and-drop visual editors for
JavaScript and other programming languages. Blockly for Android is
a developer preview of Blockly's editor built with standard Android
views and fragments, offering more responsive touch performance and
easier integration in Android apps.
![](https://img.haomeiwen.com/i1311457/083bf07f6d511df1.png)
![](https://img.haomeiwen.com/i1311457/198361ee8bf9c34a.png)
![](https://img.haomeiwen.com/i1311457/201b06bfa1dffb2c.png)
![](https://img.haomeiwen.com/i1311457/9775c2bd7bd2ce74.png)
![](https://img.haomeiwen.com/i1311457/a39bc35137251838.png)
![](https://img.haomeiwen.com/i1311457/1af3daf53b68ddbf.png)
![](https://img.haomeiwen.com/i1311457/1ab092ca9f98a731.png)
实现原理
1、蓝牙连接,ble蓝牙连接及其通信,主要在bleutils包下面,其他界面相关实现在robot包下
2、Blockly 自定义模块,创建生成模块,构建完毕生成js和json,json为模块解析构建的样式和类型依据,
js为执行相关语句的构建,例如 if else的构建。
3、Blockly编程实现,生成js代码,然后放入webview中加载js,特定的蓝牙通信的指令代码实现其js和Android交互,Android进行蓝牙通讯。
4、js与Android通信为JavaBridge线程,可阻塞。(如果在需要同步阻塞等待设备传回消息,可以参考ShowInterface的sleep方法,循环等待)
5、对于ui的改造,在blocklylib-core中也有,具体可参看源码