在我的应用程序中,我使用了一个数据报套接字、一个服务器套接字和几个套接字。当我的应用程序在我的 android 设备上运行时,手机会在某个区域发热,并且需要大量能量。我认为问题的原因是我的套接字。但我不确定哪种操作如此耗能:
创建新的 Sockets 是否需要花费很多精力:
Socket so = new Socket();
ss = new ServerSocket( port );
mSocket = new MulticastSocket( port );
如果我不再需要它,关闭服务器套接字和其他套接字是否重要。
连接会消耗能源吗?
so.connect( new InetSocketAddress(ip, port ), 1000);
连接后连接是否需要很多能量?(长时间不发送数据时断开连接更好)大量的Sockets需要很多能量吗?
我也有几个线程:
除了我的主线程和三个 binderthreads,我还有三个:
第一个线程:在我的数据报套接字上侦听传入消息:
DatagramPacket packet = new DatagramPacket(buffer, buffer. length);
mSocket .receive(packet);
第二个线程:监听多个套接字上的传入消息:
try {
if (objectInputStreamList .size() != 0){
if (counter >= objectInputStreamList .size()){
counter = 0;
}
ObjectInputStream ois = objectInputStreamList .get(counter);
Object o = ois.readObject();
if (o instanceof Message){
receive((Message) o);
System.out .println("Message received in Server");
}
}
} catch (SocketTimeoutException soTOE){
counter++;
}
第三个线程:通过互联网通过http请求将数据发送到服务器。
其中一根线需要很多能量吗?
即使 wifi 已关闭或 wifi 已打开但未连接到 wlan,该应用程序也需要大量能量。所以没有任何联系。
这些操作中哪些是耗能的?我能做些什么来减少能量?
谢谢您的回答。