Robię research odnośnie możliwości przeniesienia pewnej aplikacji na urządzenia mobilne. Aplikacja ta działa częściowo w modelu P2P, w tym sensie, że udostępnia ona dane innym użytkownikom sieci, jeśli te o to poproszą. Wiąże się to z koniecznością otwarcia portu TCP/UDP na stałe oraz z przetwarzaniem przychodzących zapytań możliwie w czasie rzeczywistym.
Potrzebuję, żeby mi ktoś podpowiedział na co zwrócić w tej kwestii uwagę, ponieważ nie mam za wiele pojęcia na temat ekosystemu Androida. Podejrzewam, że może być z tym problem. Wiem ze szczątkowych informacji w postaci komentarzy w Internecie, że masowo w aplikacjach działających w tle stosuje się (przynajmniej w przypadku powiadomień) pośrednika w postaci usługi Google (FCM?). Stosuje się go, ponieważ Android traktuje ją jakoś priorytetowo, do tego stopnia, że nawet komunikator Signal z niego korzysta zamiast ciągnąć powiadomienia z własnego serwera. FCM ponoć stosuje też jakiś własny podział na często używane i rzadziej używane aplikacje, co wpływa na priorytet przetwarzania tasków. Faktycznie jest tak źle ze wzbudzaniem usług działających w tle, czy jest jakiś inny czynnik który pcha twórców aplikacji w FCM?
Z tego co wyczytałem to istnieje też coś takiego jak "Foreground services". Czy to jest najlepszy sposób na uruchomienie wątku w tle, który pasowałby do tego co chcę zrobić? Są jakieś ograniczenia odnośnie otwierania portów TCP/UDP w procesach działających w ten sposób? Natrafiłem też na tego typu inicjatywę https://dontkillmyapp.com/ która krytykuje twórców sprzętu za zbyt restrykcyjną politykę wobec "background apps". Czy problem dotyczy też tego "Foreground services" czy to jest inna kwestia? I czy faktycznie panuje w Androidzie taka wolna amerykanka, że każdy producent robi co mu się podoba i nie jest to jakoś ustandaryzowane?