일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 서비스 쓰레드 차이
- rxjava hot observable
- android retrofit login
- 서비스 vs 쓰레드
- 2022 플러터 설치
- 안드로이드 유닛 테스트 예시
- 객체
- 안드로이드 레트로핏 crud
- 안드로이드 유닛테스트란
- rxjava disposable
- 플러터 설치 2022
- 스택 자바 코드
- android ar 개발
- Rxjava Observable
- 멤버변수
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트
- 클래스
- rxjava cold observable
- ANR이란
- 안드로이드 라이선스
- 안드로이드 레트로핏 사용법
- 2022 플러터 안드로이드 스튜디오
- jvm이란
- 큐 자바 코드
- 자바 다형성
- 스택 큐 차이
- ar vr 차이
- jvm 작동 원리
- 안드로이드 os 구조
- Today
- Total
목록전체 글 (1072)
나만을 위한 블로그
로그캣 통한 예외 로깅 로그를 보고 예외를 추적하는 기본 도구다. 예외가 발생하면 시스템은 예외 타입, 메시지, 예외가 발생한 코드 라인을 포함해 자세한 스택 트레이스를 로그캣에 기록한다. 키워드를 써서 로그캣 로그를 필터링해 예외에 집중할 수 있다. try-catch를 사용한 예외 처리 이걸 쓰면 예외를 제어된 방식으로 처리하고 코드의 중요 부분에서 앱 크래시를 방지할 수 있다. 전역 예외 핸들러 전용 Thread.setDefaultUncaughtExceptionHandler를 써서 전역 예외 핸들러를 설정하면 앱 전체에서 처리되지 않은 예외를 잡을 때 도움이 된다. 중앙 집중식 에러 보고 or 로깅에 유용하다. class MyApplication : Application() { override ..
쓰레드를 관리하고 비동기 통신 처리를 위해 함께 작동하는 컴포넌트다. 백그라운드 쓰레드에서 작업을 수행하면서 UI 업데이트를 위해 메인 쓰레드와 상호작용하기 위한 필수 컴포넌트다. Looper 쓰레드를 살아있게 유지해서 메시지 or 작업 큐를 순차 처리하는 안드로이드 쓰레딩 모델의 일부. 메인 쓰레드, 다른 워커 쓰레드에서 핵심 역할을 한다.메시지 큐를 지속 모니터링하고 메시지나 작업을 적절한 핸들러에 가져와 디스패치하기 위해 사용한다. 메인 쓰레드엔 기본으로 루퍼가 있지만 워커 쓰레드는 명시적으로 준비해야 한다.Looper.prepare()로 쓰레드에 루퍼를 연결하고 Looper.loop()를 써서 루프를 시작한다. val thread = Thread { Looper.prepare() // 스레드..
안드로이드 6(api 23)부터 앱은 설치 시 자동으로 권한을 얻는 대신 런타임에 위험 권한을 명시적으로 요청해야 한다.이 방식은 유저가 필요할 때만 권한을 허용하게 해서 개인정보 보호를 강화한다. 권한 선언, 확인 권한 요청 전에 앱은 매니페스트에 해당 권한을 선언해야 한다. 런타임 시에는 유저가 해당 권한이 필요한 기능과 상호작용할 때만 권한을 요청해야 한다.유저에게 요청하기 전에 ContextCompat.checkSelfPermission()을 써서 권한이 이미 부여됐는지 확인하는 게 중요하다. 권한이 부여된 경우 해당 동작은 계속 진행할 수 있으며 그게 아니면 앱은 유저 권한을 올바르게 요청해야 한다. 권한 요청 권장되는 방법은 권한 처리를 단순화하는 ActivityResultLauncher AP..
안드로이드에서 정수 키를 객체 값에 매핑하는 자료구조. 해시맵과 유사하다. 정수 키 사용에 최적화돼 있어서 정수 기반 키를 쓸 때 일반적인 Map 또는 해시맵보다 메모리 효율성이 높은 대안이다. 메모리 효율성 : 해시맵은 키밸류 매핑에 해시테이블을 지원하지만 SparseArray는 자동 박싱(원시 int를 Integer로 바꾸는 것)을 피하고 Entry 객체 등 추가 자료구조에 의존하지 않는다 -> 메모리 사용량이 줄어듬성능 : 매우 큰 데이터 셋에선 해시맵보다 느리지만 메모리 최적화 때문에 중간 크기 데이터 셋에선 더 나은 성능을 제공null 키 없음 : 키로 원시 정수만을 취급해서 null 키를 허용하지 않는다 사용법은 안드로이드에서 Map을 쓸 때와 유사하다. import android.util.S..
안드로이드의 시스템 서비스. 기기에서 실행 중인 액티비티, Task, 프로세스 정보를 제공 및 관리한다.안드로이드 프레임워크의 일부로 개발자가 앱 생명주기, 메모리 사용량, Task 관리 관련 측면을 상호작용하고 제어할 수 있게 한다. 주요 기능 Task, 액티비티 정보 : 실행 중인 Task, 액티비티, 이것들의 스택 상태의 세부정보를 가져올 수 있다. 개발자가 앱 동작을 모니터링하고 시스템 리소스 사용량을 파악할 수 있게 한다메모리 관리 : 시스템 전체의 메모리 사용량 정보를 제공하고 앱 별 메모리 소비량, 시스템 전체 메모리 상태를 포함한다. 앱 성능을 최적화하고 low memory 상황을 처리할 수 있다앱 프로세스 관리 : 실행 중인 앱 프로세스, 서비스 세부 정보를 쿼리할 수 있다. 앱 상태 감..

※ 이 글의 코드는 예시 코드기 때문에 실제로 사용하려면 반드시 리팩토링한다 다운로드 매니저는 장기간 실행되는 HTTP 다운로드를 처리하는 시스템 서비스다. 백그라운드에서 파일을 다운로드하고 실패 후 or 연결 변경, 시스템 재부팅 시 다운로드를 재시도한다.보통 앱 내에서 PDF나 영상, 음악 등의 파일을 다운로드하려고 하면 시계가 표시되는 부분에 다운로드 이미지가 표시되면서 유저에게 다운로드중임을 알리고 다운로드가 완료되면 다운로드 이미지가 한 번 깜박이면서 다운로드 완료를 알린다. 갤럭시를 사용한다면 굳이 설명할 필요도 없이 다 아는 플로우다. 아이폰 쓴다고요? 그럼 아쉬운거죠 각설하고 전체 코드부터 확인한다. package com.example.regacyviewexample.presentation..