목록Android (14)
NOW OR NEVER

위 글은 task 작업을 앱 빌드 전 추가하는 걸 통해 launch 시 assebleDebugBuild 전 clean project를 하는 법을 설명합니다. 1️⃣ Project 수준 build.gradle 에 아래 코드를 buildscript 블럭 밖에 작성한다.tasks.register('clean', Delete) { delete rootProject.buildDir}2️⃣ 안드로이드 스튜디오 메뉴 Run > Edit Configurations 클릭한다. 3️⃣ app을 선택 후 아래로 스크롤 시 Before launch 탭을 볼 수 있다. 해당 탭에서 + 클릭주의: Gradle-aware Make가 없으면 빌드가 되지 않는다. 절대 삭제하지 말 것! 4️⃣ + 클릭 후 Run Gradle t..
Time Picker 목표 : 5분 단위로 interval 설정 첫 번째 시도 방법 (실패) xml 파일 자체에서 android:minuteInterval 속성으로 5 설정 안드로이드 12부터 구현이 가능한 속성이라 실패하나 싶어 앱 수준 그래들 파일에서 targetSdkVersion을 31 이상으로 설정해봤는 데 안됐다. -> 코틀린 코드로 직접 구현해야겠다는 생각이 들었다,,, 두 번째 시도 방법(성공) 5분 단위 배열 생성해서 분 선택 spinner에 적용시키기 padStart(문자열 길이, 늘어난 길이만큼 추가할 문자열) -> 예를 들어 값이 3인 문자열을 padStart(2,'0') 한다면 03으로 반환 fragmentMakeScheduleBinding.run { makeScheduleTimeP..

tools:context 제거 바꿔주니 빨간 줄도 안뜬다 구글링 하면서 참고하면서 똑같이 따라해보고 내 코드에 맞게 적용하는 과정 속에서 발생했다. 찾아본 결과 tools 는 레이아웃 에디터에서 레이아웃 디자인을 미리 볼 때 사용되는 것이므로. 실제 앱을 실행할 때는 사용되지 않으니 삭제하거나 수정해도 무방하다.
Image view에 등록된 사진이 안보이는 현상 해결 안보이는 현상이 발생한 코드 해결 방법 : tools:src="@drawable/sample_img" 이부분을 android:src="@drawable/sample_img" 이렇게 변경
사진 저장 권한 매번 실행할 때 마다 이미지, 음악 등을 검색해서 보여주는 것이 아니기 때문에 로딩이 느리지 않다. 정보를 추출하여 자기가 관리하는 데이터베이스에 저장하고 있다가 그 정보를 전달하는 개념 에뮬레이터 이용하는 경우 사진 미리 저장해두는 법 ~/Library/Android/sdk/avd/[에뮬레이터 이름]/sdcard/ : Mac의 경우 이 경로로 에뮬레이터의 가상 SD 카드 디렉토리로 이동한 다음, 해당 디렉토리에 사진 파일을 복사해 넣기 네트워크 socket server 서버는 인텔리 제이 작업 / 클라이언트는 안드로이드 스튜디오 작업 서버 프로젝트 실행 후 클라이언트 프로젝트 실행 서버 서버가 클라이언트에게 데이터 전달 특정 클라이언트가 문제가 생기면 그 클라이언트 연결만 끊으면 되지만..
Sensor 조도센서 TYPE_LIGHT 주변 밝기에 따라 실행할 무언 가가 있을 때 사용 주변 밝기 측정 lux 단위의 주변 밝기 값을 가져온다 단말기마다 성능이 달라 sensorUI를 설정해놔야 한다. 메서드 onSensorChanged: 매개 변수로 들어오는 센서 객체로부터 측정된 값 가져옴 onAccuracyChanged : 센서의 정확도 혹은 감도 등의 성능의 변화가 있을 때 호출되는 메서드, 거의 쓸 일 없음 기압 센서 TYPE_PRESSURE 공기압을 측정하는 센서 gps랑 같이 쓰는 것이 좋다 어떤 건물에 있는 지 알아야 어떤 위치의 기압이 얼마인지 수집하면 어느 위치 일때 평균 기압이 얼마인지 파악할 수 있다. 건물 내부의 기압은 건물구조에 따라 달라진다. 보통 실내에서 고도를 파악하기 ..
File I/O download folder를 쓰는 것이 원칙 기존에는 코드를 통해서 특정 파일 경로 얻어오는 것이 가능했으나 안드로이드 10 부터는 불가능하게 됨 저장 방법 메모리 : 애플리케이션이 실행 중에만 사용하는 경우 단말기내부 : 애플리케이션이 종료되고 다시 실행되었을 때도 사용하는 경우(데이터가 유실 가능) 서버 : 애플리케이션이 종료되고 다시 실행되었을 때도 사용하는 경우 (데이터 유실 x) or 다른 단말기에서도 사용하는 경우 stream은 제일 마지막 애만 닫아도 다 닫힌다. MimeType : 파일에 저장되어 있는 데이터의 양식이 무엇인지를 타나내는 문자열(https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types..
Android Message Notification 상단바를 내렸을 때 알림창에 뜨는 메세지 사용자가 메세지를 확인 할 때까지 존재하는 메세지 메세지 터치 시 어플리케이션 실행 가능 사용자로 하여금 지속적으로 어플리케이션 사용 유도에 용이 프로젝트 만든 후 emulator에서 실행 시 알림 허용 하고 테스트 해보기 addNotification 메서드 // Notification Channel을 등록하는 메서드 // 첫 번째 : 코드에서 채널을 관리하기 위한 이름 // 두 번째 : 사용자에게 노출 시킬 이름 fun addNotificationChannel(id:String, name:String){ // 안드로이드 8.0 이상일 때만 동작하게 한다. if(Build.VERSION.SDK_INT >= Bui..
activity activity 요소들은 각 다른 activity에서 쓰이더라도 id를 다르게 주는 것이 좋다. 여러 액티비티에서 변수 사용 시 정적 멤버 사용 : 하나 딱 만들어서 쓸 거고 언제 어디서든 가져다 쓸 것이기 때문에 사용 application context : 정적멤버 대신 많이 사용 activity launcher 는 다른 activity 이동할 때 이동 전 activity 정보 사용 할 때 사용 다른 어플리케이션에서의 activity 사용 manifest.xml 안에 안드로이드 4대 요소들 등록해야 한다. intent 종류 명시적 intent : 어떠한 어플리케이션의 어떤 것을 등록할 것인지 직접 등록해주는 것인데 지금은 쓸 수 없음, 보안의 위험이 있어 지금은 개발자가 허용한 acti..
Activity Call Back 처리 법 activity를 갔다 돌아왔을 때 inner class 액티비티CallBack로 작성 하거나 onActivityResult로 분기 처리. 하지만 분기 처리를 권장하지 않고 inner class로 권장한다. parcelable 안드로이드에서 4대 구성요소 간에 객체를 전달하기 위한 직렬화를 수행 객체 직렬화 : parcelable = serialize parcelable을 구현한 객체를 intent에 담기는 것이 아닌 해당 객체 안 parcel이라는 객체가 intent에 담긴다. 복원 : 객체들의 값만 저장했다가 그 값만 가지고 새로운 객체를 만드는 것도 복원이라고 본다. 나중에 객체에 복원할 때 필요한 값들만 parcel에 저장해 intent에 담아놓았다가 i..