서론 :
출시 이후, 새 기능들을 추가한 뒤에 업데이트를 올리기 위해 테스트를 하고 있는데
출시버전에서는 타이머를 trigger해놔도 다른 백그라운드 앱(포그라운드 X)이 정해진 시간 외에는 강제종료 되지 않는 것 같은데
개발하고 있는 버전에선 이상하게 trigger 시간이 되지 않았는데 20분정도만 지나면 백그라운드 앱이 종료되는 것 같다는 느낌.
이걸로 약 일주일 째 실험을 하느라 출시날이 미뤄졌다.
느낀점 :
1. 대충 분석하여 자꾸 뺑뺑이를 돌아서 테스트가 더 길어졌다. 테스트가 너무 기준이 명확하지 않고 오합지졸이다.
2. 중요하지 않은 이 부분에 오히려 너무 많은 시간을 쏟아서 시간 안배를 하지 못한 것 같다.
3. 테스트 과정에서도 너무 체계적이지도 못했고, 시간만 쓴 느낌이다.
4. 깃 관리를 더 잘 해야겠다.
결론 :
메모리 상황에 따라 다른 것 뿐이었다.
개발 도중 포그라운드 서비스가 무거워진 탓이나, 추가된 특정 코드가 문제가 된 것이 아니었다.
백그라운드 앱만 틀어놔도 종료될 때도 있었고, 내 앱 버전에 따라서도 랜덤하게 종료되고 안종료되고가 반복될 뿐이었다.
1차 테스트
현재 버전에서만, deep idle 들어가면 녹음이 trigger 전에도 꺼지는 것 같다. 왜지??!
재부팅 이후에 테스트해서그런가?!
걸림돌이 있어봐야 BOOT_COMPLETE 뿐인데.
테스트
9시 30분 꺼져야함.
근데 8시 44분 전에는 음악이 꺼져야함.
-> 안꺼짐. 역시 내 버전에서만 그럼.
테스트
9시 55분에 꺼져야함.
근데 9시 17분에는 음악이 꺼져야함.
-> 내버전이다. 이번엔 재부팅안했음. 또 꺼졌다. 현재시간 9시 15분.
대체로 30분 내에선 꺼지는 것 같다. 이유는 뭘까. 지금까지도 그런거 보니 재부팅은 절대 아니다.
테스트
10시 25분에 꺼져야함. (9시 20분 trigger)
근데 9시 50분 내에는 음악이 꺼져야함.
-> 이전 버전임. 또 얘는 문제없음.
BOOT_COMPLETED 적용 전 버전으로 다시 테스트중. 이거 저번에 했을땐 마지막출시버전처럼 잘 되었었음. 지금처럼 안멈췄었음.
11시 05분에 꺼져야함. (10시 00분 trigger)
근데 10시 30분 전에는 음악이 꺼져야함.
-> 이전 버전임. 진짜 이거랑은 다른게 boot_complete 추가된거랑 isForeground밖에 없어서 다르면 안되는거임.
-> 으잉 또 20분만에 백그라운드가 꺼지네.
또 똑같이 시도
11시 35분에는 꺼져야함. (10시 27분 trigger)
근데 10시 57분 전에는 음악이 꺼져야함.
-> 또 20분만에 꺼졌음.
이번엔 출시되어있는 버전으로 또 가보자
11시 55분에는 꺼져야함. (10시 49분 trigger)
근데 11시 20분 전에는 음악이 꺼져야함.
-> 꺼졌는데요..?
예상되는 것
1. onGoing 2. startService 3. FOREGROUND_SERVICE_IMMEDIATE
출시된 버전 한번 더
12시 24분에는 꺼져야함. (11시 19분 trigger)
근데 11시 49분 전에는 음악이 꺼져야함.
-> 안꺼짐..
이후 이번 개발 버전에서 onGoing, startService, 지연알림 다 해제해보고 시도해보기
1시 09분에는 꺼져야함. (12시 04분 trigger)
근데 12시 34분 전에는 음악이 꺼져야함.
-> 다 해제했는데 꺼졌음 ㅜ
그리고 출시된 버전으로 한번 더
1시 38에는 거져야함. (12시 34분 trigger)
근데 1시 04분에는 음악이 꺼져야함.
-> 안꺼짐.
출시 준비중인 버전에서 onGoing, startService, 지연알림 다 해제해보고 시도해보기 한번 더
3시 07분에는 꺼져야함.
근데 2시 33분 전에는 음악이 종료되어야.
-> 꺼졌다. onGoing, startService, 지연알림이 문제가 아니라는거.
출시된 버전
3시 31분에는 꺼져야함 (2시 26분 trigger)
근데 2시 56분 전에는 음악이 꺼져야함.
-> 종료 안됐구요...
13적용 전 버전 (전면광고 제거)
4시 7분에는 꺼져야함 (3시 02분 trigger)
근데 3시 32분 전에는 음악이 꺼져야함.
-> 종료 안됐구요.
13적용 전 버전 (전면광고 제거) 한번 더
4시 47분에는 꺼져야함. (3시 43분 trigger)
근데 4시 13분 전에는 음악이 꺼져야함.
-> 종료 됐네 또..
13번 적용 전 버전에서 Receiver뺀 버전 = 출시버전과 다른게 없음. ('애드몹 테스트화')
5시 56분엔 꺼져야함 (4시 51분 trigger)
근데 5시 21분 전에는 음악이 꺼져야함.
-> 이건 출시랑 적용된게 같음.
-> 근데 얘까지도 꺼졌음.
13적용 전 버전 빼기 Receiver = 출시버전과 다른게 없음. 한번 더. ('애드몹 테스트화')
6시 22분엔 꺼져야함 (5시 17분 trigger)
근데 5시 47분에는 음악이 꺼져야함.
-> 꺼졌음. 20분만에.
이번 출시준비중인 버전
7시 2분 꺼져야함 (5시 57분 trigger)
근데 6시 27분에는 꺼져야함.
-> 20분만에 꺼졌다.
출시된 버전
7시 47분에는 꺼져야함 (6시 42분 trigger)
근데 7시 12분에는 음악 꺼져야함.
-> 안꺼짐.
이전 알람이 영향을 미치는건 아니겠지? 취소하긴했지만 말이야.
이번 버전
8시 56분에는 꺼져야함 (7시 51분 trigger)
근데 8시 21분에는 음악 꺼져야함.
-> 여기서도 꺼지면 이전 알람이 영향을 미치는건 아님.
-> 꺼짐.
이전 서비스 등록이 영향을 미치는건 아님.
도즈모드 + 타 앱 실험
8시 16분 trigger
-> 꺼짐
도즈모드 + 타 앱 실험
11시 43분 trigger
-> 꺼짐
도즈모드 + 타 앱 실험 (음량조절 off)
12시 08분 trigger
-> 안꺼짐.
도즈모드 + 타 앱 실험 (음량조절 off)
1시 27분 trigger
-> 안꺼짐.
startForeground나 onGoing이나 브로드캐스트나 등등 설정이 메모리 더 먹는건 사실이지만
백그라운드 서비스는 정말 메모리 상황에 따라 자유 제거되는거라고 봐야 할 것 같다.
2차 테스트
타이머를 2시간으로 trigger 하고 40분 정도 지켜볼 예정이다.
홈키가 아니라, 뒤로가기로 앱 종료해야한다 주의.
타사 타이머 11시 20분 trigger (2시간)
-> 꺼지지 않았다.
[메모리정리 후]
가장 최신 개발 버전 12시 trigger (2시간)
-> 꺼졌다.
[메모리정리 후]
전면광고 제거(리뷰마케팅) 12시 47분 trigger (2시간)
-> 안꺼졌다. 1시간가량이 지났는데도.
[메모리정리 후]
애드몹 테스트화 1시 41분 trigger (2시간)
-> 안꺼졌다.
[메모리정리 후]
admob_test 2시 24분 trigger (2시간)
-> 안꺼졌다.
[메모리정리 후]
가장 최신 개발 버전 3시 10분 trigger (2시간)
-> 안꺼졌다.
..단 한번도 안꺼지지 않던 이 케이스가, 이번엔 꺼졌다..
진짜 그동안의 시간이 다 어디간건지 정말 너무 짜증난다...!!
진짜 다 포기해버리고 싶다. 지금은 새벽 3시 37분. 금 토 일 월 4일은 다 어디로 간거지..?!
이젠 진짜 뭐가 문제인지 전혀 모르겠다.
일단 포그라운드 서비스 1시간 20분 등록 후 수면.. -> 잘 꺼지긴 함.
포그라운드 서비스는 강제종료 되지 않는다.
일단 1:24 트리거했고, 로그 틀어놨음.
-> 안꺼짐
2:06 한번더
-> 안꺼짐
리시버 주석 전 -> 꺼짐
리시버 주석 후 -> 안꺼짐
리시버 주석 전 -> 안꺼짐
리얼 걍 휴대폰 상황에 따른 도박이 맞는듯 하다.
2시37분
-> 꺼짐.
애드몹 테스트화 3시 11분
-> 안꺼짐.
가장 최신 개발버전 4:05
-> 안꺼짐.
가장 최신 개발버전 6:05
-> 안꺼짐.
3차 테스트
계속 테스트를 며칠째 하고 있다.
결국, 문제라고 생각했던
startService -> startForegroundSerivce 문제 아니다
onGoing 문제 아니다
IMMEIDATE 문제 아니다
BroadCastReceiver 생긴 문제 아니다
다 문제가 아니었다~~ 시스템 상황 차이.
이번 버전으로도 종료 안된다.
메모리 상황에 따라 다른 것 같다.
마지막으로 한번 더 해봤는데 종료 안됨.
두번 더, 연속으로 할 땐 메모리 정리도 안하고 했는데 종료 안됨.
+ 알아낸 재밌는 사실
package_replace 넣고 테스트해서 완료했던건
'지연알림 해제' 까지 커밋 하고 테스트 완료한거다.
참고로 '지연알림 해제' 커밋(잘 테스트 되었던 것)부터 달라진거
-> BOOT_COMPLETED 리시버 추가(priorty도 설정)
-> isForeground 전역변수 사용
정확히 이거 뿐~!! 나중에라도 문제가 있어봐야 이거 뿐인데 이게 문제가 될리도 없다.
그냥 녹음만 틀어놔도 꺼지는것도 확인. 또 했는데 또 꺼졌다.
결국엔 그거나 이거나 다 각 상황 메모리차이라고 밝혀졌지만(상관없음..! 이번 버전이 문제가 있던게 아니라는 것)
차이도 이거뿐이었다.
며칠째 몰 한거야~~!
너무 체계적이지 못했고, 시간 안배도 제대로 하지 못했다.
'[개발 일지]' 카테고리의 다른 글
안드로이드 Alpha값 세팅 해프닝 (0) | 2023.06.11 |
---|---|
당신이 잠든 사이에(앱 자동종료 타이머) - Sleep timer 앱 리뉴얼 개발일지 (1) | 2023.06.04 |
[2023.05.21~27] 당신이 잠든 사이에 리뉴얼 출시 이후, 서비스 실험 (1) | 2023.05.27 |
취소와 확인 버튼의 위치와 순서의 의미는? (0) | 2023.05.25 |
더 이상 기술 개발에만 국한되어서는 안된다 (0) | 2023.05.23 |