안드로이드 프로젝트 import 시 구글 리포지토리에 연결되지 않을 때

IOException: https://dl.google.com/android/repository/addons_list-x.xml java.net.ConnectException: Connection refused (Connection refused) 안드로이드 스튜디오에서 위와 같은 메시지를 출력 할 때 조치해볼 수 있는 내용은 다음과 같다. 우선 안드로이드 스튜디오와 SDK 툴들을 최신 상태로 만든다.  AGP 7.0(Android Gradle Plug-in) 이후에는 Gradle JDK버전을 11 이상으로 설정해야 하니 유의하자. 그래도 엑세스가 안되면, 방화벽 문제일 수 있으므로 방화벽을 해제 더보기…

글쓴이 Charlezz,

고전암호 구현해보기(시저 암호, 비즈네르 암호)

고전암호 고전암호(Classical cipher)는 과거에 사용되었으나 지금은 사용하지 않는 암호의 형태이다. 지금은 컴퓨터로 비트를 다루는 암호를 사용하지만 과거에는 사람이 암호화와 복호화를 해야했기 때문에 고전암호는 오늘날의 암호보다 훨씬 단순하다.  고전암호에서 가장 대표적인 스키테일 암호, 시저 암호, 비즈네르 암호에 대해서 알아보자. 스키테일 암호(Scytale cipher) 고대 그리스의 역사학자 플루타르크에 따르면 약 2,500년 전 그리스 더보기…

글쓴이 Charlezz,

[안드로이드로 배우는 OpenCV] 허프 변환 – 직선 검출 하기

허프 변환(Hough Transform) 허프 변환은 이미지에서 선과 원 같은 단순한 형태를 찾는 방식이다. 이진화 된 이미지에서 직선을 찾을 때 상대적으로 빠른 검출을 보여준다. 허프 선 변환(Hough line transform) 허프 선 변환의 기본 개념은 2차원 이미지 상의 어떠한 점은 선의 일부라는 사실을 기초로 한다. 선분의 기울기를 a라고 가정하고 y절편을 b라고 할 더보기…

글쓴이 Charlezz,

Gradle 스크립트 언어를 Groovy DSL에서 Kotlin DSL로 변경 하기

Migrating Groovy DSL to Kotlin DSL Kotlin DSL 이란? DSL이란 Domain Specific Language의 약어로 특정 분야에 최적화된 프로그래밍 언어를 뜻한다. 상용구 코드를 최소화 하기 위해 명령형 코드 대신 선언적 코드 형식을 따른다. Kotlin DSL은 코틀린의 언어적인 특징으로 가독성이 좋고 간략한 코드를 사용하여 Gradle 스크립팅을 하는 것을 목적으로 하는 DSL이다. 빌드 더보기…

글쓴이 Charlezz,

Android 12 빠르게 살펴보기!

Android12 미리보기 안드로이드 12에 대한 최신 정보는 공식 문서에서 확인할 수 있다. 안드로이드는 전통적으로 메이저 버전에 알파벳 순으로 디저트 이름을 붙여왔다. Pie 이후로는 Q로 시작하는 이름대신 Android10이라 명명했다. 하지만 내부적으로는 여전히 디저트 이름을 붙이고 있다 Queen Cake(or Quince Tart, Android10) Red Velvet Cake (Android11) Snow Cone (Android12) 출시 일정 2021년 더보기…

mds_store의 CPU 점유율이 갑자기 치솟을 때

  아무것도 안했는데 갑자기 맥이 버벅이기 시작했다. ActivityMonitor를 띄워 CPU 점유율이 높은 프로세스 순으로 나열하니 mds_store가 점유율을 엄청나게 가져가고 있었다.  mds_store가 무엇인지 검색해보니 Spotlight관련 프로세스라고 한다. 아마 백그라운드에서 인덱싱을 하면서 점유율을 엄청 가져가는 것 같은데 잠자기 모드 일때 안하고 왜 지금하는지 모르겠다. 나는 알프레드를 사용하기 때문에 Spotlight는 사용하지 않는다. 그래서 더보기…

글쓴이 Charlezz,

Jetpack Compose의 등장배경을 알아보자.

Jetpack Compose는 네이티브 Android UI를 빌드하기 위한 최신 선언형 UI 툴킷이다. Jetpack Compose는 적은 수의 코드, 강력한 도구 및 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화한다. Declarative UI Programming? 선언형 UI프로그래밍(Declarative UI Programming)은 기존의 명령형 UI 프로그래밍과 달리 View의 상태(State)만 선언하고 자세한 구현은 프레임워크에게 맡기는 방법을 의미한다. 왜 Compose가 더보기…

글쓴이 Charlezz,

LeakCanary로 메모리 누수 잡기

LeakCanary란? LeakCanary는 안드로이드를 위한 메모리 누수 감지 라이브러리다. 안드로이드 프레임워크 내부 이해를 통해 메모리 누수의 원인을 줄이는 기능을 제공하여, 개발자가 OOM(Out Of Memory)에러로 인한 크래시를 줄일 수 있도록 도와준다. 메모리 누수란? 애플리케이션이 더 이상 필요하지 않은 객체에 대한 참조를 유지함으로써 결과적으로 해당 객체에 할당 된 메모리를 회수 할 수 없어 더보기…

글쓴이 Charlezz,

MediaStore에 이미지, 비디오 질의 시간 비교 테스트

배경 다양한 질의를 통해, 가장 빠른 응답시간을 보이는 방법을 알아본다. 테스트 환경 Galaxy S9, 이미지 80507개, 동영상 29개 쿼리 타입 1번타입 – 파일 콘텐츠 Uri  + 이미지 타입만 거르기 contentResolver.query( MediaStore.Files.getContentUri(“external”), null, MediaStore.Files.FileColumns.MEDIA_TYPE + ” = ?”, arrayOf(“${MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE}”), null) 2번타입 – 이미지 콘텐츠 Uri  contentResolver.query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null 더보기…

글쓴이 Charlezz,