// SDK 22 기준.view.setDrawingCacheEnabled(true);// 임의로 measure 와 layout 을 호출한다.//view.measure(View.MeasureSpec.makeMeasureSpec(parent.getWidth(), View.MeasureSpec.EXACTLY),// View.MeasureSpec.makeMeasureSpec(parent.getHeight(), View.Measur..
Application 클래스 내부 메소드인 registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks) 를 이용해야 한다. 이 메소드의 인자값으로 ActivityLifecycleCallbacks 를 상속받아 구현한 클래스의 인스턴스를 넣어준다. 또는 다른 Activity 나 Service 내부에서getApplication().&..
앱의 위변조를 방지하기 위하여 서명 값을 가져와서 서버에 미리 등록된 값과 비교하는 과정이 필요하다.하지만, 안드로이드 Java 코드상으로 제공되는 API 를 활용하는 것은 안전하지 못하다.(안드로이드 자바 코드상에서 서명 값 가져오기 : http://www.dev.re.kr/70)그렇기 때문에 JNI 를 활용해야 한다. context 를 인자값으로 받아서 jni 에서 제공되는 리플렉션을 사용하여 SHA1 으로 변환된 서명..
우선 안드로이드 APK 파일은 JAR 와 호환되는 형태로 되어있다. 즉, 코드를 빌드를 하여 나오는 APK 파일은 zip 포맷과 유사한 jar 와도 비슷하다. 특히 서명에 대한 방식은 JAR 와 APK 와 매우 비슷하다. 실제로 서명을 사용해 빌드된 APK 파일 확장명을 zip 으로 변경하고 압축을 풀어보면 META-INF 디렉토리 내부에 이와 관련한 파일이 생성된 것을 볼 수 있다.&nb..
(android.text.Layout 에 대한 참고 페이지 : http://sudarnimalan.blogspot.kr/2012/06/android-understating-text-drawing.html )우선 항상 아래롤 스크롤되는 TextView 를 만들기 위해 다음과 같은 방법으로 스크롤을 가능하게 만들어줘야 한다.::스크롤 가능한 TextView 만들기mTextView.setMovementMethod(new ScrollingMovem..
무슨 이야기냐 하면은...우선 아래 두 개의 스샷을 보자.왼쪽은 넥서스S , 오른쪽은 갤럭시 S2 다. (모두 4.1.1 버전이다. ) 이 두 녀석처럼 하드웨어 버튼을 갖고 있을 경우 액션바(Actionbar) 상의 오른쪽에 오버플로우(Overflow) 메뉴 버튼을 띄워주지 않고, 하드웨어 버튼을 누를 경우 우측 사진처럼 아래에 메뉴창을 띄워준다. 전형적인 메뉴 버튼 달린 기기 스타일이다. (요즘 기기들..
구글 플레이 서비스가 설치되어 있지 않은 안드로이드 디바이스에서 구글 API (구글 플러스, GCM, 구글 맵, 구글 드라이브등) 를 사용하려고 하면 아래와 비슷한 Exception 을 발생시키며 죽는다.android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://play.google.com..
(2015년 3월 추가. 지금은 안드로이드 SDK 에서 x86 에뮬레이터를 제공하기 때문에 Genymotion 이 필요 없습니다. ) Genymotion 을 이용하면 Android SDK 에 포함된 느려터진 기본 에뮬레이터 대신 VirtualBox 위에서 돌아가는 x86 기반의 빠른 안드로이드를 이용하여 편하게 개발할 수 있다. 또, GPS와 같은 센서에서 받아오는 값등을 임의로 입력할 수 있고..
다음과같은코드를이용하여코드상에서폰과태블릿을구분할수있다.(코드상에서폰인지태블릿인지를가져올수있다.)int screenSizeType = (/*context.*/getResources().getConfiguration().screenLayout &Configuration.SCREENLAYOUT_SIZE_MASK);if(screenSizeType == Configuration.SCREENLAYOUT_SIZE_XLARGE) {//&n..
- Total
- 261,440
- Today
- 189
- Yesterday
- 245
- oled
- json
- 아두이노
- 안드로이드
- 개발
- Cheapduino
- 침블락
- Iot
- Android
- 가습기
- 안드로이드 개발
- NeoPixel
- 알리익스프레스
- arduino
- 원정보드
- Symbulak
- ndk
- HC-06
- 블루투스
- 부트로더
- bluetooth
- 이더넷
- WS2812B
- ENC28J60
- 칩두이노
- 병렬 프로그래밍
- activity
- Java
- ATtiny85
- 쉼블락