우선 안드로이드 APK 파일은 JAR 와 호환되는 형태로 되어있다. 즉, 코드를 빌드를 하여 나오는 APK 파일은 zip 포맷과 유사한 jar 와도 비슷하다. 특히 서명에 대한 방식은 JAR 와 APK 와 매우 비슷하다. 실제로 서명을 사용해 빌드된 APK 파일 확장명을 zip 으로 변경하고 압축을 풀어보면 META-INF 디렉토리 내부에 이와 관련한 파일이 생성된 것을 볼 수 있다. 이 파일은 MANIFEST.MF, CERT.SF, CERT.RSA 파일이다. MANIFEST.MF 파일은 텍스트로 되어있으며 META-INF 디렉토리 내부의 파일을 제외한 APK 패키지 내부 모든 파일(Entry)에 대한 리스트를 보여준다. 각 리스트의 항목에는 파일 경로와 각 파일의 SHA1 해쉬 값(파일을 읽어서 만든다..
FileObserver 안드로이드에서 제공하는 파일 모니터링을 위한 API 인 FileObserver 에 대하여 알아보겠다. FileObserver 는 안드로이드 내부에 접근할 수 있는 각각의 파일과 디렉토리의 접근이나 변경에 대한 이벤트를 비동기적으로 받아올 수 있다. 이 클래스는 리눅스 커널에서 제공하는 파일 감시 모듈인 inotify (클릭시 위키로 이동) 의 네이티브 API 들을 JNI 를 통해서 호출한다. FileObserver 를 사용하면 내부적으로 쓰레드 하나가 (static 으로)생성된다. 우선 기본 사용법에 대하여 알아보자. (참고 페이지 - 안드로이드 레퍼런스 : http://developer.android.com/reference/android/os/FileObserver.html) ..
우선 AndroidManifest.xml 에서 액티비티를 설정할 때, 속성값으로 액티비티 활성화/비활성화 값을 줄 수 있다. 만약 액티비티 비활성화를 한다면, Context 내의 startActivity 메소드를 이용하여 비활성화 된 액티비티를 호출시 앱은 ActivityNotFoundException 을 발생시키고 크래쉬가 발생하게 된다. 또 런처에서 실행시키기 위하여 내부의 설정 앨리먼트 로 과 옵션을 지정해줬다고 해도 런처내에 액티비티의 아이콘이 표시되지 않는다. 그리고, 이 것을 Manifest 파일에서만이 아닌 코드상에서도 PackageManager 의 setComponentEnabledSetting 으로 제어할 수 있다. 사용법은 무지 간단한데, 만약 Activity 내부에서 호출한다면 다음과..
우선 가장 간단한 방법으로는 ActivityManager 를 사용하는 방법이다. 그러나 이 것으로 현재 메모리상에 생성된 Activity 의 객체들을 가져올수도 없고 매니페스트에 퍼미션도 줘야 하는데 영 찜찜하다. 다른 개발자들은 동적으로 ActivityStack 에 있는 액티비티의 인스턴스를 어떻게 가져오나 궁금하여 스택 오버플로우를 찾아봤는데, 많은 개발자들이 Application 클래스를 상속받아 이 곳에 Activity를 관리하는 별도의 리스트를 만들어 사용하고 있었다. 하지만 프로젝트마다 이렇게 구현하면 여간 귀찮은 것이 아니라서, 그냥 각 Task 내의 Activity 의 래퍼런스들을 담고있는 리스트를 갖고 있는 싱글톤 객체를 이용하여 ActivityStack 을 구현해 보았다. 우선 코드는 ..
(android.text.Layout 에 대한 참고 페이지 : http://sudarnimalan.blogspot.kr/2012/06/android-understating-text-drawing.html )우선 항상 아래롤 스크롤되는 TextView 를 만들기 위해 다음과 같은 방법으로 스크롤을 가능하게 만들어줘야 한다. ::스크롤 가능한 TextView 만들기mTextView.setMovementMethod(new ScrollingMovementMethod()); 두 번째로 다음과 같은 메소드를 사용하여 항상 아래로 스크롤되는 텍스트 뷰를 적용할 수 있다. :: 항상 아래로 스크롤되는 TextView 메소드. (TextView 를 상속받는 EditText 에도 적용 가능하다.)private void s..
우선 안드로이드 개발 문서를 살펴보자.http://developer.android.com/guide/topics/connectivity/bluetooth.html친철하게도 한글로 번역해놓은 분도 계시다. (감사합니다 b >.< d) http://hardroid.net/profiles/blogs/bluetooth 요즘은 안드로이드 관련 이슈나 API 문서를 한글로 번역해 놓는 분들이 많아서 참 고맙다. 친분이 있다면 치맥이라도 대접해 드리고 싶은 심정이다. 그동안 안드로이드 개발해오면서 사운드 관련 API와 함께 블루투스 관련 API 는 깔끔한 편에 속하는 것 같다. (개인적인 느낌으로는...) UI 관련 API는 멘탈이 강하지 않으면 사용하기 힘들다. 단, 요즘은 3.x 이하 버전을 버리는 추세라서 많이..
무슨 이야기냐 하면은... 우선 아래 두 개의 스샷을 보자.왼쪽은 넥서스S , 오른쪽은 갤럭시 S2 다. (모두 4.1.1 버전이다. ) 이 두 녀석처럼 하드웨어 버튼을 갖고 있을 경우 액션바(Actionbar) 상의 오른쪽에 오버플로우(Overflow) 메뉴 버튼을 띄워주지 않고, 하드웨어 버튼을 누를 경우 우측 사진처럼 아래에 메뉴창을 띄워준다. 전형적인 메뉴 버튼 달린 기기 스타일이다. (요즘 기기들은 하드웨어 메뉴 버튼이 사라지고 액션바 오버플로우 버튼이 그 자리를 대신한다.) 참, 중요한 사실은 그동안 3.x 이하 버전에서도 액션바를 제대로 지원하기 위하여 Support Library 를 사용 할때는 문제가 없었다. 하지만 최소 버전을 4.0 이상으로 설정하면서 SDK 내부의 기본 API 를 사..
Arduino 와 Android 디바이스와의 블루투스 통신을 하기 위하여 다른 모듈 대비 저렴한 HC-06 을 사용하였다. HC-06 블루투스 모듈은 블루투스 2.0 을 사용하고 슬레이브 모드(마스터 모드와 슬레이브 모드가 있다. 슬레이브 모드는 기기를 한 대 밖에 연결하지 못 한다. 관련 설명 페이지)만을 사용하며 가격이 다른 모듈에 비해 비교적 저렴한 것이 특징이다. 또 관련 자료도 많이 접할 수 있다. 옥션 같은 곳에서 12,000 원대에 구할 수 있지만 이베이에서는 국내 판매 가격보다 훨씬 저렴한 가격으로 구할 수 있다. 그냥 HC-06 알맹이만 있는 녀석은 4$~5$ 정도 한다. 다만, 배송비의 압박이 만만치 않다. 나는 5v 로 사용할 수 있는 HC-06 시리얼 모듈을 구입하였다. 모듈을 구입..
- Total
- Today
- Yesterday
- 칩두이노
- Cheapduino
- 안드로이드 개발
- 부트로더
- json
- 블루투스
- Java
- 개발
- ATtiny85
- NeoPixel
- 침블락
- ndk
- 이더넷
- HC-06
- 아두이노
- noidemcu
- activity
- bluetooth
- arduino
- 알리익스프레스
- ESP8266
- 병렬 프로그래밍
- Iot
- 스마트 무드등
- Android
- 가습기
- oled
- 안드로이드
- ENC28J60
- WS2812B
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |