본문 바로가기
반응형

Android 개발/File IO, FilesDir, Storage,5

안드로이드 Cache 디렉토리 이용해 xml 화면 공유하기 오늘은 안드로이드 Cache 디렉토리를 이용해,xml로 구성된 화면을,이미지 파일로 생성해 공유하는 방법을 보겠습니다. 구체적인 구현방법을 알아보기 전에,이미지 공유를 위해서,안드로이드 저장공간 중,왜 Cache 디렉토리를 이용해야 하는지부터,알아보겠습니다. 1. 안드로이드 Cache를 사용하는 이유저장소에 대한 권한은 계속 바뀌어 왔습니다.프라이버시를 강화한 것이라고 하지만,안드로이드 버전별 코드 파편화가 심해지는 현상 때문에,구현하는 개발자 입장에서 테스트해야할 기기도 많아졌고,동적권한 관련해서 코드도 복잡해 졌습니다. 그래서 저는 항상 권한으로부터 자유로운 공간들을 사용할 수 없는지부터 판단합니다.이러한 공간에서 해결할 수 없는 저장공간에 대해서만,복잡하게 파편화된 코드를 사용하는 것 이지요. 이렇.. 2024. 12. 10.
안드로이드 앱 내부 파일 확장자 체크 후 삭제하기 # delete filesDir 안드로이드에서는 앱에서 사용할 디렉토리를 따로 정해주었는데요. 이러한 내부에 파일들에 사용하지 않는 이미지들을 저장했다가 지워야할 때가 있습니다. 앱 내부의 디비에서는 이미지 uri를 가지고 있다가 유저가 해당 데이터를 지웠는데, 이 때, 내부 디렉토리의 파일로는 남아있는 경우입니다. 1. FilesDir 와 CacheDir 안드로이드에서는 내부파일에 접근하기 위한 장소로 FilesDir를 제공해주고 있는데요. 이곳은 완벽하게 다른 앱들은 접근할 수 없는 앱만의 영역으로, 앱이 필요로 하는 데이터나 캐쉬파일들을 저장할 수 있습니다. API29버전 이상부터 이 영역은 암호화 되어서 저장되게 됩니다. 그리고 CacheDir은 이름에서도 알 수 있듯이, 앱에서 사용할 캐쉬파일들을 저장하는 곳 입니다. 당연히 .. 2023. 4. 14.
Uri 에서 Bitmap 파일 생성하는 방법 # getBitmap ImageDecoder 오늘은 Uri를 가지고 Bitmap 파일을 만드는 방법에 대해서 정리해 보도록 하겠습니다. 1. 필요한 API 1-1. ImageDecoder 와 ContentResolver API28부터 지원되기는 하지만, 파일을 Drawable 또는 Bitmap으로 전환시켜줍니다. 정말 다양한 소스로부터 Bitmap객체를 만들어주도록 도와주는데요. 마침 이 API가 uri소스로부터 Bitmap 객체를 만들어주는 createSoruce함수도 제공해주고 있습니다. 광고 ImageDecoder에는 첫번째 인자로 ContentResolver객체를 필요로 하는데요. ContentResolver는, Uri를 이용해서, ContentProvider로부터 데이터의 CRUD(create, retrieve, update, and de.. 2022. 11. 17.
Mp3파일 외부 저장소에서 가져와 재생하기 #안드로이드 유저가 가지고 있는 MP3파일을 앱 내부에 저장해 두고 필요할 때 재생할 수 있도록 할 경우가 있는데요. 오늘은 외부 저장소에 있는 MP3파일들 중 하나를 선택한 다음,그 파일을 내부 저장소로 가져와 파일을 재생하는 방법을,정리하도록 하겠습니다.참고로 이글은 2024년도에 수정되어 API34(Android13)에 대응되도록 수정하였습니다. 이 방법에 대해서 정리하기 전에,저장소에 대한 개념을 가볍게 정리해 보고 가려고 합니다.이에 대한 개념이 필요하시지 않은 분들은 바로 3번으로 넘어가 주세요. 1. 저장소(Storage)안드로이드의 Storage의 개념에서 크게 두가지가 있는데요.바로 내부저장소(Internal Storage)와 외부 저장소(External Storage)입니다.더 세부적으로 구분할 수.. 2019. 9. 7.
Android 에서 File 저장하기 Part1. Internal Storage 편 안드로이드에서 이미지 캐쉬파일이나 DB파일등을 저장할 필요가 있는데요. 이 때 파일을 저장하는 방법에 대해서 정리해보겠습니다. 1. Android의 파일저장공간 안드로이드는 파일을 어디에 저장할 수 있을까요? 안드로이드에서의 파일저장공간은 크게 두가지로 나뉘어 지는데요. internal(내부)과 external(외부) 두가지입니다. 이것은 안드로이드 초기부터 microSD카드를 확장할 수 있도록 내부와 외부SD카드 공간을 분리하였기 때문입니다. 요즘은 아이폰처럼 일체형에 확장이 않되는 폰도 많지만 말이지요. 2. Internal Storage vs External Storage 그럼 내부와 외부는 프로그래밍 적으로 어떻게 다를까요? 2-1. 내부저장공간 (Internal Storage) 우선, 내부저장공.. 2017. 1. 8.