본문 바로가기

Android/Android 기초21

[Android] 안드로이드 구조와 동작 원리(2) - 구성 요소 및 빌드 과정 안드로이드 구성 요소 (컴포넌트)안드로이드의 앱(Application)은 4대 구성요소를 통합 관리하는 번들의 개념이다.구성요소로는 Activity, Service, Broadcast Receiver, Content Provider가 있다.그럼, 안드로이드의 구성요소를 살펴보자.요번 포스팅은 간단하게만 알아볼 것이며, 각 구성요소에 대한 자세한 내용은 다음 포스팅에 작성할 예정이다. Activity사용자와 상호작용하기 위한 진입점이다. UI를 포함한 하나의 화면 단위를 나타낸다.즉, 화면에 UI를 포함하기 위한 틀이라고 보면된다.액티비티는 다른 요소들과 다르게 Lifecycle이 존재한다.  Service별도의 UI를 제공하지 않고 백그라운드에서 앱을 실행하게 해주는 다목적 진입점이다.예를 들어, 우리가.. 2023. 8. 29.
[Android] 안드로이드 구조와 동작원리 (1) - Android 플랫폼은 어떻게 생겼나? Android의 구조Android의 내부 구조는 위와 같은 형태이다.Android OS는 Linux를 기반으로 하고 있으며, 그 위에 다른 레이어가 얹어지면서 비로소 Android라는 OS가 완성된다고함  리눅스 커널(Linux Kernel)사실 이 계층의 경우 앱 개발자가 그리 신경쓰지 않아도 되는 영역이다.그림을 보면 각종 드라이버와 전원 관리 모듈이 존재하는데, 리눅스 커널은 하드웨어적인 설정을 관리하는 역할을 한다.커널에서 담당하는 일은 다음과 같다.메모리 관리보안 설정전원 관리다른 하드웨어 장치 드라이버 관리네트워크 시스템 관리  하드웨어 추상화 계층(HAL: Hardware Abstraction Layer)리눅스 커널이 드라이버를 통해 하드웨어와 연결을 한다면, HAL은 하드웨어를 추상화해주는.. 2023. 8. 29.
[Android] 패키지 명으로 외부 앱 실행 안됨 해결 / 안드로이드 11 이상 타켓 시 Manifest 추가 패키지명을 받아서 앱을 띄워주어야 할 때가 있다. 사용자의 휴대폰에 해당 앱이 깔려있다면 실행하고, 깔려있지 않고 Google Play는 이용할 수 있다면 구글 플레이의 앱 상세 페이지로, 만약에 그렇지도 않다면 구글 플레이 웹에서 앱 상세 페이지로 이동 시키는 함수이다.try{ Intent intent = getPackageManager().getLaunchIntentForPackage(packageName); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);}catch (Exception e){ e.printStackTrace(); String url = "market://details?id=" + packageNa.. 2023. 8. 28.