반응형
ி 앱 기본 항목
- Android OS는 멀티유저 Linux 시스템
- 시스템이 각 앱에 고유한 Linux ID를 부여함
- 두 개앱이 Linux ID가 공유되도록 설정되면 서로 파일 액세스 가능(리소스 절약됨), 대신 같은 인증서로 서명해야함.
- Android 시스템은 최소 권한의 원리를 구현(필요한 액세스 권한만 요구)
- Android 패키지는 접미사가 .apk인 아카이브 파일
ி 앱 구성 요소
4대 컴포넌트
- 액티비티: 화면에 보여지는 구성 요소(UI)로서 하나의 화면이자 실행 단위
- 서비스: 백그라운드에서 앱을 계속 실행하기 위한 구성 요소
ex) 음악 재생
- Broadcast Receiver: 디바이스에서 발생하는 이벤트 신호를 받아 처리하는 역할
ex) 알람, 배터리 부족
- 콘텐츠 제공자: 다른 앱이 현재 앱 정보에 접근할 수 있도록 도와주는 컴포넌트
ex ) 뮤직 플레이어
인텐트(Intent)
- 컴포넌트간 통신을 담당
- 다른 구성 요소로부터 작업을 요청하는 역할
- Intent 통신 방법은 두가지(명시적, 암시적)
①
명시적 Intent- 가장 흔하게 보이는 방법으로 앱의 화면 전환 시 사용(하나의 액티비티에서 다른 액티비티로 화면 전환)
②
암시적 Intent- Intent의 액션에 따라 해당하는 적합한 애플리케이션의 클래스를 호출
- 웹 브라우저 호출, 이메일 전송, 전화앱 통화 등
매니페스트 파일
- 앱의 메인 환경 파일로서 앱을 구성하는 요소, 사용자 권한 등록 등이 등록됨
- Android 시스템에서 우선적으로 실행되는 파일
- 이 파일은 앱 프로젝트 루트 디렉터리에 존재
리소스
- 해당 앱 동작 시 사용하는 문자열/이미지/오디오/동영상 등을 소스코드가 아닌 리소스를 통해 구현 가능하게 함
- /res 디렉토리 안에서 관리됨
ி 생명 주기
- 앱 최초 실행부터 종료되기까지 앱이 가지는 상태
- 앱이 foreground나 background에 있을 때 시스템 알림에 응답하고 기타 중요한 시스템 관련 이벤트를 처리하는 단계
ex) 은행 앱 같은 보안이 중요한 앱의 경우 로그인을 일부러 다시 하도록 하는 등의 처리
수명주기(lifecycle 콜백
①
onCreate(): 액티비티 생성 시 호출 ②
onStart(): 액티비티가 뜨기 전 호출 ③
onResume(): 액티비티가 뜨고 동작하기전 호출 ④
onPause(): 다른 액티비티가 보여질 때 호출 ⑤
onStop(): 액티비티가 더 이상 안보일 때 호출 ⑥
onDestroy(): 액티비티 소멸 시 호출 - onPause()는 데이터 저장을 위해 주로 사용, 게임 중 전화가 온 경우 게임을 재게했을 때 원래 하던 곳부터 진행될 수 있도록 데이터를 sharedpreferences를 사용하여 저장, onResume()에서 저장한 데이터들을 복원해 진행됨
- onStop() 상태에서 앱 재실행 시 onRestart()를 거쳐 다시 onStart 생명 주기로 이동
- onDestroy()는 finish() 메소드 호출 혹은 메모리 확보를 위해 액티비티 제거 시 호출
※ 참고
1. 안드로이드 4대 컴포넌트
https://developer.android.com/guide/components/fundamentals?hl=ko
2. 안드로이드 lifecycle
https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko
반응형
'해킹-보안 > 모바일' 카테고리의 다른 글
Magisk 루팅 앱 설치 및 JEB로 앱 디컴파일하기 (0) | 2021.12.17 |
---|---|
IOS 앱 개념 정리 (기본 인터페이스 및 Lifecycle) (0) | 2021.12.15 |
DIVA - 안전하지 않은 데이터 저장 (0) | 2020.12.09 |
루팅 탐지 우회 (0) | 2020.12.09 |
브로드캐스트 리시버 취약점 (0) | 2020.12.07 |