본문 바로가기

개발/Android

(15)
Android Studio 터미널(Terminal)로Debug, Release SHA1 값 가져오기. 매번 검색해서 찾는 부분이라 기록해둠 Debug : keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android Release : keytool -list -v -keystore {keystore_name} -alias {alias_name} example : keytool -list -v -keystore C:\Users\Desktop\example.jks -alias example
[Android] ConstraintLayout 사용하기 위젯을 포함하여 화면 요소들의 배치를 담당하는 Layout으로는 ConstraintLayout(컨스트레인트 레이아웃, 제약), LinearLayout(리니어 레이아웃 선형), FrameLayout(프레임 레이아웃) 등이 있다. 기본 레이아웃으로 제공되던 RelativeLayout(상대 레이아웃)과 GridLaout(그리드 레이아웃)은 안드로이드 스튜디오 3.1 이상부터 Legacy(레거시) 카테고리로 이동되면서 더 이상 업데이트되지 않는다. 특별한 경우가 아니라면 이 두 레이아웃은 사용하지 않는 것이 좋다. *레이아웃(Layout)의 어원은 'lay someting out, 펼쳐놓다'라는 의미이다. 'Hello World(텍스트 뷰)' 상하좌우로 그림과 같이 4개의 동그라미가 있는데, 이것을 핸들러(Ha..
[Android] 안드로이드 버전 변천사 이미지 코드명 버전 API 레벨 발표 일자 비고 알파(Alpha) 1.0 1 2008년 9월 2008년 9월 최초 발표 베타(Beta) 1.1 2 2009년 2월 기존 문제 수정, API 변경, 통화 기능 수정 컵케이크(Cupcake) 1.5 3 2009년 4월 동영상 녹화, 소프트 키보드 지원, 블루투스 지원, 애니메이션 효과 도넛(Donut) 1.6 4 2009년 9월 안드로이드 마켓 개선, WVGA 해상도 지원, 갤러리 인터페이스, 다중 선택/삭제 지원 이클레어(Eclair) 2.1 7 2010년 1월 하드웨어 최적화, 많은 해상도 지원, 구글 맵 향상, 가상 키보드 개선, 블루투스 2.1 지원 프로요(Froyo) 2.2 8 2010년 5월 전반적인 성능 개선, USB 테더링 지원, 업데이트 기능 ..
Duplicate jar entry [android/support/v4/c/e$a.class] 오류 수정 Duplicate jar entry [android/support/v4/c/b$a.class] 오래전 만들었던 앱을 수정할 일이 있어 프로젝트 파일을 열었더니 androidx로 마이그레이션 조차 안 되어 있어 마이그레이션을 위한 소스 코드를 수정하고 앱을 빌드시키니 위에 에러가 나 앱을 실행시킬 수 없었다. 해결 방법은 메뉴 Refactor > Migrate to AndroidX를 눌러 적용시켜줘야 했다
[Android] 단위 테스트 테스트의 목적 ∙필요한 조건을 만족하는지 확인한다. ∙오류를 발견한다. ∙앱의 사용성을 확인한다. 자동 테스트와 수동 테스트 수동 테스트는 코디 작업이 끝난 상태에서 apk를 만들고, 체크리스트로 작성한 테스트 케이스를 차례대로 실행하는 형태로 이뤄지는 경우가 많습니다. 반면, 자동 테스트는 단위 테스트나 UI 테스트로 불리는 테스트 코드를 만들어 테스트 코드를 실행함으로써 앱이 바르게 동작하는지 확인합니다. 자동 테스트 특성 ∙ 반복 실행이 가능하다. ∙ 테스트 실행 상황을 시각화할 수 있다. ∙ 클래스와 메서드 등 사용자 조작으로 확인하기 어려운 단위의 동작을 확인할 수 있다. 수동 테스트 특성 ∙ 최종 사용자와 완전히 똑같이 동작을 확인할 수 있다. ∙ 사용성이나 쾌적함 등 정성적인 면에서 평가할 ..
[Android] MVP와 MVVM 설계 기법 액티비티에 계속해서 처리 내용을 기술하다가 액티비티가 너무 커지면 다음과 같은 문제가 발생합니다. ● 역할별로 처리가 나뉘지 않아 코드를 읽기가 어렵다 ● 다양한 구현이 저마다 멤버 변수를 수정하면 수정했을 때의 영향을 예측하기 어렵다. 이러한 문제점에 대처할 수 있는 MVP나 MVVM 등과 같은 설계 기법이 주목 받고 있습니다. MVP MVP(Model View Presenter)는 사용자 인터페이스를 구축할 때 이용하는 설계 기법입니다. MVP는 Model View Presente의 머리글자로, 이 구현에 따라 모델(Model)과 뷰(View) 프리젠터(Presenter)라는 세 가지 역할로 처리를 나눌 수 있습니다. 모델(Model) 모델에는 데이터와 비즈니스 로직이 들어 있고, 이곳에서는 UI에 ..
[Android] 지원 라이브러리란? 지원 라이브러리의 기본 지원 라이브러리는 라이브러리 형태로 제공되는 하위 호환성을 가진 안드로이드 프레임워크 API입니다. 안드로이드는 API 레벨(안드로이드 3.0이나 안드로이드 5.0) 별로 이용할 수 있는 클래스와 메서드가 다릅니다. 기본적으로 새로 추가된 클래스나 메서드는 낮은 API 레벨의 안드로이드 OS에서 이용할 수 없습니다. 하지만 지원 라이브러리를 이용하면 오래된 안드로이드 OS라도 일부에서 같은 메서드와 클래스를 이용할 수 있습니다. 예를 들어, Fragment 클래스는 API 레벨 11, 즉 안드로이드 3.0 이상에서만 이용할 수 있습니다. 또한 안드로이드 3.0이상만 지원하는 경우라도 Fragment 클래스의 requestPermissions 메서드 같은 안드로이드 6.0(API 레..
[Android] 컴포넌트(component) - ContentProvider, Service, BroadcastReciver ContentProvider ContentProvider는 앱 사이에서 각종 데이터를 공유할 수 있게 해주는 컴포넌트입니다. 안드로이드 표준 시스템에서는 연락처인 Contacts난 이미지나 동영상 등의 데이터를 보관하는 MediaStore 등이 ContentProvider로 공개돼 있습니다. 데이터를 검색, 추가, 갱신, 삭제할 수 있으며, 주로 SQLite 등의 관계형 데이터베이스 이용을 염두에 두고 설계됐습니다. ContentProvider로부터 데이터 읽기 ContentProvider로부터 데이터를 읽어오려면 해당 ContentProvider가 어디에 있는지 알아야 합니다. 경로는 'content://스키마'를 가진 URI(Universal Resource Identifier) 지정되고, 일반적으로..