(记录实践项目,通过网页控制平板,然后进行数据交互。未经允许严禁转载哦哦)
一、项目结构(涉及硬件原因)
安卓端: 数据展示以及与人员交互(可能有多个设备)
中间服务: 数据转发以及处理
网页端: 验证是否数据是否互通,相当于测试页面
这代表着将要开发一个安卓,一个中间服务(python c# 等等都可,实现了就行),一个网页。为什么不直接通过WebView,因为硬件嘛,不多说!!!!如果只能单纯网页控制平板,或者平板控制网页都可以使用WebView 足够。(既然说到webview,那说说浏览器内核,有些老设备浏览器内核过老,而且不允许升级。无法加载使用新特性编写的网页,所以只能App内置一个浏览器内核。这个后续会补充.....虽然我实现了,但是没有优化。如果您有更好的方法,可以与大伙们讨论,感谢!)
二、首要问题
1、采用什么通信方式
采用的是Android 与 中间服务采用TCP连接,然后中间服务与网页被要求是WS 和 HTTP都要。
2、Android与中间服务怎么建立连接通信
现在的要求是通过有线连接最好,通过局域网(WIFI)可能会不稳定,在加上一些条件的限制,最后只能通过有线方式连接。当然,这个可能不是最好的方式。如果您有更好的方式,可能评论区内讨论。
然后,就是实现方式,有两个方法,一个是通过usb,一个是通过usb转网卡。当然,就目前而言,实际的效果可能usb转网卡比较稳定。至于为什么,你懂得(USB口您多插几次,如果接口老化,松动的可能性是不是比较大)。那怎么样产生这个连接并且还够稳定、传输速度还要够快。嗯嗯嗯,这个HID可能是一个比较慢的连接,当然可以适用这个项目。
既然连接物理方式已经知道了,通过USB连接,怎么样通信。学过Android开发的应该知道,ADB工具,什么是ADB呢,我也只能复制一段话:“adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb可以在Eclipse中通过DDMS来调试Android程序,说白了就是调试工具。” 来源于百度百科。ADB是一个强大的工具,我目前只会简单使用,要是有好的文章,您也可以向我推荐一下。评论区走起!然后,ADB有一个命令叫 端口转发。这个命令刚刚好满足我们的需求,但是也只是可以用,后面会改,您也可以想想为什么??
3、ADB
ADB我就不过多介绍,我也不是很熟悉--等我学习好再来补充。然后,具体后续更新,就是用 :
adb forward tcp:8000 tcp:9000
具体怎么用这个,暂时先这样。
下面这个划重点,你们可以自己先研究一下,为什么我说,上面够用,下面的更好。
adb reverse tcp:8000 tcp:8000
三、大致实现思路
具体实现步骤,后续细说。
用python写的一个中间件,即可ws也可以http。无非就是ws连接,和 fastapi嘛。
python核心思路:
四、测试网页的编写。
ws 和 http 两套方法,怎么可以互换。
五、考虑的问题
安卓与电脑连接稳定性(是否发送心跳)
怎么设计传输的包结构
传输速度
丢包、粘包、半包
大文件传输
暂时先这样,后续持续更新......