Förhindra NetD från att förstöra sockets när Android-enhet inte laddas
Användare av Android Marshmallow och Nougat rapporterar ibland att Netd förstör socklar när enheten inte laddar. Ofta kommer Logcat att visa något så här:
06-23 12: 38: 17.576 522 2676 I Netd: Förstörda 3 uttag för UidRanges {10000-2147483647} hoppa = {1001 1027 10010 10013 10018 10021 10035 10037 10064 10081} i 1, 2 ms
Det här är faktiskt oerhört enkelt att fixa, så enkelt att det faller under obetydlig blindhet - utföra djupmetodfelsökning medan du saknar något i vanlig syn. Sanningen är att den skyldige till detta problem är Android Doze-funktionen som introducerades i Marshmallow 6.0, och uppdaterad i Nougat.
Dysläge aktiveras när en enhet lämnas orörd under en tidsperiod. När Doze aktiveras gör din enhet följande:
- Nätverksåtkomst är inställd.
- Systemet ignorerar wake locks.
- Standard AlarmManager larm (inklusive setExact () och setWindow ()) uppskjuts till nästa underhållsfönster.
- Om du behöver ställa in larm som stannar i Doze, använd setAndAllowWhileIdle () eller setExactAndAllowWhileIdle ().
- Larm som ställs in med setAlarmClock () fortsätter att avfyras normalt - systemet avslutar Doze kort före larmet brandar.
- Systemet utför inte Wi-Fi-skanningar.
- Systemet tillåter inte att synkroniseringskort ska köras.
- Systemet tillåter inte att JobScheduler körs
Så här har du två alternativ:
Alternativ 1: Anpassa dina appar till Doze via whitelisting-behörigheter
Du kan manuellt konfigurera vitlistan i Inställningar> Batteri> Optimering av batterier. Alternativt tillhandahåller systemet sätt för apps att be användare att vita dem.
En app kan avbryta ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS avsikt att ta användaren direkt till batterim optimering, där de kan lägga till appen.
En app som har behörigheten REQUEST_IGNORE_BATTERY_OPTIMIZATIONS kan utlösa en systemdialog för att låta användaren lägga till appen till vitlistan direkt utan att gå till inställningarna. Appen avfyras en ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Intent för att utlösa dialogrutan.
Alternativ 2: Avaktivera Doze fullständigt på din enhet - rekommenderas inte, men det är din telefon
Hämta appen Doze Settings Editor på din enhet, starta den och ställ in följande parametrar:
PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här- dumpsys deviceidle inaktiveras
- idle_to 1
- max_idle_to 1
En fullständig förklaring av parametrarna för Doze Settings Editor:
Inaktiv Timeout - inaktiv_till
Det här är dags, efter att ha blivit inaktiv, där vi börjar titta på rörelsessensorn för att avgöra om enheten lämnas ensam. Vi gör inte detta omedelbart efter att ha gått inaktivt bara för att vi inte vill fortsätta att köra den signifikanta rörelsessensorn när skärmen är avstängd.
Sensing Timeout - sensing_to
Om vi inte får en återkallelse från AnyMotion i den här tidsperioden + lokaliseringen, kommer vi att byta från STATE_SENSING till STATE_INACTIVE, och alla AnyMotion-återuppringningar medan de inte är i STATE_SENSING kommer att ignoreras.
Lokalisering av timeout - lokalisering_till
Det här är hur länge vi väntar på att försöka få en bra platsfix innan du går in i viloläge.
Plats Noggrannhet - Location_accuracy
Den önskade maximal noggrannheten (i meter) anser vi att platsen ska vara tillräckligt bra för att gå på tomgång. Vi kommer att försöka få en noggrannhet fix åtminstone detta bra eller tills lokalisering_för att löpa ut.
Motion Inaktiv Timeout - motion_inactive_to
Det här är dags, efter att ha sett rörelse, att vi väntar efter att bli inaktiv från det tills vi börjar leta efter rörelse igen.
Inaktiv efter inaktiv timeout - tomgång_av_aktivt_till
Det här är dags, efter det att inaktiv timeout försvinner, att vi kommer att vänta med att leta efter en signifikant rörelse tills vi verkligen anser att enheten är ledig.
Idle Pending Timeout - idle_pending_to
Detta är den första tiden, efter att den varit ledig, att vi tillåter oss att vara tillbaka i IDLE_PENDING-tillståndet så att systemet kan köras normalt tills vi återgår till tomgång.
Max inaktiv utebliven timeout - max_idle_pending_to
Maximal pågående ideltid (tid spenderad) får vi använda.
Idle Pending Factor - idle_pending_factor
Skalningsfaktor för att gälla för aktuell pågående inaktiv timeout varje gång vi cyklar genom det tillståndet.
Idle Timeout - idle_to
Detta är den första tiden som vi vill sitta i viloläge innan vi vaknar igen för att återvända till väntande tomgång och tillåter normalt arbete att springa.
Max Idle Timeout - max_idle_to
Maximal tomgångstid vi får använda.
Idle Factor - idle_factor
Skalningsfaktor som gäller för aktuell tomgångstidpunkt varje gång vi cyklar genom det tillståndet.
Min Time to Alarm - min_time_to_alarm
Detta är den minsta tiden vi tillåter tills nästa kommande larm för att vi faktiskt ska gå in i viloläge.
Max Temp App Whitelist Duration - max_temp_app_whitelist_duration
Maximal tid för att tillfälligt vitlista en app när den tar emot en hög källa.
MMS Temp App Whitelist Duration - mms_temp_app_whitelist_duration
Mängd tid vi skulle vilja vitlista en app som tar emot ett MMS.
SMS Temp App Whitelist Duration - sms_temp_app_whitelist_duration
Den tid vi vill ha vitlista på en app som tar emot ett SMS.
PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här