Android/기타26 하단 이슈에 대해 이번에 우리 회사에서 아래와 같은 QA가 올라왔다. 우리 앱의 하단 네비게이션 바와 안드로이드 자체 하단 바의 겹침현상이 일어났다. 해당 오류는 우리는 하단 네비게이션을 그리기 전에 갤럭시 하단바의 높이를 구하고 그 위에 그리는 형식으로 되어 있다. 갤럭시 높이를 구하는 코드의 방식은 안드로이드 버젼에 따른 코드 방식을 사용하고 있는데 이는 다음과 같다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //갤럭시 하단바의 높이를 구하는 동작 방식 } else { //예외처리 } 그런데 버젼에 따라 자체 하단바가 다 다르므로 한두번씩 이러한 위와 같은 오류를 발생시키는 것 같다는 의심을 하였다. 여기에 아래와 같은 방어코드를 대입했다. 방어 코드의 의미는 한.. 2022. 11. 3. 생명주기에 대해서 생명주기(Lifecycle) 1) 생명주기란 무엇인가? Lifecycle은 Life + cycle의 합성어로, 삶의 순환이라고 직역할 수 있겠다. 말 그대로 탄생하고 성장하여 죽음에 이르기까지의 과정이라고 생각한다면, 이것을 안드로이드 앱에 적용한 것이 바로 Android Lifecycle이다. Activity, Fragment, Service 총 세가지 종류의 Lifecycle이 있으며 오늘은 그 중 Activity의 Lifecycle에 대해서만 포스팅하도록 하겠다. 2) 생명주기가 필요한 이유 예를 들어보자. 당신은 지금 여자친구와 카톡을 하고 있다. 그런데 갑자기 친구가 술먹자며 나오라고 전화를 했다. 당신이 전화를 받는순간 전화창이 화면에 보일 것이다. 그러다 약속을 잡고 전화를 끊고 다시 카톡을.. 2022. 11. 3. 다양한 진입 방법에 대해 알아보자 이번 주 회사에서 개발을 하다가 문제에 직면했다. 문제는 아래와 같다. 하나의 액티비티에 다양한 액티비티가 진입을 한다. 그런데 액티비티 D라는 녀석을 기능을 추가하여 액티비티A에 진입을 할건데 난 지금 D에서 넘어왔어. 라는 것을 액티비티 A에서 알고 싶다. 이 문제를 어떻게 해결할 것인가? 가장 기본적으로 우리 안드로이드의 액티비티 이동은 Intent를 사용하여 이동한다. 그럴 때 우리는 아래와 같은 방법으로 Intent 값에 이전 액티비티의 정보들 담아 넘겨준다. 넘겨줄때 val intent = Intent(this, SubActivity::class.java) intent.putExtra("key1","문자열 전달쓰") intent.putExtra("key2",2021) 받아올때 val value.. 2022. 10. 28. Datastore에 대해 알아보자 먼저 이제는 SharedPreferences는 deprecated된다고 한다. 이유는 SharedPreferences는 한계점이 존재한다. SharedPreferences는 비동기 작업을 제대로 해주지 않으면 ANR을 발생시킬수 있으며, 오류가 생길 시 확인이 불가능했으며, 런타임에 예외가 생기면 런타임에러가 발생해 잘못 사용하면 앱이 강제 종료 될 수 도 있다고 한다. 또한 Strong consistency가 보장되는 api가 없어 다중 스레드 환경에서 다른 결과값이 생길 수 있었다. 이러한 한계가 있어 다양한 처리를 해주어야 했다. # Strong consistency : 데이터베이스에서 사용하는 용어인데 관계형 데이터베이스에서 시간이 달라도 같은 정보로 처리하는 느낌으로 보인다. Datastore의.. 2022. 10. 23. SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file.. 정말 간단한 에러 인데 자주 나오는 에러이니 기억해두자. 바로 SDK location not found 이다. 말 그대로 SDK 경로를 찾을 수 없어서 발생하는 에러이다. 주로 맥 -> 윈도, 윈도 -> 맥으로 프로젝트를 옮길 때 자주 발생하는 에러입니다. 안드로이드 스튜디오에 내 프로젝트 디렉터리로 가서 local.properties 파일을 한번 찾아보면 존재하지 않거나 경로가 잘못되어있을 가능성이 큽니다. 경로가 잘못되어 있다면 내 PC에 맞게 변경해주시면 된다. 보통 윈도의 경우 c:\Users\'사용자 이름'\AppData\Local\android\adk 그리고 맥의 경우 /Users/'사용자 이름'/Library/Android/sdk 현재 우리 회사 예시 sdk.dir=C\:\\Users\\gk.. 2022. 10. 12. 안드로이드 최신버젼 오류 잡는법 나는 요 며칠 돌핀으로 업데이트하고 xml이 뜨진 않는 현상이나 Logcat이 이상하게 뜨는 현상을 직면하고 말았다.... 이래서 진짜.........함부러 업데이트 하면 안되는데.....안드로이드는 자꾸 최신버젼을 업데이트 시키게 한다...!!!^^ 그래서 버젼을 내리고 싶어도 바로 직전이 아닌 작년꺼를 추천해줘서 그것도 그거대로 문제다....진짜 왜그러냐 진짜...!! 나의 안드센세에게 이 사실을 말했고 안드센세는 이러한 문제를 겪고 있는 한 블로그를 알려주어 해결해주었다. 자 이제 하는 방법에 대해서 알려주겠다. 1. 버젼 정보 복사하기 아래 JetBrain 사이트에서 확인하면 모~~~든 Release 리스트가 나온다. 여기에서 다운로드 할 버전 번호를 복사해둔다. https://plugins.je.. 2022. 10. 9. 디버깅 찍는 법 나는 예전 프로젝트를 할때 오류를 잡기 위해 Log.d 와 같은 방법으로 찾아갔다. 그러나 이번에 취업을 하면서 사수가 "디버깅 할 줄 아세요??"이런 식으로 묻자 말문이 막혔다. 역시.....실무자는 달라도 달라.... 어쨌거나 지금 디버깅을 마스터하여 사수에게 이쁨을 받아보자!! 브레이크 포인트(BreakPoint) 찍기 모든 동작을 할 때 일일히 디버깅을 하는 것은 불가능합니다 특정 동작을 할 때 프로그램을 멈춰서 한 단계씩 실행을 시켜야합니다 그러기 위해서는 소스코드에 디버깅 포인트를 찍어야합니다 아래처럼 디버깅 찍을 코드에서 왼쪽 줄 번호의 빈 공간을 클릭하면 브레이크 포인트가 찍힙니다. 이렇게 찍으면 다음으로 넘어가지 않고 기다립니다. 브레이크 포인트가 다이아몬드로 찍힌다면 이 부분은 메소드 .. 2022. 10. 8. 안드로이드 자주 쓰이는 단축키 설명 단축키(Window) 단축키(Mac) 들여쓰기 취소 shift + Tab 뒤로가기 comment + option + 2022. 10. 8. Stnc Android SDKs 경고창 안드로이드 스튜디오에서 프로젝트를 받을시 다음과 같은 경고창이 발생한다. 이유는 받아올 프로젝트의 지정한 경로가 로컬 컴퓨터에 지정한 경로가 다르다고 하는것이다. 그러기 때문에 해당경로를 로컬 경로로 알아서 재설정하는다는 메세지이다. 2022. 10. 8. 디버깅 방법에 대해서 알아보자 안드로이드 개발을 하면 에러가 났을때 도저히 원인을 못 찾는 경우가 있습니다. 특정 동작을 할 때 프로그램을 멈춰서 한 단계씩 실행을 시켜야 합니다. 그러기 위해서는 소스코드에 디버깅 포인트를 찍어야 합니다. 아래처럼 디버깅 찍을 코드에서 왼쪽 둘 번호의 빈 공간을 클릭하면 브레이키 포인트가 찍힙니다. 브레이크 포인트가 다이아몬드로 찍힌다면 이 부분은 메소드 브레이크 포인트입니다 메소드 브레이크 포인트를 사용하면 속도가 많이 느려진다 하니 왠만하면 그 밑에 코드에 브레이크 포인트를 찍어줍니다 메소드 브레이크 포인트를 찍으면 아래처럼 디버깅모드로 실행할 때 메시지가 나타납니다 디버깅모드로 실행하기 첫 번째 방법은 상단 메뉴 바의 "벌레"아이콘을 선택하여 디버깅모드로 실행할 수 있습니다 마우스를 올리면 단축.. 2022. 10. 6. 다국어 엑셀시트 추출 팁 Android Studio Plugins Marketplace 에서 AndroidStringsTool 을 검색한다 https://plugins.jetbrains.com/plugin/14444-androidstringstool AndroidStringsTool - IntelliJ IDEs Plugin | Marketplace AndroidStringsTool is plugin for Convert android multilingual to excel or convert excel to android multilingual. plugins.jetbrains.com 원하는 버젼의 압축 파일을 받는다. 이때 저장 위치를 기억해 두자. 안드로이드 스튜디오에서 Plugin을 설치하기위해 File - Setting-.. 2022. 10. 6. 이전 1 2 다음