우선 안드로이드 APK 파일은 JAR 와 호환되는 형태로 되어있다. 즉, 코드를 빌드를 하여 나오는 APK 파일은 zip 포맷과 유사한 jar 와도 비슷하다. 특히 서명에 대한 방식은 JAR 와 APK 와 매우 비슷하다. 실제로 서명을 사용해 빌드된 APK 파일 확장명을 zip 으로 변경하고 압축을 풀어보면 META-INF 디렉토리 내부에 이와 관련한 파일이 생성된 것을 볼 수 있다. 이 파일은 MANIFEST.MF, CERT.SF, CERT.RSA 파일이다. MANIFEST.MF 파일은 텍스트로 되어있으며 META-INF 디렉토리 내부의 파일을 제외한 APK 패키지 내부 모든 파일(Entry)에 대한 리스트를 보여준다. 각 리스트의 항목에는 파일 경로와 각 파일의 SHA1 해쉬 값(파일을 읽어서 만든다..
APK 파일의 압축을 풀면 classes.dex 파일과 그리고 String 과 drawable 과 같은 리소스 맵핑 정보를 담고 있는 resources.arsc 파일등과 AndroidManifest.xml 파일 외에 res 폴더 내에 여러 XML 파일등이 존재한다. 하지만 이 XML 파일은 우리가 흔히 아는 형식으로 되어있지 않다. 왜 APK 파일 내부에 있는 AndroidManifast.xml 을 비롯한 XML 파일들은 우리가 알고 있는 XML 형식이 아닌걸까? 아마도 공간을 정약하고 런타임 환경에서 빨리 리소스 정보를 읽어들일 수 있도록 바이너리 타입으로 만들었을 것이다. 안드로이드에서 사용하는 바이너리 타입의 XML 포맷에 대하여 아래 사이트에서 자세하게 설명하고 있다. https://justana..
지난 포스팅 : - 안드로이드 스튜디오에서 NDK 로 C++ 빌드하기 (Hello World 예제) 이번시간에는 NDK 를 이용하여 HTTP 통신하는 법을 알아보겠다. C/C++ 에서 HTTP 를 통신하기 위한 가장 흔한(?) 방법은 curl 을 사용하는 것이다. 그러기 위해서 curl 라이브러리를 android 에서 동작 하도록 컴파일 해야 하는데, 이는 삽질을 동반한 작업들을 해야만 한다. 그래서 이미 빌드된 정적 라이브러리를 사용하는 효율적이고 빠른 방법에 대하여 알아보겠다. 우선 android 용으로 각각의 CPU 별로 깔끔하게 빌드된 정적 라이브러리(.a) 파일을 구해야 한다. 빌드된 curl 을 구하기 위하여 github 와 구글을 한참 검색해 보다가 문득 cocos2d-x 에서 curl 을 ..
아래 내용은 mac 기준으로 작성 되었습니다. 1. 안드로이드 개발자 사이트에서 NDK 를 받아야 하지만, STL 과 Boost 를 사용하기 위해서 별도의 작업을 더 해야한다. 하지만, CrystaX 를 사용하면 쉽게 적용할 수 있다. 아래 사이트에서 최신 버전의 CrystaX 를 다운받고 압축을 푼다. 용량이 큰 것으로 받는다. 압축을 풀면 5GB 가 넘는다... https://www.crystax.net/en/download 2. 프로젝트를 생성한다. 3. 프로젝트의 app/src/main 폴더 안에 jni 폴더를 생성한다. 4. 아래 과정은 최초 한 번만 진행하면 된다. (아래 내용은 http://blog.burt.pe.kr/ 에서 참고하였습니다.) - javah 설정하기. (1) AndroidSt..
- Total
- Today
- Yesterday
- 병렬 프로그래밍
- ESP8266
- 블루투스
- WS2812B
- 안드로이드
- 아두이노
- bluetooth
- ENC28J60
- Cheapduino
- HC-06
- 칩두이노
- json
- 가습기
- activity
- 침블락
- arduino
- oled
- NeoPixel
- 알리익스프레스
- 개발
- ndk
- 부트로더
- Iot
- Android
- 안드로이드 개발
- 스마트 무드등
- Java
- noidemcu
- 이더넷
- ATtiny85
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |