Boas.
Estou com um problema grave numa aplicação. Esta aplicação só corre em dois ou três tablets. E num deles tem problemas.
Nesta aplicação eu acedo a um servidor XMPP e tenho de validar periodicamente se a validação está ok porque se não estiver tenho de re-conectar de novo.
Esta validação está a ser feita todos os 5~15 segundos. A primeira validação que é feita é verificar se tem internet. O problema está aqui porque o primeiro problema é que o ConnectivityManager.getActiveNetworkInfo() retorna sempre null mesmo quando tem internet.
De forma a contornar este problema decidi validar a internet tentando fazer uma especie de "ping" a um website.
O problema aqui é que a aplicação abre mais pipes/sockets. Isto não seria um problema se não fosse o facto de ter descoberto que todos os pipes/sockets abertos por esta aplicação (e por outras) não são fechados. Logo ao fim de algum tempo a aplicação acaba por esgotar dodos os recursos disponíveis e faz o restart da mesma. Normalmente podemos e devemos fechar os sockets que são abertos mas estes pipes/sockets são inerentes ao uso the threads em background.
Tentei perceber o que diferenciava um tablet do outro e aparentemente a diferença mais visível é o gcc.
Mas SO não é a minha onda. Tirei algumas informações dos tablets e aqui está:
DEVICE COM PROBLEMAS
root@android:/ # cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 191.49
processor : 1
BogoMIPS : 191.49
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : Amlogic Meson6 g24 customer platform
Revision : 0020
Serial : 000000000000000c
Linux version 3.0.8 (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #2 SMP PREEMPT Sat Mar 16 14:59:24 CST 2013x
root@android:/ # cat /proc/meminfo
MemTotal: 899636 kB
MemFree: 508980 kB
Buffers: 7488 kB
Cached: 91736 kB
SwapCached: 0 kB
Active: 211984 kB
Inactive: 38676 kB
Active(anon): 151472 kB
Inactive(anon): 300 kB
Active(file): 60512 kB
Inactive(file): 38376 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 524288 kB
HighFree: 193704 kB
LowTotal: 375348 kB
LowFree: 315276 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 12 kB
Writeback: 0 kB
AnonPages: 151436 kB
Mapped: 52384 kB
Shmem: 336 kB
Slab: 18528 kB
SReclaimable: 7712 kB
SUnreclaim: 10816 kB
KernelStack: 7608 kB
PageTables: 7304 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 449816 kB
Committed_AS: 4315404 kB
VmallocTotal: 262144 kB
VmallocUsed: 102024 kB
VmallocChunk: 123844 kB
DEVICE A FUNCIONAR
shell@android:/ # cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 957.48
processor : 1
BogoMIPS : 957.48
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : Amlogic Meson6 g04 customer platform
Revision : 0020
Serial : 000000000000000c
shell@android:/ # cat /proc/version
Linux version 3.0.8 (android@amdroid) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #1091 SMP PREEMPT Sat Jan 19 10:32:55 CST 2013
shell@android:/ $ cat /proc/meminfo
MemTotal: 897124 kB
MemFree: 376436 kB
Buffers: 14260 kB
Cached: 115200 kB
SwapCached: 0 kB
Active: 267188 kB
Inactive: 32396 kB
Active(anon): 170168 kB
Inactive(anon): 384 kB
Active(file): 97020 kB
Inactive(file): 32012 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 458752 kB
HighFree: 68028 kB
LowTotal: 438372 kB
LowFree: 308408 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 170072 kB
Mapped: 53492 kB
Shmem: 428 kB
Slab: 84896 kB
SReclaimable: 57936 kB
SUnreclaim: 26960 kB
KernelStack: 4192 kB
PageTables: 6496 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 448560 kB
Committed_AS: 4503612 kB
VmallocTotal: 188416 kB
VmallocUsed: 105352 kB
VmallocChunk: 62404 kB
PERGUNTA: Alguém tem conhecimento de um problema deste género? O que posso fazer?