본문 바로가기

Android52

[Android] ExecutorService를 이용해 AsyncTask 대체하기 개요 Wallpaper를 자동으로 적용시켜야 하는 작업을 하게 되었다. 시나리오는 아래와 같다. 적용할 Wallpaper를 전달 Wallpaper가 전달되는 동안 Loading 화면을 보여줌 세팅이 끝나면 Loading 화면을 닫고 설정이 완료되었다는 것을 유저에게 인지 시킴 위 시나리오처럼 동기 처리가 필요하기 때문에 AsnycTask를 사용하면 그렇게 어렵지 않게 작업할 수 있었지만 이미 deprecated 된 AsyncTask 클래스를 쓴다는 게 조금 찝찝해 ExecutorService와 Handler, Callable를 이용해 구현해 보았다. 코드 AutoSetWallpaperRunner 클래스는 ExecutorService로 Callable클래스를 호출하고 콜백 해줄 클래스다. class Aut.. 2023. 7. 20.
[Android] Open Source Library 표시하기 시작 기본적으로 앱을 배포하려면 오픈 소스 라이브러리를 표시해줘야 하는데, 이 부분을 직접 해주려면 꽤나 귀찮아진다. 때문에 Google에서 친절하게 play-services-plugins 라이브러리를 만들어 줬다. https://github.com/google/play-services-plugins/tree/master/oss-licenses-plugin gradle에 등록 먼저 라이브러리를 프로젝트에 등록해줘야 한다. build.gradle(Project)에 다음과 같이 classpath를 추가한다. 가장 최신 버전은 0.10.6인데 이걸 가져오면 release 버전이 아니라면 확인할 수 없다. 따라서 debug 버전이라면 0.10.4로 테스트해보자. classpath "com.google.andro.. 2023. 7. 20.
[Open Source] KoreanNumberFormatter 라이브러리 개발 동기 내부 라이브러리 클래스 중 PhoneNumberUtils가 존재하는데, 보통 번호 포맷을 적용하기 위해 쓰인다. 문제는 format 함수에 재난망 번호인 013 번호 체계가 존재하지 않아 포맷이 적용되지 않는 이슈가 있었다. 때문에 단말기의 지역이 한국인 경우 새로 만든 KoreanNumberFormatter 클래스를 이용해 번호를 반환해주기 위해 만들었다. 소개 Android Studio에서 Java를 이용해 제작했으며 번호 체계는 전기통신번호관리세칙, 대한민국의 전화번호 체계, 나무위키 전화번호 를 참고해 구현했다. 클래스는 KoreanNumbers, KoreanNumberFormatter, KoreanNumberEditText 총 3가지로 구성되어 있다. 먼저 KoreanNumbers는 .. 2023. 7. 20.
[Open Source] AudioRecord PCM 파일로 녹음하기 시작 이전 게시물에서는 AudioRecord가 무엇 인지에 대해 정리했습니다. AudioRecord의 개념과 구현 방식, 장점 등에 대해 알아보았는데, 이번 포스팅에선 AudioRecord API를 이용해 pcm 확장자로 녹음하는 것에 대해 정리하려 합니다. 왜 하필 pcm 인가에 대해 궁금하실 수 있을 것 같아 말씀드리면 Andriod Developer에서 말하는 read 함수 모두 pcm 포맷을 파라미터로 넘기라고 되어 있으며 이것 때문인지 대다수의 예제 코드들이 pcm 확장자로 파일을 저장하는 것들이 였습니다. 따라서 기본기라고 생각하고 pcm 확장자 파일로 저장하는 포스팅을 한 후에 다른 확장자로 정의하는 것에 대해 정리할 예정입니다. 권한 요청 이번 포스팅에서는 오디오 데이터를 기록하고 기록된 .. 2023. 7. 20.