Android

Android/미분류

안드로이드 객체 추출 이주일차

그렇다. 나는 아주 잘 찾고 있다. 객체를 말이다.....(물론 윗 사진 처럼 개선 알고리즘이 더 좋지 못한 효과를 낼때도 있었다)첫 객체를 가방이라도 단정 짓지는 않았지만 가방 사진이 많은 이유는 주변에 많이 보여서랄까?(하하 쇼피..ㅇ..모..) 요런 것도 찾아 내고 ? 사물이 겹쳐 있어도 어설프게 나마 찾아낸다. 알고리즘을 개선해 나갔지만 어느정도 한계에 부딪히기 시작한다. 그냥 grayscale에서 이런 것을 검출하는 것이 너무 어려웠기 떄문이다. 그래서 과감히 기존의 알고리즘을 버렸다.(위 사진은 기존의 알고리즘을 버리고 검출된 객체이다) 물체의 특징을 생각하며 어떤식으로 검출이 가능할까 고민해본다. 편지 봉투 검출 (역시나 완벽하지는 않다)하지만 수 많은 테스트를 해보며 물체를 보면서 이건 채..

Android/미분류

안드로이드 객체 추출 일주일차

그림으로 보는 안드로이드 객체 추출 객체추출을 위해 Android4Opencv sdk를 공부하였다. Open Cv가 대부분 파이썬, C++로 짜여져 있는 예가 대부분이라 하나하나 자바로 변환해가며 코딩하였다. (c++로 코딩할껄 ..) 구체적으로 어떤 방식을 통해 구현하였는지 또는 소스코드는 쓰기 어려울 것 같습니다.(미리 양해를..) 일주일 정도 공부했을때 나온 성과이다. 생각외로 잘 나오지 않았는가-? GrabCut이라는 알고리즘을 사용해서 구현했던 걸로 기억한다.하지만 GrabCut특성상 안드로이드에서 사용하기엔 너무나도 오랜 시간이 걸렸고, 무엇보다 전경과 후경을 구분하기 위한 선이 필요했다.(논문을 찾아보니 저런 구분을 위한 선을 자동으로 구하는 알고리즘이 있어 써봤지만 그래도 오래걸리거나, 부..

Android

커스텀 다이얼 로그를 만들어 보자(왕왕초보자)

보통의 경우는 안드로이드에서 주어지는 AlertDialog나 xml로 필요한 뷰를 만들고 인플레이트한뒤 뷰에서 해당 innerView 들을 찾아서 사용하곤 했었는데 어느순간 불편한 부분도 있었고, keyboard 같은 것들이 마음대로 움직이지 않아서 하드코딩해야 하는 부분이 많았다. 불편해서 어느 순간부터 커스텀 다이얼 로그를 만들어 사용하고 있는데 꽤나 편리한거 같아다른 분들과 공유하고싶다! (물론 잘 만들어진 머터리얼 다이얼로그 사용하는게 제일 좋긴하다...하지만 직접 만들어 사용한다는 것에 의의를 두자....) 매우 허접함으로 꼭! 안드로이드를 처음 접하는 분들이 보셨으면 좋겠다. 여기서 만들어 볼려하는 커스텀 다이얼 로그는 아주 간단하게 텍스트를 입력 받아 추가 시켜주는 기능이다.[디자인은 보지말..

Android/미분류

이벤트 버스 대신 혼날 각오하고 RxJava를 사용하여 실제 프로젝트에 녹여보기

http://nanamare.tistory.com/8 에서 이벤트 버스 대신 RxJava를 사용하여 구현 해봤다. 그래서 실제 프로젝트에 적용을 해보았다 (어느정도 검증은 되었지만 걸리면 죽을지도 모름 XD) 봉사 프래그먼트에서 원하는 세부사항을 선택하여 적용하기 버튼을 누를 때 RxEventService 매니저가 작동하여 화면을 갱신하는 모습이다. 이부분 뿐만 아니라 많은 곳에서 유기적으로 변화해야할 데이터면서 데이터간의 통신이 애매한 경우(분명 방법은 있겠지만 초보자인 나에게는 어렵다)에는 RxEventService 매니저를 옵저버처럼 달아뒀다. 몇 번 사용하다보니 중독되서 여기저기 달아두고 instanceof로 타입만 확인만 하고 사용하는 편인데 좋지 못한 개발습관만 늘어가는 느낌이 들지만 정말(?..

Android/미분류

EventBus , RxJava로 대체 해보자!

필자는 Fragment 끼리간의 통신에 있어 Flagment -> Acitivity - > Flagment가 너무 불편해서 이벤트버스를 이용하여 해결한 적이 있다. Rx를 사용한다면 이벤트 버스를 사용하지 않아도 된다. RxJava Class Observable : 이벤트를 발생시키는 주체Subscriber : 이벤트를 전달 받는 객체PublishSubject : 구독한 시점으로부터 발생되는 이벤트를 계속 전달 받는다.

Android

인텐트 및 인텐트 필터에 대해 알아보자.

빙글 면접이 다음주 월요일로 다가왔다. 그래서 안하던 공부를 좀 해보려구 한다! 누군가 Intent에 대해 설명해주세요. 라고 물어봐서 안드로이드 4가지 컨포넌트간에 작업 수행을 위해 정보를 전달하는 역할을 하고있습니다. 암시적, 명시적 인텐트로 구분되며, 일반적으로 앱 내에서 컴포넌트 간의 호출은 명시적 인텐트를 많이 사용합니다. 그 이유는 클래스명을 알수 있어 지정된 클래스명의 액티비티에서만 실행되기 때문입니다. 라고 대답한적이 있다. 다소 여러모로 아쉬운 대답이다. 인텐트는 액티비티 시작, 서비스 시작, 브로드캐스트 전달등 많은 상황에서 사용된다. 안드로이드에서 A액티비티에서 B액티비티를 시작할때 아마 한번쯤은 왜 인텐트를 사용하는지 고민을 해봤을 것이다 Intent는 일종의 메시지 객체이다. 여러..

Android

Apk는 어떻게 만들어지는 걸까?

APK파일은 프로젝트 -> app -> build ->outputs->apk 에서 확인 할수있다. 그럼 이런 APK파일은 어떻게 만들어지는 것일까-? 앞에 그림을 보면 상당히 복잡한 구조로 APK 파일이 만들어지는 것을 확인할 수 있다. 천천히 단계별로 살펴보자. 맨처음은 컴파일 단계로 앱 내의 리소스 관련 파일과 AIDL(android interface description language의 약어로 안드로이드에서 프로세스 사이에 통신이 필요한 경우 필요한 인터페이스를 정의하는 언어 일반적으로 서로 다른 앱에서 통신이 필요한경우 자주 사용 한다.) 파일들이 .java로 각각 aapt 툴과 aidl 툴에 의해서 변환되어 Application Source Code에 해당되는 .java 파일들과 함께 자바 컴..

Android

초보 개발자의 아주 간단한 커스텀 뷰 개발기

몇 일전 스타트업 빙글의 테스트를 보았다. 어찌어찌 요구사항은 모두 만족하였지만, 맘 한구석이 무거웠다. 역시나 역시나 열정만큼 따라오지 않는 실력이 아쉬웠다. 그래서 안드로이드 개발력(?)에 대해 피드백도 받고싶고, 한걸음 성숙한 개발자가 되고 싶어 기술 블로그를 시작 하게 되었다. 오늘은 첫 포스팅 다운 포스팅을 하려고 한다.(세상에서 제일 못하는 것들 중 하나가 글쓰기다... 아아 물론 개발도 포함된다^ㅠ^ 쓰다보면 늘지 않을까 싶다) 필자는 주말마다 한남동에 가서 안드로이드 개발을 배우고 있다.(사실 프로젝트지만 배움의 느낌이 더크다.)개발자는 모두 5명으로 3명은 안드로이드, 2명은 서버이다.안드로이드 진영은 네이버 웹툰 개발자, 카카오 개발자, 그리고 백수인 나(눈물이 흐른다.) 서버 진영은 ..

Android/미분류

RxJava를 이용한 Reactive Programming

What is RxJava?생명주기와 동시성 프로그래밍기존의 AsyncTask는 많은 성능저하를 가지고 온다. 또한 생명주기에 따라 인스턴스를 해제해주지 않으면 memory leak에 대한 주의가 필요합니다. 이러한 문제점을 해결하고자한 프로그래밍 패러다임이 Reactive 프로그래밍입니다. 예로 Reactive 프로그래밍을 간단하게 말하면 각 항목을 관찰(Observe)하다가 항목에 변화가 있으면 등록된 Observer에 따라 갱신해주는 구성입니다.Reactive 프로그래밍의 대표적인 예는 엑셀차트입니다.Observable -> 관측 가능한 값의 흐름을 나타내는 객체 (생산자) 버튼 클릭 subscribe 함수를 통해 구독이 가능하며 , 구독자에게 값의 흐름을 알려준다.Observer - > 값의 흐름..

Nanamare
'Android' 카테고리의 글 목록 (11 Page)