퍼미션 설정하기 퍼미션이란 앱의 특정 기능에 부여하는 접근 권한을 말합니다. 안드로이드 시스템에서 보호하는 특정 기능을 이용할 때나 다른 앱에서 사용할 수 없도록 보호할 때 퍼 민션을 설정합니다 퍼미션 설정과 사용 설정 A 앱의 컴포넌트를 B 앱에서 사용하는 상황일때 A 앱의 컴포넌트에서 퍼미션을 설정하면 B 앱에서 연동할 때 문제가 발생합니다. 이럴 때는 B 앱에서 을 설정해줘야 합니다. 매니페스트 기능을 보호하려는 앱의 매니페스트 파일에 설정합니다. 퍼미션으로 보호된 기능을 사용하려는 앱의 매니페스트 파일에 설정합니다. 태그와 속성 name 퍼미션의 이름입니다. abel, description 퍼미션을 설명합니다. protectionLevel 보호 수준입니다. protectionLevel 속성값은 보..
API 레벨 호환성 고려하기 minSdkVersion 16 targetSdkVersion 30 위말은 30버전의 API로 개발을 하였지만 16버전 기에서도 오류가 발생하지 않고 동작한다는의미입니다. 그러므로 minSdk 설정값보다 상위 버전에서 제공하는 API를 사용한다면 호환성을 고려해야 됩니다. 안드로이드 API문서를 보다보면 Added in API level 숫자"이라고 써져있는것을 볼수있습니다. 여기서는 숫자이후에 나온 버전들의 경우 호완성문제가 발생하지 않습니다. 그렇지만 그숫자 이전 버전으로 실행시키경우 호완성 문제가 발생하게 됩니다. 이때 필요한것이 @RequiresApi 애너테이션이나 @TargetApi 애너테이션입니다. @RequiresApi(Build.VERSION_CODES.R) //..
폰 크기의 호환성 안드로이드폰 여러 제조업체에서 다양한 크기로 출시합니다. 그러므로 안드로이드앱에서는 다양한 기기와 호완되는 화면을 만드는것이 중요합니다. 폰크기의 호완성은 시스템에서 도와주는 부분과 개발자가 해결해야하는 부분으로 나눌수 있습니다. 안드로이드 시스템에서는 크기를 xxxhdpi, xxhdpi, xhdpi, hdpi, mdpi, ldpi로 나눌수 있습니다. dpi는 dots per inch의 줄임말로 1인치 안에 있는 도트의 개수를 의미 합니다. 화면 밀도 배율 크기 xxxhdpi 4.0 초초초고밀도 화면이며 ~640dpi xxhdpi 3.0 초초고밀도 화면이며 ~480dpi xhdpi 2.0 초고밀도 화면이며 ~320dpi hdpi 1.5 고밀도 화면이며 ~240dpi mdpi 1.0 중밀..
위장 # 위장 # 링크 : https://programmers.co.kr/learn/courses/30/lessons/42578 # 문제 설명 # 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. # 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 # 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. # 종류 이름 # 얼굴 동그란 안경, 검정 선글라스 # 상의 파란색 티셔츠 # 하의 청바지 # 겉옷 긴 코트 # 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. # 제한사항 # clothes의 ..
전화번호 목록 # 전화번호 목록 # 링크 : https://programmers.co.kr/learn/courses/30/lessons/42577 # 문제 설명 # 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. # 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. # 구조대 : 119 # 박준영 : 97 674 223 # 지영석 : 11 9552 4421 # 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 # 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. # 제한 사항..
완주하지 못한 선수 # 완주하지 못한 선수 # 링크 : https://programmers.co.kr/learn/courses/30/lessons/42576 # 문제 설명 # 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. # 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, # 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. # 제한사항 # 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. # completion의 길이는 participant의 길이보다 1 작습니다. # 참가자의 이름은 1개 ..
코딩테스트 연습 - 문자열 내 p와 y의 개수 # 문제 설명 # 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 # 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' # 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 # 구별하지 않습니다. # 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. # 제한사항 # 문자열 s의 길이 : 50 이하의 자연수 # 문자열 s는 알파벳으로만 이루어져 있습니다. # 입출력 예 s answer "pPoooyY" true "Pyy" false # 입출력 예 설명 # 입출..
코딩테스트 연습 - 짝수와 홀수 # 문제 설명 # 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, # solution을 완성해주세요. # 제한 조건 # num은 int 범위의 정수입니다. # 0은 짝수입니다. # 입출력 예 num return 3 "Odd" 4 "Even" 소스 더보기 더보기 def solution(num): return "Odd" if num%2 else "Even"
코딩테스트 연습 - 서울에서 김서방 찾기 # 문제 설명 # String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 # String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 # 나타나며 잘못된 값이 입력되는 경우는 없습니다. # 제한 사항 # seoul은 길이 1 이상, 1000 이하인 배열입니다. # seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. # "Kim"은 반드시 seoul 안에 포함되어 있습니다. # 입출력 예 seoul return ["Jane", "Kim"] "김서방은 1에 있다" 소스 더보기 # 1 def solution1(seoul): return '김서방은 '+str(seoul...
리소스 조건 설정 리소스 조건 설정이란 리소스를 특정 환경에서만 적용되도록 설정하는 것을 말합니다. ex ) 기기별 실행 아이콘 크기같은경우 기기마다 디스플레이 크기가 다르므로 리소스 조건 설정하여 보기 좋게 만들어줌 코드에서도 설정할수 있지만 이렇게 나열될 경우 프로그램이 복잡해지고 리소스를 사용하는 목적과도 맞지 않습니다. 화면 밀도 크기 XXXHDPI 192*192 XXHDPI 144*144 XHDPI 96*96 HDPI 48*48 MDPI 36*36 리소스 조건을 이용하려면 아이콘의 파일명을 똑같이 지정해야 합니다. 대신 식별할 때는 다른 디랙터리명을 사용하여 구분을 해주면 해당 기기의 플랫폼이 알아서 적용시켜줍니다. 디렉터리명을 구분할 때는 소스 디렉터리 이름에서 붙임표(-) 뒤의 단어를 사용하..