Domain 46

[Android] MediaStore ( Android 11 / Android 버전 대응 / Storage 정책 ) Android MediaStore는 Android Q에서 Scoped Storage를 적용하게 되면서 필수적으로 적용해야 할 부분입니다. Android R 정책에 API Level 30을 타겟으로 하는 앱은 Scoped Storage 정책만 사용해야 한다는 내용이 있습니다. Android Q 이전엔 내부 저장소는 시스템 및 개별 앱이 사용하는 공간으로 샌드박스 형식으로 잘 보호되는 영역이며, 각 앱은 개별 저장공간을 할당 받았습니다. 반면 외부 저장소는 하나의 공용 저장소로 동작했습니다. 외부 저장소를 읽고 쓸 수 있는 권한이 있으면 모든 파일에 접근이 가능했습니다. 외부 저장소에 접근 권한만 있다면 Private한 파일 조차 읽고 쓸 수 있었습니다. 때문에 개별 앱들이 간접적인 방법으로 다른 앱의 정보.. Domain/Android 2021. 4. 23.
[Android] 위치정보 권한 ( Android10 Location / Location Permission / COARSE_LOCATION / FINE_LOCATION / BACKGROUND_LOCATION ) 사용자 개인 정보를 보호하려면 위치 서비스를 사용하는 앱에서 위치 정보 액세스 권한을 요청해야 합니다. 안드로이드에서는 Location Permission은 ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION을 제공합니다. 기존 ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION퍼미션에서 Android 10부터 추가적으로 ACCESS_BACKGROUND_LOCATION가 추가 되었습니다. ACCESS_COARSE_LOCATION 도시 블록 내에 위치 정확성을 제공합니다. ACCESS_FINE_LOCATION COARSE_LOCATION 보다 정확한 위치를 제공합니다. 이 권한은 BLE와 기기의 연결.. Domain/Android 2021. 4. 23.
[Android] MVC vs. MVP vs. MVVM MVC (Model,View,Controller) MVC 패턴은 Controller가 사용자로부터 Action을 받아, Model에게 전달하고 모델이 해당 Action에 대한 처리를 마친 뒤에 View적용하는 방식입니다. Model과 View 사이의 의존성이 높고, Controller가 안드로이드 API에 깊게 종속되므로 유닛 테스트가 어렵다는 단점이 있습니다. 모델(Model) 앱의 두뇌 역할을 합니다. 데이터, 상태, 비즈니스 로직을 처리합니다. 뷰나 컨트롤러에 묶이지 않습니다. 뷰(View) 모델의 표현 입니다. UI를 그리고 사용자가 앱과 상호작용할 때 컨트롤러와 통신하는 책임을 맡습니다. 뷰는 하위 모델에 대한 지식이나 상태에 대한 이해가 없고, 사용자가 버튼을 클릭하거나 값을 입력하는 등의 행.. Domain/Android 2020. 9. 21.
[Android] DataBinding 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 라이브러리입니다. 레이아웃 파일에서 구성요소를 결합하면 활동에서 많은 UI 프레임워크 호출을 삭제할 수 있어 파일이 더욱 단순화되고 유지관리 또한 쉬워집니다. 앱 성능이 향상되며 메모리 누수 및 null 포인터 예외를 방지할 수 있습니다. 데이터 변경을 쉽게 식별하기 위한 클래스 및 메서드를 제공합니다. 기본 데이터 소스가 변경될 때 UI 새로고침에 관해 신경쓰지 않아도 됩니다. 변수 또는 속성을 식별 가능하게 만들 수 있습니다. 라이브러리를 통해 객체, 필드 또는 컬렉션을 식별 가능하게 만들 수 있습니다. 레이아웃의 변수 및 뷰에 액세스하는 데 사용되는 결합 클래스를 생성합니다. 이 페이지는 생성된 결합 클래스를 사용하고 맞춤설정하는 .. Domain/Android 2020. 9. 21.
[Android] Context란? Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. 애플리케이션 환경에 대한 글로벌 정보에 대한 인터페이스입니다. 이것은 Android 시스템에서 구현하는 추상 클.. Domain/Android 2020. 9. 8.
[Android] Android Pie Http 허용 카카오 지도 API를 연동하면서 아래와 같은 에러로 화면이 제대로 출력되지 않는 문제가 발생 AndroidManifest 속성에 usesCleartextTraffic을 true로 설정해주면 해결된다. android:usesCleartextTraffic 앱이 일반 텍스트 HTTP와 같은 일반 텍스트 네트워크 트래픽을 사용하는지 여부를 나타냅니다. API 레벨 27 이하를 타겟팅하는 앱에서는 기본값이 "true"이고, API 레벨 28 이상을 타겟팅하는 앱에서는 기본값이 "false"입니다. 이 속성이 "false"로 설정되면 플랫폼 구성요소(예: HTTP 및 FTP 스택, DownloadManager, MediaPlayer)는 앱의 일반 텍스트 트래픽 사용 요청을 거부합니다. 타사 라이브러리도 이 설정을 .. Domain/Android 2020. 6. 5.