투케이2K

916. (Android/Java) [간단 소스] ApplicationInfo 간단 설명 및 사용 옵션 정리 - 애플리케이션 정보 본문

Android

916. (Android/Java) [간단 소스] ApplicationInfo 간단 설명 및 사용 옵션 정리 - 애플리케이션 정보

투케이2K 2024. 12. 9. 18:56

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 기술 구분 : ApplicationInfo / 애플리케이션 정보

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. ApplicationInfo 은 AndroidManifest.xml 파일 <application> 태그에서 수집된 애플리케이션 정보를 확인할 수 있는 클래스입니다.


2. ApplicationInfo 은 안드로이드 API 레벨 1 에서 추가 된 클래스로 API 레벨이 올라감에 따라 정보를 확인할 수 있는 범위가 추가적으로 확장 되었습니다


3. ApplicationInfo Fields 관련 주요 키워드 정리 : 

  >> appComponentFactory : <manifest> 태그의 속성에 지정된 이 패키지의 팩토리입니다
  >> backupAgentName : 애플리케이션의 백업 기능을 구현하는 클래스입니다
  >> category : 앱의 카테고리 정보입니다
  >> className : Application 객체를 구현하는 클래스입니다
  >> compatibleWidthLimitDp : 애플리케이션이 설계된 가장 작은 최대 화면 너비입니다
  >> compileSdkVersion : 사용자에게 표시되는 SDK 버전입니다
  >> compileSdkVersionCodename : 개발 코드명 입니다
  >> dataDir : 패키지의 영구 데이터를 위해 할당된 기본 디렉토리의 전체 경로입니다
  >> descriptionRes : 애플리케이션 설명의 스타일 리소스 식별자 (패키지 리소스 내) 입니다
  >> deviceProtectedDataDir : 패키지의 영구 데이터를 위해 할당된 장치 보호 디렉터리의 전체 경로입니다
  >> flags : 애플리케이션과 관련된 플래그입니다
  >> largestWidthLimitDp : 애플리케이션이 작동할 수 있는 최대 최소 화면 너비입니다
  >> manageSpaceActivityName : 애플리케이션의 공간 관리 기능을 구현하는 클래스입니다
  >> minSdkVersion : 애플리케이션을 실행할 수 있는 최소 SDK 버전입니다
  >> nativeLibraryDir : 네이티브 JNI 라이브러리가 저장된 디렉토리의 전체 경로입니다
  >> permission : 애플리케이션의 구성 요소에 액세스하는 데 필요한 권한의 선택적 이름입니다
  >> processName : 애플리케이션이 실행되어야 하는 프로세스의 이름입니다
  >> publicSourceDir : sourceDir 리소스와 매니페스트를 포함하여 공개적으로 사용 가능한 부분에 대한 전체 경로입니다
  >> requiresSmallestWidthDp : 애플리케이션을 실행할 수 있는 가장 작은 화면 너비입니다
  >> sharedLibraryFiles : 애플리케이션이 링크된 모든 공유 라이브러리에 대한 경로입니다
  >> sourceDir : 애플리케이션의 기본 APK에 대한 전체 경로입니다
  >> targetSdkVersion : 애플리케이션이 대상으로 하는 최소 SDK 버전입니다
  >> theme : 애플리케이션의 기본 시각적 테마의 스타일 리소스 식별자(패키지 리소스 내)입니다
  >> uiOptions : 애플리케이션의 활동에 대한 기본 추가 UI 옵션입니다
  >> uid : 애플리케이션에 할당된 커널 사용자 ID입니다
  >> storageUuid : 애플리케이션이 호스팅되는 저장소 볼륨의 UUID입니다


4. ApplicationInfo 사용 예시 소스 코드 : 

  // [PackageInfo 선언]
  PackageInfo pi = null;

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
      pi = mContext.getPackageManager().getPackageInfo(packageName, PackageManager.PackageInfoFlags.of((long) 0));
  }
  else {
      pi = mContext.getPackageManager().getPackageInfo(packageName, 0);
  }

  ApplicationInfo appInfo = pi.applicationInfo;

  String M_LOG = "";
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
      M_LOG += "\n" + "minSdkVersion : " + String.valueOf(appInfo.minSdkVersion);
  }
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
      M_LOG += "\n" + "compileSdkVersion : " + String.valueOf(appInfo.compileSdkVersion);
  }

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.android.com/reference/android/content/pm/ApplicationInfo

https://blog.naver.com/kkh0977/223683895863

https://blog.naver.com/kkh0977/223686410539

// --------------------------------------------------------------------------------------

 

반응형
Comments