
我的软件开发从业经验论
语音厅、国内安卓市场上架
我自己的人生经历。经历了,学习了,成长了…
应用上架
国内安卓市场上架比iOS还要麻烦。需要注意的点非常多。包括但不限于:
首次启动弹窗
工信部要求,安卓应用上架,在用户首次打开app的时候,必须显示隐私政策弹窗。在用户接受协议之前,App不得申请权限、不得初始化第三方SDK、不得读取设备序列号、设备IMEI等敏感信息。
权限弹窗与权限描述文案同屏
小米和华为要求权限弹窗出现的同时,也要有一段描述文字,解释该权限将要被如何使用。类似于iOS上的Info.plist权限描述文件。不同在于,安卓的你要自己写页面。
没有系统级别的支持,就是自己申请权限的同时显示弹窗,申请完了再让弹窗消失。可以说是非常恶心。安卓抄袭都抄不明白。
青少年模式
Vivo等平台要求语音厅应用必须提供青少年模式。并且必须要有实质性的功能,不能只是一个空壳。否则上架会被拒绝。
语音厅应用基本逻辑
语音厅应用主要是维护websocket,接入RTC服务,接入小游戏等,这类应用大部分都是换皮和套壳应用,核心逻辑都差不多,说白了,其中大部分都是圈快钱的思维。
维护WebSocket
自己维护Websocket,用于实现应用内的礼物飘屏,房间内消息,私信消息,系统通知等。
WebSocket的心跳机制异常重要,如果不维护心跳,前后端无法保证通信管道的有效性,导致无法正常通信。
通常来说,客户端可以定时向服务端发送心跳包(ping包),时限内收到心跳回复包(pong包)则认为该连接有效,否则要考虑重新建立连接。
语音厅核心,RTC
我们当时用的是腾讯TRTC。语音房间以及单人通话功能基于该服务。
多人语音厅与一对一通话,都是基于TRTC的API实现的,本质上都是多人语音厅,房间在线人数不同、房间人物的角色(观众、主播)不同,就形成了不同的业务效果(连麦,上麦讲话,多人通话等)。
IoT、硬件互联
智能硬件基本逻辑
手机软件在智能互联系统中扮演的角色是什么?需要做什么事情?
一款智能硬件,需要借助手机app来与用户进行交互。手机app作为介质,负责与硬件交互,读取硬件数据,控制硬件行为。
手机与硬件直连
所谓直连,手机通过蓝牙或者Wi-Fi去定向的连接到设备,需要用户手动管理连接,比如要选择设备蓝牙,选择设备的AP等。
通常来说,拿到一款硬件后,我们可能需要对其写入网络配置,如果是Wi-Fi产品,需要写入用户家里的Wi-Fi账号密码,如果内置4G芯片,需要写入服务器信息。怎么写入?通常是通过蓝牙或者局域网RPC调用。
通过蓝牙连接设备,扫描服务和特征,给对应的特征写入数据,这一步通常需要跟硬件厂商协作,制定交互协议。至于蓝牙调用,请看我的IoT之低功蓝牙。
也有一些设备可以通过Wi-Fi连接,这些设备会自带一个Web服务器,我们可以通过HTTP请求来控制设备。通过Wi-Fi连接到这些设备后,就像访问普通服务器一样来操作设备。
局域网内连接
有些设备不需要你手动选择蓝牙或者AP,只要你处在同一个局域网内,就可以直接发现,并与设备进行交互。经典案例就是打印机,通常我们与打印机处在同一个局域网内,就可以直接发现并连接到打印机。
怎么做到的?
此功能实现基于mDNS协议。mDNS是一种基于UDP的发现协议,用于在本地网络中发现服务和设备。简单来说,手机端在局域网内广播一个mDNS查询包,智能硬件设备收到请求后,会回复一个mDNS响应包,包含自己的IP地址和端口号。
得到这些,接下来就是看业务场景,自己选择使用HTTP或者WebSocket来与设备进行交互。
- 标题: 我的软件开发从业经验论
- 作者: Aron
- 创建于 : 2025-03-10 09:21:33
- 更新于 : 2025-10-14 09:54:50
- 链接: https://likeso.github.io/2025/03/10/my-work-experience/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。