MacOS, Linux ~/.android 로 이동하여 아래 명령 입력 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android Window C:\Users\your_user_name\.android 로 이동하여 아래 명령 입력 keytool -list -v -keystore debug.keystore
Mac 기준으로 작성 이 글은 android emulator에서 로컬 도메인을 이용해 local 서버에 접근하려는 사람에게 필요한 글이다. 로컬 도메인이 아닌 localhost로 접근하는 것은 10.0.2.2 주소로 접근하면 된다. emulator를 쓰기 가능한 상태로 실행하고 emulator 내부의 hosts 파일을 수정해야 한다. 그러기 위해선 device가 Google Play가 아닌 Google APIs 이미지인 것으로 실행해야 한다. Google Play는 디버그 버전이 아닌 프로덕션 버전이므로 root접근 권한이 없어 내부의 파일 수정이 불가능하다. 물론 Google Play를 쓰지 않으므로 다른 앱을 설치할 수 없어 사용이 불가능하다. (한글 입력을 위해서 Gboard란 앱이 필요한데 설치할..
문제점 switch문에서 case에 뷰 아이디 값인 R.id.뷰아이디를 쓰면 나타난다. 원인은 Gradle 8.0부터 뷰 아이디의 값들에 붙던 final이 붙지않아 상수가 아니여서 case에 사용할 수 없게되므로 경고가 나타난다. 해결법 뷰 아이디 값을 조건문에 비교값으로 쓸 때 switch문 대신 if/else문을 사용한다.
문제점 리사이클러 뷰의 데이터가 변경됐을 때 notifyDataSetChanged()로 UI를 갱신할 경우 발생한다. 해결법 notifyDataSetChanged()를 사용하기 보단 각 상황에 맞는 함수를 사용한다. notifyItemChanged(int) notifyItemInserted(int) notifyItemRemoved(int) notifyItemRangeChanged(int, int) notifyItemRangeInserted(int, int) notifyItemRangeRemoved(int, int) notifyDataSetChanged는 최후의 수단으로 사용할 것을 권한다. 해결법을 보고 든 개인적인 생각으론 notifyDataSetChanged는 리사이클러 뷰에 자식으로 들어갈 전체 데..
문제점 다른 오픈소스 라이브러리를 가져다 쓸 때 빌드 실패하면서 발생했다. 오픈소스의 manifest와 내 앱의 manifest와 병합하는 과정에서 application 태그 내의 android:icon 속성의 값이 서로 달라 오류가 발생한 것으로 보인다. 오픈소스의 값은 @drawable/ic_launcher 내 앱의 값은 @mipmap/ic_launcher였다. 해결법 manifest 태그에 xmlns:tools="http://schemas.android.com/tools" 를 추가하고 applicatoin 태그에 tools:replace="android:icon" 를 추가한다.
API 30이상부터는 해당 버전부터 생긴 WindowMetrics이용 30미만은 이전 방식 그대로 사용 API 31부터 WindowMetrics사용을 권장하며 아래 메서드들이 deprecated 상태다. (링크) Display.getSize();// API 30부터 deprecated Display.getRealSize();
안드로이드 개발에서 사용하는 UI의 크기 단위이다. 이것에 대해 알기전에 픽셀부터 알아야 한다. 픽셀(pixel, px) 화소라고도 한다. 화면을 구성하는 기본 단위이다. 해상도랑 관련이 있는 것으로 같은 그림이나 영상을 나타낸다 하더라도 픽셀의 수가 많은 것이 해상도가 높은 것이다. 이를 위해 추가적으로 설명해야 하는 것이 dpi(dot per inch)란 것이다. dpi란 1인치 공간에 포함된 점 또는 픽셀의 수를 말한다. 같은 크기의 공간이라도 픽셀의 수가 더 많을수록 세세하게 표현되므로 해상도가 높은 것이다. 이제 크기가 다른 A, B라는 두 핸드폰 기기에서 한 이미지를 px단위로 그린다고 보자. A는 100x100크기이고 B는 50x50크기라고 치자. 이미지를 25x25크기로 그리면 A에선 4분..