Android Socket本地部署APK更新方案

Android 设备做服务器来更新另一台 Android 的 apk,是一种比较灵活的本地部署方式。利用Socket搞个 TCP 服务器,一台设备充当“服务端”,另一台是“客户端”,就能在 WiFi 下搞定 apk 传输和安装。操作不复杂,关键点主要在Socket 编程文件流传输权限配置这几个环节。

Android 的ServerSocket挺好用,监听个端口,等客户端连接,一旦连上就能用InputStream/OutputStream传 apk 文件。文件大也不怕,分块传输就行了。你要是担心中间人攻击,那就考虑上SSL,不过配置起来稍微麻烦点。

网络传输在 Android 里不能跑主线程,推荐你用AsyncTaskHandler。你也可以试试线程池,效率还不错。还有,两个设备得在同一个 WiFi 网络下,不然连都连不上。IP 地址可以在设置里看,写死在客户端也行,但最好做成可配置的。

apk 传过去后怎么装?你可以用PackageManager调用installPackage(),不过 Android 8 之后要注意权限问题,得给应用装 apk 的权限。还有记得动态申INTERNET读写存储权限,不然你传了半天也白搭。

代码结构方面,服务端监听、客户端求,文件接收和安装,建议分模块写,逻辑清晰,后期扩展也方便。你要是想深入,可以看看下面几个链接,都是和Socket 通信文件传输相关的例子,写得还挺实在的。

如果你手头有两台 Android 设备,想自己搭个 apk 推送系统,试试这种方式还挺靠谱的。不用服务器、部署快,调试也方便。

zip
Android设备做服务器更新另一台Android的apk.zip 预估大小:2个文件
folder
Android设备做服务器更新apk 文件夹
file
UpgradeApkClient.zip 1.87MB
file
UpgradeApkServer.zip 1.9MB
zip 文件大小:3.77MB