본문 바로가기

프로그래밍/Android11

액티비티(Activity) 생명주기 액티비티(Activity)는 안드로이드 시스템 구성 요소 중 사용자 인터페이스를 제공합니다. 안드로이드 구성요소, 즉 컴포넌트들은 안드로이드 시스템에 의해 관리되며 그 과정 중에 액티비티는 상태변화단계라고 말할 수 있는 생명주기를 가지고 있습니다. 안드로이드 시스템에서는 액티비티의 활동상태가 변하는 과정중에 관련된 콜백을 호출함으로 적절한 처리작업을 수행할 수 있습니다. - onCreate() : 액티비티가 생성된 후 ON_CREATE 이벤트를 수신합니다. - onStart() : 사용자에게 보이기 시작하는 단계로 포그라운드 실행 단계입니다. ON_START 이벤트를 수신합니다. - onResume() : 사용자에게 완전히 보여지며 포그라운 단계입니다. 이제부터 사용자와 상호작용을 할 수 있는 활성화 된.. 2023. 4. 15.
Gradle 빌드 스크립트 Gradle은 어플리케이션을 빌드하기 위한 빌드 도구입니다. Java뿐만 아니라 다양한 언어, 다양한 플랫폼에서의 빌드를 지원하며 빌드 스크립트를 작성을 통하여 어플리케이션을 컴파일하고 패키징, 서명 등의 작업을 수행합니다. 안드로이드 스튜디오에서는 Gradle 플러그인 버전인 Android Gradle Plugin(AGP) 을 제공하여 안드로이드 앱을 빌드합니다. 빌드과정을 통하여 다음과 같은 작업이 수행됩니다. 앱의 빌드 유형 (debug 또는 release) 및 빌드 버전 관리 라이브러리 종속성 관리 다양한 빌드 태스크 (예 : 컴파일, 패키징, 서명 등)의 관리 안드로이드 앱 번들 (AAB) 및 APK 파일의 빌드 안드로이드 앱 서명 및 릴리즈 'File' > 'Project Structure' .. 2023. 4. 14.
Density-independent pixels 밀도(Density) 화면밀도(Density)는 디바이스 화면에서 픽셀(Pixel)의 밀도를 의미합니다. 픽셀의 밀도는 DPI(Dots Per Inch) , 즉 1인치 당 몇개의 픽셀이 존재하는지를 말합니다. 160 DPI 화면은 1인치 당 160개의 픽셀로 구성되어 있다는 것을 의미합니다. 안드로이드에서 픽셀 단위를 직접 사용하게 되면 같은 크기의 UI 요소를 가진 두 개의 디바이스에서 고밀도 화면, 저밀도 화면에 따라 표현하려는 UI 요소가 작거나 크게 보일 수 있습니다. 이를 해결하기 위해 Android에서는 밀도 독립적 픽셀(DIP: Density-independent pixels, DP)을 사용하여 UI 요소의 크기를 지정합니다. DP는 화면밀도와 상관없이 일정한 크기로 보이도록 하기 때문에 따.. 2023. 4. 13.
컨텍스트(Context) 안드로이드 컨텍스트(Context)는 어플리케이션의 상태 정보와 리소스에 대한 접근을 제공하는 클래스입니다. 컨텍스트는 현재 실행중인 어플리케이션의 정보를 제공하며 파일 시스템 위치, 리소스 위치, 데이터베이스, 프리퍼런스, 시스템 서비스 등 다양한 정보를 포함합니다. 컨텍스트는 다음과 같은 기능을 수행합니다. 1. 리소스 매니저를 사용하여 애플리케이션의 리소스(레이아웃, 문자열, 이미지 등)에 접근할 수 있습니다. 2. 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버 등) 는 컨텍스트를 상속받아 생성되어집니다. 3. SQLite 데이터베이스와 Shared Preferences에 접근할 수 있습니다. 4. 시스템 서비스(알람 매니저, 위치 서비스, 네트워크 상태 등)에 접근할 수 있습니다. 위와 같이 컨.. 2023. 4. 11.
AndroidManifest.xml 안드로이드 시스템은 앱이 설치되고 실행될 때 AndroidManifest.xml 파일을 읽어 앱의 구성요소를 파악하고 실행환경을 설정합니다. AndroidManifest.xml 파일에는 앱 패키지명, 버전 정보, 사용 권한 정보, 구성요소(Activity, Service, BroadcastReceiver, ContentProvider) 등이 기록됩니다. 이 정보를 통하여 앱이 실행되는 경우 Android 시스템은 AndroidManifest.xml 파일의 구성요소 정보를 확인하고 실행하며 사용자의 다른 앱과 연동할 때도 AndroidManifest.xml 파일에 등록된 정보를 활용하여 연동을 수행합니다. AndroidManifest.xml 파일에는 또한 앱이 사용할 수 있는 권한 정보가 포함되어 있어 사.. 2023. 4. 10.
가상 디바이스(Virtual Device) 생성 안드로이드 스튜디오에서 제공하는 가상 디바이스(Virtual Device)는 앱을 개발하고 테스트하는 데 필요한 도구입니다. 실제 물리적인 디바이스로 테스트를 할 수 있습니다. 하지만 실제 디바이스가 없거나 여러 종류의 안드로이드 디바이스를 테스트해야 할 때 가상 디바이스를 사용해야 합니다. 디바이스 매니저(Device Manager) 선택 1. 메뉴바(Menu Bar)의 'Device Manager'를 클릭합니다. 또는 2. 'Tools' > 'Device Manager'를 클릭합니다. 가상 디바이스(Virtual Device) 생성 1. [Create device]버튼을 클릭합니다. 2. 해상도(Resolution) 1080 X 1920을 선택하고 [Next]버튼을 클릭합니다. (테스트 장비에 따라 .. 2023. 4. 10.
안드로이드 스튜디오 설정(Settings) 인코딩(Encoding) UTF-8 IDE에서 한글이 깨지는 경우는 인코딩설정을 확인해야 합니다. 안드로이드 스튜디오는 기본 'UTF-8' 인코딩을 사용합니다. 'Settings' > 'Editor' > 'File Encodings' 의 Global Encoding, Project Encoding, Default encoding for properties files 항목을 'UTF-8'로 설정하시기 바랍니다. 코드 오타, 문법오류 식별 해제 소스코드, 변수나 상수에 입력되는 데이터(literal), 주석에 대한 체크를 하지 않을 수 있습니다. 'Settings' > 'Editor' > 'Inspections' > 'Proofreading::Typo' > 'Options' 아래의 항목을 체크하세요. Gra.. 2023. 4. 10.
buildToolsVersion buildToolsVersion는 안드로이드 앱 빌드 시 사용되는 도구들의 버전입니다. compileSdkVersion, minSdkVersion, targetSdkVersion 처럼 build.gradle파일에 버전을 지정할 수 있는 Gradle 설정이며 Gradle은 이 버전을 사용하여 소스 코드를 컴파일하고 APK 파일을 생성합니다. 앱 개발 시에는 사용하는 안드로이드 SDK 버전과 호환되는 Build Tools 버전을 선택해야 합니다. 빌드(Build)와 컴파일(Compile)의 차이점 빌드와 컴파일은 비슷한 것 같지만 서로 다른 의미를 가집니다. 컴파일은 개발자가 작성한 원시 코드를 컴퓨터가 이해할 수 있는 실행 코드로 변환하는 과정입니다. 소스 코드를 컴파일하면 컴파일러는 코드를 분석하고 문법.. 2023. 4. 6.
Android의 앱 호환성 ※ 출처 https://developer.android.com/guide/app-compatibility?hl=ko Android의 앱 호환성 | Android 개발자 | Android Developers Android의 앱 호환성 developer.android.com Android의 앱 호환성 Android에서 앱 호환성이라는 용어는 앱이 플랫폼의 특정 버전(일반적으로 최신 버전)에서 올바르게 실행되는 것을 의미합니다. 버전마다 개인 정보 보호와 보안을 향상하는 필수 변경사항과 OS 전반에 걸쳐 전반적인 사용자 환경을 개선하는 변경사항 구현을 포함합니다. 이러한 변경사항이 앱에 영향을 줄 수 있으므로 각 출시 버전에 포함된 동작 변경사항을 살펴보고 이를 테스트한 다음 사용자를 위해 호환성 업데이트를 .. 2023. 4. 5.
compile/min/tarket SdkVersion compileSdkVersion compileSdkVersion은 컴파일러가 사용하는 안드로이드 SDK 버전을 지정합니다. 이 버전은 코드를 컴파일할 때 사용되며, 해당 버전에서 제공하는 모든 API와 클래스를 사용할 수 있습니다. 이를 통해 개발자는 최신 기능을 활용할 수 있습니다. compileSdkVersion을 낮게 설정하면 1. 개발자가 사용하려는 최신 라이브러리나 API가 지원되지 않을 가능성이 있으며 앱이 실행되는 디바이스의 최신 안드로이드 OS 버전에서 사용 가능한 기능들을 활용하지 못할 수 있습니다. 2. 앱을 빌드할 때 컴파일러가 해당 버전에서 제공되는 최신 기능을 사용하지 못하기 때문에, 앱이 제대로 빌드되지 않거나 오류가 발생할 수 있습니다. 3. 해당 안드로이드 OS 버전에서 발생.. 2023. 4. 5.