현재 여러 개의 이미지 파일을 분석하고 교차하는 멋진 Android 앱을 개발 중입니다. 불행히도 나는 그것에 관한 더 많은 정보를 폭로 할 수 없다.내부 SD 카드 안드로이드 장치에 Errno 24 (열린 파일이 너무 많음) 오류가 발생했습니다.
아무리해도 여러 장치에서 테스트를 해봤지만 임의의 상황에서 너무 많은 열린 파일 조건 (Errno 24)에 도달했습니다. 이것은 내부 SD 카드 (삼성 갤럭시 S3와 같은)가있는 기기에서 발생했습니다. 장치를 뿌리 뽑은 후, sdcard가 별도의 파일 시스템 (FUSE라고하는 가상 파일 시스템)으로 마운트 되었기 때문에 발생하는 문제를 식별 할 수있었습니다. 여기서 내 응용 프로그램에서 연 파일은 시스템 프로세스/system/bin에 의해 실제로 열립니다./sdcard /.
이렇게하면 장치의 모든 프로세스가 1024 파일 디스크립터 인 (SD 카드에있는 파일)으로 제한됩니다. 1024 개의 파일 설명자 제한은 프로세스 당 Android의 최대 열린 파일 수입니다.
예를 들어 10 개의 파일 (데이터베이스 파일, 속성 등)을 각각 열어 설치 한 100 개의 앱이있는 기기를 예로 들면 거의 한계에 도달했습니다. 1024 파일의 한계를 넘으면 장치 전체가 쓸모가 없습니다. 앱이 작동을 멈추는 등등.
★★ 당신은 내가처럼이 열세에 찾을 경우이 개방 문제를 투표 ★★ http://code.google.com/p/android/issues/detail?id=39002
게시물 주셔서 감사합니다. 나는 삼성 갤럭시 넥서스에서 같은 문제를 겪고 있다고 생각한다. 제 경우에는 하나의 응용 프로그램 만 있지만 많은 사진을 순환하고 "epoll 인스턴스를 만들 수 없습니다. errno = 24"라는 두려운 메시지가 나오면 결국 죽습니다. 내가 아는 한 최선을 다해 열린 파일 등을 정리하고 있지만이를 해결할 수는 없습니다. 원인과 가능한 해결책에 대한 더 많은 통찰력을 제공 할 수 있습니까? 감사. – gcl1
안드로이드 엔지니어 Dan Morrill과 내부 SD 카드 장치의 퓨즈 파일 시스템 사용에 관한 좋은 인터뷰가 있습니다. 그것을 확인하십시오 : http : //www.androidpolice.co.kr/2011/11/18/즉시 - 안드로이드 - 엔지니어 - 댄 - morrill - bring-to-light-reasons-behind-galaxy-nexus-usb- 대용량 저장 장치/ 불행히도이 문제에 대한 해결책을 찾지 못했습니다. 내가 열어 놓은 문제가 향후 Android 버전에서 해결 될 수 있기를 바랍니다. – alechko