728x90
반응형

Android/StoreInfo 51

<정리> Permission

Permission은 특정 시스템 리소스나 제한된 데이터와 작업에 대한 접근과 수정을 허용하는 것 Permission Workflow Permission 유형1. Install-time permissions(설치 시간 권한)앱이 제한된 데이터에 제한적으로 접근하거나, 시스템 또는 다른 앱에 최소한의 영향을 미치는 제한된 작업을 수행할 수 있도록 허용앱 스토어에서 사용자가 앱의 상세 페이지를 볼 때 설치 시간 권한 통지를 사용자에게 제시 → 사용자가 앱 설치할 때 시스템이 자동으로 권한 부여1) Normal permissions(일반 권한)앱이 제한된 데이터에 제한적으로 접근하거나, 시스템 또는 다른 앱에 최소한의 영향을 미치는 권한시스템은 보호수준을 normal로 할당android.permission.I..

Android/StoreInfo 2024.09.22

<정리> Data and file storage

안드로이드는 다른 플랫폼의 디스크 기반 파일 시스템과 유사한 파일 시스템 사용앱은 기본적으로 내부 저장소에 저장되지만 APK 사이즈가 너무 큰 경우에는 매니페스트 파일에서 외부 저장소에 설치하도록 설정 가능 데이터 저장 방법1. App-specific storage(앱 전용 저장소)다른 앱은 접근할 수 없는 해당 앱 전용 저장소App-specific files 저장내부 저장소 경로 : data/data/패키지명 외부 저장소 경로 : /storage/emulated/0/Android/data/패키지명내부/외부 저장소 접근 : Context 사용2. Shared storage(공유 저장소) 다른 앱과 공유하려는 파일(동영상, 문서 등) 저장Shareable media content 저장3. Preferenc..

Android/StoreInfo 2024.09.21

onBackPressedCallback()

API Level 33부터 액티비티에서 onBackPressed()가 더 이상 사용되지 않기 때문에 사용하게 된 onBackPressedCallback() 다음과 같은 형태로 액티비티에서 사용할 수 있고class TestActivity : AppCompatActivity() { private val callback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { // 뒤로가기 클릭 시 실행시킬 코드 입력 } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedI..

Android/StoreInfo 2024.07.03

<정리> 안드로이드 플랫폼

안드로이드는 다양한 기기와 폼 팩터에 사용할 수 있도록 제작된 리눅스 기반의 오픈소스 소프트웨어 스택이다.스택이라고 하는 이유는 여러 소프트웨어가 스택 모양으로 쌓여있기 때문이다. Linux Kernel부터 System Apps까지 존재한다.Linux Kernel안드로이드 플랫폼의 기초Linux Kernel을 사용하면 안드로이드에서 주요 보안 기능을 활용할 수 있고 기기 제조업체에서 잘 알려진 커널용 하드웨어 드라이버를 개발할 수 있다. Hardware Abstraction Layer는 카메라, 오디오, 네트워크 등의 하드웨어 기능을 사용하기 위해 하드웨어 드라이버(Linux Kernel 드라이버)를 호출할 때 Linux Kernel을 사용한다.Native C/C++ Libraries는 메모리 관리, 파..

Android/StoreInfo 2024.07.02

<정리> 버전 카탈로그로 빌드 이전

■ 원문 버전 카탈로그로 빌드 이전  |  Android Studio  |  Android DevelopersGradle 구성 파일을 Gradle 버전 카탈로그로 이전합니다.developer.android.com 오늘 Conductor를 공부해보는 시간을 가지면서 안드로이드 스튜디오에서 새로운 프로젝트를 만들고 의존성을 추가하려고 했는데 build.gradle.kts 파일에 뭔가 큰 변화가 있었다. 플러그인 쪽도 동일한 형태였고 프로젝트 단의 build.gradle.kts 파일도 변경되어있었다.이게 무슨 일인가 하고 찾아봤더니 올해 2월달에 관련 내용이 공식문서에 올라와 있었고 왜 이게 자동으로 적용됐는지는 모르겠다.(하하하) 그래서 이번에 의존성을 적용하면서 겪었던 걸 적어놓고 정리할 겸 글을 작성한다..

Android/StoreInfo 2024.07.01

최종 팀플 개발 3,4일차

이러다가 일주일치 몰아서 쓸 거 같아서 3,4일차만 후다닥한다. 1. setOnCheckedStateChangeListener 사용법을 알았다. 이게 ChipGroup을 컨트롤할 때 사용한 건데 setOnCheckedChageListener랑은 사용법이 다르더라. 그래서 사용한 방법은 두번째 파라미터의 들어가는 값이 선택된 Chip 리스트라는 걸 가지고 필요한 처리를 했다. cgFilterTitle1Header1.setOnCheckedStateChangeListener { group, checkedId -> selectedOptions[0].clear() for (id in checkedId) { val selectedOption = filterOptions[0].first { it.first == id..

Android/StoreInfo 2024.02.28

최종 팀플 개발 2일차

1. 뷰모델 팩토리 적용 방법 지금까지는 뷰모델 팩토리를 만들 때 파일을 따로 만들었는데 이번에 새로운 방법을 알게 되었다. 바로 뷰모델 안에 companion object로 뷰모델 팩토리를 만드는 변수를 선언하는 방법이다. viewModelFactory 스코프 함수와 initializer 스코프 함수를 사용한다. companion object { val factory = viewModelFactory { initializer { val application = (this[APPLICATION_KEY] as SeoulPublicServiceApplication) val container = application.container InterestRegionSelectViewModel( regionPrefR..

Android/StoreInfo 2024.02.27

최종 팀플 개발 1일차

다른 거 말고 트러블슈팅이나 고민들만 적어놓으려고 한다. 어제가 1일차인데 오늘 쓰는 이유는 어제 마무리를 하고나니 새벽 2시였기 때문이고 와이어프레임을 너무 봐서 개발했던 내용들이 잘 생각나지 않았기 때문이다... 1. 다이얼로그 프래그먼트의 둥근 모서리 나는 다른 뷰객체에 둥근 모서리를 주듯이 하면 되겠지 하고 xml 파일에서 모서리를 둥글게 하고 가장 상위 레이아웃 background에 넣어준 다음 clipToOutline을 true로 주고 앱을 실행시켰는데 적용이 되지 않았다. 도대체 왜 이러는 건지 몰라서 여러가지 방법을 적용하며 체크해봤다. 그 중에 알게된 거는 가장 상위 레이아웃 뒤에 흰색 배경이 존재한다는 거였다. 그걸 없애야지만 적용이 안 되어있는 것처럼 보이는 현상을 해결할 수 있는 상..

Android/StoreInfo 2024.02.23
반응형