본문 바로가기

Android

[Android] Espresso에서 CustomView 값 확인하기 Espresso를 이용한 UITest를 작성 중 ProgressBar의 값이 제대로 설정되었는지 확인하기 위한 테스트를 만들기 위해 검색을 했었다. 공식 문서에는 일반 View 예제가 주로 설명이 되어있고 마지막 줄에 CustomView 관련해서 Attribute를 확인할 수 있는 코드가 링크가 되어있었다. - Espresso 기초 : https://developer.android.com/training/testing/espresso/basics Espresso basics | Android Developers This document explains how to complete common automated testing tasks using the Espresso API. The Espresso AP..
[Android] 크롬에서 안드로이드 로그 확인하기(Debugging) 크롬에서도 안드로이드를 디버깅할 수 있는 방법을 처음 알게 되었다. Android Studio 아니면 adb가 설치되어 있는 컴퓨터에서만 가능한 줄 알았는데 신기해서 공유하고자 한다. 1. 테스트 디바이스의 드라이버를 설치2. 테스트 디바이스의 개발자 모드 활성화(USB 디버깅도 체크)3. 디버그 모드로 앱 실행4. 크롬 실행 후 chrome://inspect5. Remote Target 밑에 자신이 실행한 앱 이름 하단에 inspect 링크 클릭6. DevTool 창에서 자신이 원하는 로그 혹은 상태를 확인(아래 설명은 현재 주로 쓰고 있는 기능에 대해서만임) - Elements : 현재 UI가 어떻게 그려지고 있는 상태인지 확인 가능 - Network : 현재 통신 상태에 대한 정보 표시 - Reso..
[Android] 안드로이드 스튜디오(Android Studio) 메모리 설정하기 맨 처음 안드로이드 스튜디오를 설치하고 나서 실행하면 메모리 할당량이 넉넉치 않다. 그래서 렉이 걸리거나 혹은 Out of Memory로 꺼지는 이슈가 있는데 다음과 같은 방식으로 해결할 수 있다. 1. [Help] -> [Edit Custom VM Options...]를 들어간다. 2. 다음 웹 페이지를 참고해서 수정한 후 저장한다. - 참고 : https://developer.android.com/studio/intro/studio-config?hl=ko 예시 : 최소, 최대 램 할당량만 수정한 경우-Xms1024m -Xmx4096m -XX:ReservedCodeCacheSize=240m -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -XX:+UseConcMarkSw..
[Android] 웹뷰 onResume, onPause일 때 처리 전에 만들었던 웹앱이 있었는데 앱 자체가 내려가게 되어버렸다...... 이유는 백그라운드 상태일 때도 소리가 계속 나는 상황이었기 때문이었고 해당 처리는 Webview를 가지고 있는 activity의 onResume과 onPause에서 하면 된다. 12345678910111213@Overridepublic void onResume() { super.onResume(); webview.onResume(); webview.resumeTimers();} @Overridepublic void onPause() { super.onPause(); webview.onPause(); webview.pauseTimers();}cs
[Android] 커스텀 레이아웃 관련 라이브러리를 쓸 때 Prefix가 없다고 할 때 기존에 있던 프로젝트가 특정 레이아웃을 라이브러리로 만들어서 쓰고 있었는데 Lint를 통과하지 못했음에도 불구하고 빌드도 잘 되고 앱 실행도 잘 되는 특이한 현상이 있었다. 또한 수정하려고 봤더니 자동완성 기능은 이용할 수 없는 상태였고 그 특정 레이아웃 안에 있는 컴포넌트들은 똑같은 현상이 발생하였다. 일단 지금까지 발견한 해결책은 두 가지가 있는 것 같다. 1) tools:ignore="MissingPrefix"를 해당 뷰에 추가하는 것(Android Studio에서 바로 적용시켜줄 수 있는 방법)- 장점 : 2번보다 적용하기는 간단함- 단점 : 자동완성 기능을 이용하지 못함 2) v7 에 있는 View들을 사용하는 것(TextView -> AppCompatTextView 등등)- 장점 : 자동완성 ..
[Android] HardCoding 되어있는 String 찾아내기(Lint 검사 결과) 기존에 있던 프로젝트가 구글에서 기본적으로 제공해주는 string.xml을 안 쓰고 지역화를 하고 있었다. 다행히 클래스로 묶여 있어서 그 부분에만 지역화 적용을 다시 했었는데 통수를 맞았다..... 하드코딩되어 있는 부분들이 꼭꼭 숨겨져있었다. 맨 처음에 ""으로 검색을 했었는데 내가 원하지 않은 하드코딩되지 않은 결과들도 나와서 방법을 찾아보니 다음과 같은 좋은 방법이 있었다. Android Studio의 경우 Lint라는 코드 스캔 도구를 통해 문제점을 체크해주는데 이 Lint 결과를 확인할 수 있는 기능이 있다. 1. [Analyze] -> [Inspect Code] 실행하기 2. Scope 정하기(Inspection Profile은 Custom하게 쓰고 있다면 그 Custom한 Profile로 ..
[Android] 스크린샷 방지하고 싶을 때 Activity의 onCreate 부분에 다음 코드를 넣어주면 끝 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
[Naming Convention] Android Resource 관리(개인적) 여기에 적혀있는 것은 절대적인 것이 아닙니다. 개인적으로 정리해놓은 것이므로 그냥 참고를 하시거나 피드백을 해주시면 감사하겠습니다. 1. LayoutComponent Class Name Layout Name Activity UserProfileActivity activity_user_profile.xml Fragment SignUpFragment fragment_sign_up.xml Dialog ChangePasswordDialog dialog_change_password.xml AdapterView item item_person.xml Partial layout Partial layout for MainActivity content_main.xml 2. Strings__WHERE : 화면 이름 혹은 용..