Android(98)
-
[Android/Java/Kotlin]ExecutorService
Android에서 ExecutorService는 쓰레드 풀을 생성하고 관리하는 데 사용됩니다. ExecutorService는 java.util.concurrent 패키지에 정의되어 있으며, Executor 인터페이스를 상속합니다. ExecutorService는 작업을 처리하는 쓰레드 풀을 생성하고, 작업 처리를 위한 작업 큐를 유지 관리합니다. 새로운 작업이 추가되면 작업 큐에 추가되고, 작업을 처리하기 위해 사용 가능한 쓰레드가 있으면 즉시 처리됩니다. ExecutorService를 사용하면 애플리케이션에서 여러 작업을 동시에 처리할 수 있습니다. 또한, 작업 처리를 위해 새로운 쓰레드를 생성하는 것보다 쓰레드 풀을 사용하여 성능이 향상될 수 있습니다. 아래는 ExecutorService를 사용하여 작..
2023.05.29 -
[Android/Async]RxJava에서 Throttle과 Debounce
RxJava에서 Throttle과 Debounce는 각각 데이터 스트림에서 지정된 시간 동안의 버퍼링된 이벤트를 처리하는 방법입니다. 이 두 연산자는 모두 데이터 스트림에서 지정된 간격 이상의 이벤트를 발생시키지 않도록 제어하며, 너무 많은 이벤트가 처리되어 성능 문제가 발생하는 것을 방지할 수 있습니다. Throttle은 이벤트를 지정된 시간 동안 버퍼링한 다음, 시간이 지난 후에 가장 최근의 이벤트를 처리합니다. 예를 들어, 1초 동안 Throttle을 적용하면 1초 동안 이벤트를 버퍼링하고, 1초 이후에 발생한 가장 최근의 이벤트를 처리합니다. 이를 통해 일정 시간 동안 반복적으로 발생하는 이벤트를 제한하고, 지정된 시간 동안 가장 최근의 이벤트만 처리할 수 있습니다. Debounce는 이벤트를 버..
2023.05.10 -
[Android/Training] 사진을 외부앱으로 전송하기
1. AndroidManifest.xml 파일에 FileProvider를 등록합니다. ... ... 2. res/xml/ 폴더에 provider_paths.xml 파일을 생성하고 파일 제공자가 제공할 경로를 지정합니다. 3. 소스코드 이 코드는 안드로이드 앱에서 이미지를 캡처한 후, 캐시에 저장하고 해당 이미지 파일을 다른 앱으로 공유하는 기능을 구현하고 있습니다. private void saveToCache(String title, Bitmap bitmap) { File storage = getCacheDir(); try{ File file = new File(storage, title+".jpg"); FileOutputStream fos = new FileOutputStream(file); bitma..
2023.05.09 -
[Android/Training] View를 사진으로 저장하기
1. View를 캡처합니다. 현재 시간을 기준으로 사진 제목을 생성합니다. 캡처할 뷰와 사진 제목을 인자로 captureReceipt 함수를 호출합니다. captureReceipt 함수에서 뷰를 캡처하고, Bitmap 형태로 변환합니다. 안드로이드 버전에 따라 저장소의 경로가 다르므로, 안드로이드 버전에 따라 다른 함수를 호출하여 이미지를 저장합니다. private void makeTitle() { SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmss"); Date time = new Date(); String captureTitle = sdf.format(time); // 사진제목 captureView({layout}, captureTitle); ..
2023.05.09 -
[Android/Layout]TextView 일부에 Link를 넣고 싶을 때? Linkify
TextView에서 일부 글자에만 Link를 삽입하고 싶을 때 쓰는 방법입니다. Linkify는 텍스트 조각과 정규식을 가져와 텍스트의 모든 정규식 일치 항목을 클릭 가능한 링크로 바꿔줍니다. private void setLinkify() { Linkify.TransformFilter transformFilter = (matcher, s) -> "{이동하고 싶은 url}"; Pattern pattern = Pattern.compile("{링크를 연결하고 싶은 텍스트}"); Linkify.addLinks(_binding.agree2, pattern, "", null, transformFilter); } Linkify.MatchFilter 패턴과 일치하는 문자 범위를 검사하고 일치를 실행 가능한 링크로 전환..
2023.04.20 -
[Android/Async]Process, Thread에 대한 기본개념
Process란? 메모리에 올라와 있는 실행중인 프로그램 인스턴스. 운영체제로부터 시스템 자원을 할당받는 작업의 단 사용 중인 파일, 데이터, 프로세서의 상태, 메모리영역 주소 공간, 쓰레드 정보, 전역 데이터가 저장된 메모리 부분 등 수많은 자원을 포하하는 개념. 종종 스케줄링의 대상이 되는 작업이라고 불리기도 함. Process 상태 전이 Dispatch (ready → running): 여러 프로세스들 중 한 프로세스를 선정하여 CPU에 할당 Time Run Out (running → ready): 할당된 시간이 지나면 Timeout Interrupt Event Wait (running → waiting): I/O 입출력 발생 Wake-Up (waiting → ready): I/O 요청이 완료되면 ..
2023.02.26