# Manifest ??
안드로이드에서 매니페스트란 apk 파일을 보면 루트경로에 위치해 있는 application의 기본적인 정보를 담고있는 파일이라고 생각하면 된다. 디바이스에서 해당 파일을 읽고 어떤 권한을 주고 어떤 액티비티를 먼저 실행시키는지 등등을
알려준다고 생각하면 될듯?
# 구조는 어떨까 ??
기본적인 구조는 아래와 같다
manifest : 패키지명 , 버전정보, 구성하는 클래스 패키지명 정의
uses-permission : 앱에서 사용할 시스템 권한을 정의
permission : 앱에서 제공하는 권한이외에 컴포넌트에서 정의하는 권한(다른 앱에서 해당 앱 접근 등등)
permission-tree :
permission-group :
instrumentation : 시스템 이벤트 발생 시 애플리케이션 어느 부분 호출할지 지정
uses-sdk : API 레벨설정
uses-configuration : 응용 프로그램에 필요한 하드웨어/소프트웨어 입력 구성
uses-feature : 기능을 지원하지 않는 디바이스 상에 설치 되지 않도록 정의
suppoerts-screens : 지원하는 스크린 크기 설정
compatible-screens
support-gl-texture
appliction
activity : UI 화면을 담당, 자바소스에서 Activity 클래스 상속해야함
intent-filter : 수행되어야 할 Action을 정의 Action을 수행하기 위한 정보
action : 처리해야 할 작업
category : Component 유형 정의
data : URI 와 데이터타입 지정
meta-data : 특정 정보를 저장할때 사용
activity-alias
intent-filter
meta-data
service : 백그라운드에서 실행되는 프로세스
intent-filter
meta-data
receiver : 다양한 이벤트와 정보를 받아 반응하는 컴포넌트 (이벤트 리스너 비슷)
intent-filter
meta-data
provider : 데이터를 관리하고 다른 어플리케이션 데이터를 제공 (보통 DB데이터 전달)
grant-uri-permission
meta-data
path-permission : provider 내에 특정 데이터 집합에 대한 사용 권한과 경로
uses-library : 추가로 연동되는 라이브러리 컴포넌트 지정(지도 서비스)
뭐 각 태그마다 또 안에 세부적으로 옵션이 주어지긴 하지만 대충의 모양은 위와 같다.
내가 보통 진단할 때 건드리거나 보는건
1) 디버깅이 가능한지
<application android:debuggable=["true" | "false"]>
2) 어떤 Activity가 가장먼저 실행되는지
요건 아래와 같은 모양인데 Intent-filter에 작업을 추가하는 모양인데, 해당 태그안에는 무조건 action 태그가 들어가며
android:name을 통해 어떤 일을 수행하는지 정의한다. Action Main 과 Category LAUNCHER이 있다면 해당 태그가 속해있는 Activity 태그가 가장 먼저 실행되는 Activity이다.
<activity android:name=".TestActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
다음에는 Activity 가 실행되면 어떤 순서로 실행되는지 생명주기를 알아보자
'Technical Docs > Android' 카테고리의 다른 글
내돈내산 전자책 PDF 로 바꿀 수 없을까? (0) | 2022.06.07 |
---|---|
Smali 수정으로 logcat 남기기 (0) | 2022.06.02 |
네임 맹글링 (Name Mangling or Name Decoration) (0) | 2021.12.30 |
Smali 코드로 Toast 생성하기 (0) | 2021.12.17 |
Android Native C++ string Frida로 출력 (0) | 2021.12.17 |