본문 바로가기

분류 전체보기83

DevLog:::개발중인 테스트기기에서만 Log를 확인할 수 있게 하기 코드를 짜는 개발중에는 좀 더 상세한 파악을 위해서 작동하는 코드의 중간중간마다 아래와 같이 Log를 붙여놓아야 문제가 발생할경우 헤메는 경우를 줄일 수 있습니다. Boolean result = false; public void somethingWork_A() { Log.d("로그 somethingWork_A",String.valueOf(result)); result = true; startSomething_A() } public void startSomething_A() { result = false; Log.d("로그 startSomething_A",String.valueOf(result)); } 보통 개발중에는 코드의 여기저기에 위와 같이 로그를 붙여놓고 사용하고 개발이 끝난 후에는 부분에는 로그가.. 2021. 8. 31.
이미지와 텍스트가 함께 있는 버튼 이미지와 텍스트가 함께 있는 Button은, 커스텀 오브젝트를 만들어 쓰는 경우가 많지만, 기본 Button에서 동일한 기능을 지원합니다. drawableTop, drawablePadding속성을 이용하면 만들어 쓸 수 있습니다. 2021. 8. 18.
ㅋㅣㅂㅗㄷㅡㅂㅜㄴㄹㅣ:::키보드의 자음 모음이 분리되어 입력되는 현상 윈도우10은 아래와 같이 다양한 입력을 지원합니다. 그중 하나로 음성인식과 받아쓰기 모드가 있습니다. 해당 기능은 음성인식을 통해 윈도우를 제어할 수 있도록 도와주는 기능입니다. 키보드 입력은 윈도우키 + H의 단축키로 음성제어는 윈도우 + Ctrl + S의 단축키로 기능을 켜고 끌 수 있습니다. 다만, 해당 기능은 아래와 같이 영어(미국, 영국, 캐나다, 인도 및 오스트레일리아), 프랑스어, 독일어, 일본어, 북경어(중국어 간체 및 중국어 일반) 및 스페인어 언어만 지원합니다. 그렇다면... 지원도 되지 않는 한글에서 이 기능의 설명이 왜 필요하냐고 하면, 키보드 입력을 지원하는 단축키인 윈도우키 + H가, 한글언어를 사용하는 윈도우 10 에서 버그를 발생시키기 때문입니다. 한글 언어를 사용하는 윈도우.. 2021. 6. 10.
AndroidStudio 4294967201 오류 ::: AMD CPU를 사용하는 시스템에서 AVD 사용을 위해 android emulator 설치할 때 1. 문제 AMD CPU를 사용하는 시스템도 안드로이드 스튜디오의 AVD를 사용하여 앱일 테스트 할 수 있습니다. 몇년 전에 어떻게 사용할 수 있는지 아래와 같은 글을 올린적이 있습니다. featherwing.tistory.com/16 라이젠 PC 에서 Android Studio AVD 사용하기 인텔 기반 시스템을 사용하다가 라이젠 기반의 개발 머신으로 변경후에 당황했던 것이 빌드후 테스트를 할 때 AVD를 사용하려 하니 Emulator : emulator : ERROR : x86 emulation currently requires hardware acc.. featherwing.tistory.com 저도 라이젠 기반의 워크스테이션을 가지고 있고, 이를 이용하여 개발하고 있는데요. 며칠전에 AVD를 사용.. 2021. 4. 1.
A failure occurred while executing com.android.build.gradle.--- 빌드 or APK 생성시 해당 오류가 발생할 때 1. 문제 안드로이드 앱을 Build 하거나 APK를 생성할 때 아래의 오류등이 발생하며 빌드가 되지 않는 경우가 있습니다. A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable 발생하는 상황을 비교해 보면 테스트 디바이스나 AVD에서 테스트할때는 발생하지 않다가, Build나 APK 파일을 생성할때 발생하는것을 확인했습니다. com.android.build.gradle 이후는 여러가지로 변경되어 나타납니다. 2. 원인 발생원인은 프로젝트에서 빌드시 캐싱된 파일등이 꼬여서 발생합니다. 3. 해결방법 따라서 이때의 해결방안은 간단합니다. 안드로이드 프로.. 2020. 12. 9.
32인치와 38인치 모니터 의 비교 & 멀티/울트라 와이드 모니터를 위한 유틸리티 PowerToys 1. 32인치와 38인치 모니터의 비교 2. PowerToys 1. 32인치와 38인치 모니터의 비교 저는 듀얼모니터와 모니터 암을 사용해 왔습니다. 필요에 따라 세로로 돌려쓰기도 합니다. 예전에는 27인치 모니터를 사용하다가 32인치 모니터로, 나중에는 세로용으로만 24인치 모니터를 하나 더 추가해서 사용해 왔습니다. 그런데 32인치는 단일로 쓸때는 정말로 좋은데 듀얼은 익숙해질때까지 써봐도 편하지 않았습니다. 큰 이유는 아래와 같습니다. 1. 32인치 모니터는 세로로 돌려 사용해보니 영 애매하다. : 24인치나 27인치는 세로로 쓸만한데, 32인치는 세로로 쓰기에는 가로면적(기존의 높이)이 너무 넓습니다. 사실 27인치도 세로로 써보면 약간 불편하고, 24인치 정도가 세로로 쓰기 딱 좋은것 같습니다... 2020. 11. 4.
Duplicate resources ::: Fabric SDK Deprecated로 인한 Crashlytics SDK 의 업데이트 Firebase 콘솔에서 다음과 같은 알림을 확인 하였습니다. 2020년 11월 15일 전까지 Firebase Crashlytice SDK를 업데이트 하라고 하는군요. 해당 알림을 누르면 새롭게 변경된 Crashlytics 구현 방법 홈페이지로 이동됩니다. Firebase Crashlytics 시작하기 Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기 의견 보내기 Firebase Crashlytics 시작하기 iOS Android Unity 이 빠른 시작에서는 Firebase Crashlytics SDK를 사 firebase.google.com 이리 저리 살펴보니, 기존에는 project 단의 build.gradle에 implementation 시켜주는것으.. 2020. 8. 28.
open failed: EACCES (Permission denied) ::: 안드로이드 10 이상에서 외부저장소 파일 복사시 뜨는 Exception 안드로이드 10 이상부터 저장소 관리 정책에 큰 변화가 생겼습니다. Scope Storage 라고 하는 개념인데, 기존에 파일 경로나 SD카드 등에 접근할 수 있었던 기능들에 큰 제약이 발생하고, 샌드박스 형식의 앱 관련 디렉토리에만 접근 가능하게 되는 변경사항 입니다. 즉, 안드로이드 10(API 29)을 타겟으로 하는 앱의 경우 또다시!!!! SD카드 경로나 파일 읽기/쓰기 관련해서 변경해주어야 한다는 겁니다. 특히, Environment.getExternalStorageDirectory()가 deprecated 됨에 따라 최상위 경로등을 가지고 올 수 없도록 변경되어 파일 경로 등을 사용할 수 없도록 변경될 예정(?)이었습니다. 즉, 컨텐트 프로바이더를 사용하는것 처럼 일일이 유저가 상호작용 해주어.. 2020. 7. 24.
webview의 loadData 사용 시 화면에 아무것도 나타나지 않을때 위와 같이 Open Source Licence 화면을 만들때 webview와 webview.loadData를 사용하곤 합니다. 보통 String 리소스에 해당 부분의 내용을 작성해 둔 후 아래와 같이 사용하면 화면의 webview에 간단하게 내용을 보여줄 수 있습니다. public void initWebview() { setContentView(R.layout.activity_setting_web); WebView webview = findViewById(R.id.webview); webview.getSettings().setJavaScriptEnabled(true); webview.setVerticalScrollBarEnabled(true); String HTML= getString(R.string.O.. 2020. 7. 20.
Color hex 코드를 R, G, B 값으로 분리하기 안드로이드의 색상은 hex코드로 사용합니다. 흰색의 경우 #ffffff, 검은색의 경우 #00000 와 같습니다. setColor등으로 해당 컬러를 view 요소에 적용하게 되는데, 그냥은 적용하지 못하고 int값으로 변환 후 사용합니다. 아래와 같습니다. String colorHex ="#ffffff" public void setColor() { int color = Color.parseColor(colorHex); textView.setColor(color); } 이때 컬러코드의 값을 R, G, B로 분리해야 할 경우가 있습니다. 이때는 아래와 같이 사용하면 됩니다. String colorHex = "#ffffff" public void colorToRGB() { int color = Color.pa.. 2020. 7. 18.