본문 바로가기

Android9

[Android] 위험 권한(Dangerous Permission)와 일반 권한(Normal Permission) 이번에는 안드로이드를 개발하면서 권한에 대한 공부를 해보았습니다. 권한에는 위험 권한(Dangerous Permission)과 일반 권한(Normal Permission)이 있습니다. 일반 권한 (Normal Permission) 이란?, 일반 권한은 앱이 설치될 때 자동으로 부여되며, 사용자에게 별도의 권한 요청 대화 상자가 나타나지 않는 권한입니다. 또한, 사용자의 주의를 끌거나 민감한 정보에 접근하지 않습니다. 위험 권한 (Dangerous Permission) 이란?, 위험 권한은 사용자에게 권한 요청 대화상자가 표시되어야 하며, 사용자는 권한을 부여하거나 거부할 수 있는 권한 입니다. 또한, 사용자의 개인 정보에 접근하거나 기기 설정을 변경하는 등의 작업을 수행할 수 있습니다. 위험 권한 ?.. 2024. 1. 18.
[Android] 안드로이드 스튜디오에서 에뮬레이터(AVD) 분리하기 안녕하세요. 오늘은 안드로이드 스튜디오에서 에뮬레이터를 분리하는 방법을 알아보려고 합니다. 기본 화면 안드로이드 스튜디오를 사용해서 개발을 하다 보면 에뮬레이터(Emulator)를 사용하는 일이 많습니다. 그런데 에뮬레이터를 사용하게 되면 코드 화면이 줄어들어 불편함을 유발합니다. 그래서 이 에뮬레이터를 분리하는 방법을 알아보려고 합니다. 참고로 저는 맥북 유저라서, 윈도랑 살짝 차이가 있을 수 있습니다. 에뮬레이터(Emulator) 분리 방법 1. AndroidStudio 에서 settings를 들어갑니다. 2. 왼쪽에 Tools -> Emulator을 클릭합니다. 3. Launch in a tool window가 체크되어 있는데 이것을 체크를 해지해줍니다. 4. 마지막으로 Apply 후 Ok를 누르면.. 2024. 1. 12.
[Android] 안드로이드 CompatCheckBox 체크 박스 색 변경 안녕하세요. 이번에는 오픈 채팅방에서 CheckBox의 안에 색을 변경하고 싶은데 구글링 정보가 없다고 해서 포스팅해보려고 합니다. 이렇게 기본적으로 보라색? 으로 시작되어 있습니다. AppCompatCheckBox 기본 코드 위의 코드는 AppCompatCheckBox의 기본 코드입니다. 이러면 위의 사진과 같이 체크 박스의 색은 보라색으로 나옵니다. 여기서 우리는 app:buttonTint를 추가해 주면서 체크 박스의 색을 변경할 수 있습니다. AppCompatCheckBox 변경 된 코드 이렇게 코드를 넣으면 아래의 색으로 나타나는 것을 확인할 수 있습니다. 1. AppCompatCheckBox 기본 코드 2. AppCompatCheckBox 변경 된 코드 제가 아는 방법인 buttonTint로 해.. 2023. 12. 18.
[Android] 안드로이드 난독화 및 최적화하기 안드로이드 난독화란 안드로이드 난독화란, 간단하게 말해 소스 코드를 읽기 어렵게 만드는 과정입니다. 이는 주로 보안을 강화하기 위한 목적으로 사용되며, 소스 코드를 이해하거나 복사하는 것을 어렵게 만들어, 소프트웨어의 보안을 높이는 역할을 합니다. 난독화를 통해 소스 코드의 구조와 로직이 외부에 노출되는 것을 막을 수 있습니다. 이를 통해 악성 사용자가 우리의 소프트웨어를 공격하거나, 소스 코드를 부정하게 이용하는 것을 방지할 수 있죠. 이는 개발자로서, 우리의 소프트웨어를 안전하게 보호하는 데 있어 중요한 작업입니다. 난독화의 장점 코드 축소(또는 Tree Shaking): 앱 및 라이브러리 종속 항목에서 미사용 클래스, 필드, 메서드, 속성을 감지하여 안전하게 삭제합니다(64k 참조 제한을 해결하기 .. 2023. 12. 14.
[Android] 안드로이드 스튜디오에서 릴리즈 버전 테스트하기 이번에 앱을 새롭게 출시하였는데, 디버그(debug) 모드에서는 잘 실행이 되던 것이 릴리즈(release) 버전에서는 실행이 안 되는 오류가 생겨서 이 부분을 테스트하기 위해 안드로이드 스튜디오에서 릴리즈 버전을 테스트하였습니다. 실행 방법 일단 release 버전에 사용할 keystore을 생성해줘야 합니다. 1. keyStore 생성하기 그러고 난 후 생성한 keystore 파일을 android studio의 app 폴더에 지정해야됩니다. 그리고 build.gradle(Module:app)으로 간 후 아래같이 코드를 작성해 줍니다. 2. build.gradle(Module:app)에 코드 작성 android { ... signingConfigs { config { keyAlias "yourKeyAl.. 2023. 12. 13.
[Android] collectAsState()와 collectAsStateWithLifecycle() 차이점 안드로이드 유튜브를 보던 중 collectAsState()와 collectAsStateWithLifecycle()에 대한 내용을 보게 되어 이전에 collectAsState()를 사용해서 앱을 개발한 적이 있어 공부를 하게 되었다. CollectAsState() collectAsState 함수는 Koltlin Flows를 관찰하고 해당 값을 'State' 클래스로 변환한다. State 클래스는JetpackCompose 라이브러리에서 사용되는 불변성을 가진 상태 관리 클래스이다. CollectAsState 함수 사용법 val flow: Flow = // your flow here val state: State by flow.collectAsState(initial = initialValue) 이 함수는 '.. 2023. 11. 9.
RxJava란 이번 포스팅에는 RxJava에 대한 이야기를 하려고 한다. 팀 프로젝트로 어플을 만드는 과정에서 Azure Face API를 사용하게 되었고 오픈소스를 찾으면서 하다 보니 비동기 AsyncTask를 사용하였는데, RxJava로 대처하게 되면서 RxJava에 공부를 하게 되었다. RxJava란 RX는 Reactive eXtension의 약자로, Micorsoft가 .NET에서 사용하기 위해 만든 Open Source Library입니다. 그리고 2013년 2월 넷플릭스에서 처음 소개되었고, 2016년 10월 RxJava2를 발표하였으며 가장 최근에 2020년 2월에 RxJava3을 배포되었다. Rx공식문서에 따르면 ReactiveX는, ReactiveX is a library for composing as.. 2022. 3. 15.
AsyncTask 정지...(deprecated) AsyncTask 정지 이번 포스팅에는 AsyncTask가 deprecated 된 것에 대한 이야기를 하려고 한다. 팀 프로젝트로 어플을 만드는 과정에서 Azure Face API를 사용하게 되었고 오픈소스를 찾으면서 하다 보니 비동기 AsyncTask를 사용하게 되었다. 하지만 이렇게 안드로이드 스튜디오에서 Android11, SDK30 이상에서 사용이 정지된 것을 확인하였고 왜 AsyncTask가 정지되었는지 알아보게 되었다. 아래는 안드로이드 오픈소스 헤더 부분에 달려있는 주석이다. * AsyncTask was intended to enable proper and easy use of the UI thread. However, the most * common use case was for integ.. 2022. 3. 8.
반응형