最近项目有一个这样的需求:需要在安卓上部署一个服务器,app本身作为服务器,另乙个安卓作为客户端,进行数据交互,于是就在网上看看有没有安卓本地小服务功能,结果找到了包,于是自己写一个demo,并在项目中稳定运行了。这个服务端和后台的功能基本一样,使用也差不多。
导入包
implementation 'com.yanzhenjie.andserver:api:2.1.10'
kapt 'com.yanzhenjie.andserver:processor:2.1.10'
创建服务端
class LocalServer {
companion object {
const val tag = "SER_TAG"
const val port = 8080
}
private var mServer: Server? = null
/**
* Create server.
*/
fun serverManager(context: Context, onSuccess: () -> Unit) {
Thread {
val address = IpUtils.getLocalIPAddress()
Flog.e(tag, "server ip= " + address.hostName)
PreferenceUtil.setString(localIp, "https://" + address.hostName + ":" + port + "/")
}.start()
mServer = AndServer.webServer(context)
.port(port)
.timeout(10, TimeUnit.SECONDS)
.listener(object : Server.ServerListener {
override fun onStarted() {
Flog.e(tag, "服务器启动成功")
onSuccess()
}
override fun onStopped() {
Flog.e(tag, "服务器停止")
}
override fun onException(e: Exception?) {
Flog.e(tag, "服务器启动失败:$e")
}
})
.build()
}
/**