본문 바로가기

android

(26)
[안드로이드] ViewGroup.LayoutParams ViewGroup.LayoutParamsbinding.logoImage.layoutParams = params자식뷰가 부모뷰의 어떤 위치에 존재하고 싶은지 알리는데 사용한다.이 클래스는 자식뷰의 너비와 높이를 지정합니다.지정할 값MATCH_PARENT : 뷰가 부모와 같기를 원한다.WRAP_CONTENT : 뷰가 콘텐츠를 감싸기에 충분한 크기가 되기를 원한다.정확한 수치 : 픽셀 단위로 정확한 크기를 지정할 수 있다.LayoutParams는 ViewGroup의 하위 클래스에 따라 확장되어 사용됩니다.RelativeLayout : 자식 뷰를 서로 상대적으로 배치하기 위한 추가 속성을 제공하는 RelativeLayout.LayoutParams를 사용합니다.
[안드로이드] startActivity val launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> if (result.resultCode == Activity.RESULT_OK) { val data: Intent? = result.data // 결과 처리 }}launcher.launch(Intent(this, AnotherActivity::class.java))1. startActivity()public void startActivity (Intent intent, Bundle options)새로운 액티비티를 시작하는데 사용됩니다.options 매개 변수를 사용하여, 실행할 액티비티에..
[안드로이드] Handler 공식문서 공부 1. HandlerHandler는 특정 스레드의 MessageQueue와 관련된 Message 및 Runnable 객체를 전송하고 처리할 수 있도록 해줍니다.각 Handler 인스턴스는 하나의 스레드와 메시지 큐에 연결되어있습니다.새로운 Handler를 생성하면 그것은 Looper에 바인딩됩니다.바인딩 : Handler가 특정 Looper와 연결되어, 그 Looper의 메시지 큐를 통해서 작업을 처리하게 되는 것이 Handler는 메시지와 runnable을 해당 Looper의 메시지 큐에 전달하고, 그것들을 Looper의 스레드에서 실행시킵니다.주요 용도미래의 어떤 시점에 실행될 메시지 및 runnable을 예약하는 것메시지를 예약하는 것은 post(Runnable), postAtTime(java.lan..
getImageMatrix() getImageMatrix()안드로이드의 ImageView 클래스에서 제공하는 메서드이미지 뷰에 적용된 변형 행렬(Matrix)를 반환합니다.이 행렬은 이미지의 크기 조정, 회전, 이동 등과 같은 달라진 형태를 정의하며, 이미지가 화면에 그려질 때 적용된다.이미지의 변형이 없으면 getImageMatrix()는 identity matrix를 반환합니다.identity matrix는 아무런 변형이 되지 않은 이미지의 기본 상태를 나타냅니다.반환된 행렬은 직접 수정하지 말고 복사해서 사용해야 합니다.원본 행렬을 변경하면 예기치 않은 동작이 발생할 수 있습니다.새로운 변형을 적용하려면 복사본을 수정한 후 setImageMatrix()를 통해 적용해야합니다. public RectF(float left, floa..
안드로이드 알림 권한 : POST_NOTIFICATIONS POST_NOTIFICATIONS를 사용하는 Android13 이상은 권한 팝업의 문구가 더 적합하다.Android13(API 33) 이상에서는 알림 전송을 위한 런타임 권한을 지원합니다.Android13(API 33) 이상에서는 알림 권한과 상관 없이 사용자에게 보여지는 예외적인 알림이 있다. 1.예외알림 권한과 상관없이 사용자에게 보여지는 알림이 있다.Android 13(API 33) 이상에서는 사용자가 알림 권한을 거부해도 작업 관리자에서는 포그라운드 서비스와 관련된 알림을 계속 볼수 있지만 알림 창에 메세지는 표시되지 않습니다. 작업 관리자알림창을 내리면 작업 관리자라고 하는 곳에 실행 중인 앱 목록이 표시된다.모든 안드로이드 기기에 적용되는 건 아닌 듯하다. 갤럭시 탭에는 없는 기능이다.사진의 ..
[안드로이드] READ_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE애플리케이션이 외부 저장소의 파일을 읽을 수 있도록 한다.외부 저장소SD카드내부 저장소의 공유된 영역('내 파일' 앱{다운로드, 음악, 사진 같은 폴더를 포함한다.}단순히 앨범에서 이미지를 가져올 때는 READ_EXTERNAL_STORAGE 권한을 얻지 않아도 된다.앱이 Intent.ACTION_PICK 또는 Intent.ACTION_GET_CONTENT와 같은 암시적 인텐트를 사용하여 갤러리 앱을 호출하면 사용자가 직접 이미지를 선택한다.이 방식은 Storage Access Framework(SAF)를 활용한 것으로, 시스템이 사용자와의 상호작용을 통해 파일에 대한 접근을 제어합니다.따라서 앱은 파일 경로를 직접 알 수 없으며, 시스템이 제공하는 URI를 통해서만 ..
안드로이드 FLAG 정리 안드로이드 Intent Flag?Activity를 시작할 때 인텐트에 특정 동작을 추가하거나 동작 방식을 수정하는데 사용됩니다. 1. FLAG_ACTIVITY_BROUGHT_TO_FRONTAPI 1에서 추가됨이 플래그는 시스템에서 자동으로 설정해주는 플래그 입니다.보통 singleTask 모드에서 사용되며 현재 앱에서 이미 열린 Activity가 있으면 그 Activity를 포그라운드로 가져오는 역할을 합니다.즉 기존에 열린 Activity가 다시 화면에 올라오게 됩니다..2.FLAG_ACTIVITY_CLEAR_TASKAPI 11에서 추가됨이 플래그는 새로운 Activity를 시작하기 전에 기존 Activity 스택을 모두 지우는 역할을 합니다.즉, 현재 실행 중인 Task를 비우고, 새로운 Task를 ..
안드로이드 스튜디오 Gradle 파일들 공부 .gradle/Gradle 프로젝트 캐시 디렉토리Gradle이 관리하며, 다운로드된 Gradle 배포판, 프로젝트 캐시 및 구성 파일을 포함합니다.이 폴더는 Gradle의 빌드 프로세스에 의해 생성되며, 빌드 중에 생성되는 임시 파일, 캐시, 로그 등을 저장합니다. 이 폴더는 프로젝트별로 생성되며, 일반적으로 버전 관리 시스템에 포함되지 않습니다. .gradle 폴더는 빌드 성능을 향상시키기 위해 재사용 가능한 데이터를 저장하는 데 사용됩니다.주의 : 이 디렉토리의 파일을 직접 수정하지 마세요..idea/Android Studio 프로젝트 메타 데이터프로젝트 설정, 코드 스타일, 실행 구성 등 Android Studio 관련 메타 데이터를 포함합니다.주의 : 이 디렉토리의 파일을 직접 수정하지 마세요. ..
안드로이드 Build 공식문서 공부 Build란 무엇일까요?빌드 시스템은 소스를 실행가능한 애플리케이션으로 변환합니다.빌드는 애플리케이션이나 라이브러리를 분석,컴파일, link, package(패키징)하기 위해 여러 도구를 사용한다.Gradle은 이러한 명령을 구성하고 실행하기 위해 task 기반 접근 방식을 사용한다.task는 입력을 출력으로 변환하는 명령어를 캡슐화한다.Plugin은 task와 그 설정을 정의한다.플러그인을 빌드에 적용하면 태스크가 등록되며, 입력과 출력을 통해 서로 연결된다.예를 들어, Android Gradle Plugin(AGP)을 빌드 파일에 적용하면 APK나 Android 라이브러리를 빌드하는 데  필요한 모든 태스크가 등록됩니다.java-library 플러그인을 사용하면 Java 소스코드에서 jar 파일을 빌..
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"안드로이드 10에서만 가능안드로이드 9이하 방식의 외부 저장소 접근 방식을 사용할 수 있도록하는 설정입니다.안드로이드 9이하의 외부 저장소 방식앱이 WRITE_EXTERNAL_STORAGE 또는 READ_EXTERNAL_STORAGE 권한만 있으면 외부 저장소 전체를 자유롭게 읽고 쓸 수 있다.WRITE_EXTERNAL_STORAGE 또는 READ_EXTERNAL_STORAGE 권한을 얻으려면 사용자에게 권한을 허용해야한다.안드로이드 10 이상의 외부 저장소 방식Scoped storage 사용각 앱이 **자기 앱 전용 디렉터리(예: /Android/data/[package_name]/)**에만 자유롭게 접근 가능.공유 디렉터리(..