최적화3 Android 런타임(ART), Dalvik 기능까지 제대로 알아보기 ART와 Dalvik을 비교하고 특징에 대해 공부하면서 어떤 문제 때문에 ART를 도입하고 ART에서 새로운 기능을 도입하였는지 알 수 있었습니다. ART와 Dalvik 설명에 앞서서 DEX파일과 AOT 컴파일러와 JIT 컴파일러에 대해 가볍게 알아보겠습니다. DEX 파일 Android에서 DEX 파일은 "Dalvik Executable" 파일을 의미합니다. 이 파일 형식은 자바 바이트코드(.class 파일)를 Dalvik 가상 머신이나 Android Runtime (ART)에서 실행할 수 있는 형태로 변환한 것입니다. 안드로이드 환경에서 동작되도록 최적화되어 있습니다. AOT(Ahead Of Time) , JIT(Just In Time) JIT 컴파일러가 바이트 코드를 런타임에 기계어로 바꾼다면 AOT.. 2023. 11. 9. 3. 경로 최적화로 좌표 데이터 약 73% 감소 경로를 최적화하여 좌표 데이터 175개를 46개로 약 73% 감소시킨 경험과 고민했던 부분에 대해서 설명드리려 합니다. 문제 인식 러닝 앱에서 4~5초마다 현재 위치를 좌표 리스트에 추가해주고, 이 좌표 리스트로 경로를 그려주었습니다. 하지만, 위치 정보는 오차가 존재합니다. (확인한 결과 latitude는 현재 위치에서 약 0.0005 정도, longitude는 약 0.0002 정도 오차가 있는 걸로 확인 됩니다.) 오차가 존재하기 때문에 유저가 일직선으로 뛰어도 경로에는 일직선으로 보이지 않고 삐뚤빼둘하게 그려집니다. 왼쪽) 위치 정보 오차에 따른 문제, 오른쪽) 그리고 싶은 경로 위 사진에서 오른쪽의 빨간 선과 같이 직선으로 진행하는 경로에서 직선에서 시작하는 점과, 끝나는 점을 하나로 이어주고, .. 2023. 10. 17. 2. bindService를 적용하여 메모리 누수 방지하기 (RunWithMe 리팩토링) 2. bindService 적용하여 메모리 누수 방지하기 안녕하세요 RunWithMe 리팩토링 프로젝트에서 팀장과 안드로이드 개발을 맡은 서경원입니다. RunWithMe 프로젝트를 리팩토링하면서 배우게 된 내용에 대해서 설명해보려합니다. 이해가 안되는 내용이나 제가 잘못 적은 부분이 있다면 꼭 댓글 남겨주세요. startService와 bindService Service를 제대로 적용하기 위해 Service에 대해 공부했고 그 중 startService와 bindService의 차이점을 명확히 알고자했습니다. 아래는 startService와 bindService에 대한 설명입니다. 안드로이드에서 startService()와 bindService()는 서비스를 시작하는 두 가.. 2023. 5. 25. 이전 1 다음