서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

안녕하세요!

알고싶은 부분이 있어 몇가지 질문드립니다.

 

1. 전체 소스

책에 안드로이드 전체 소스 다운 받아서 빌드 하는 부분이 나옵니다.

그런데, 유분투 처럼 리녹스계열에서만 가능한지요?

Cygwin으로는 안되는지요 또는 wnidows에서는 다운받을 수 없는지요?

 

2. p90 에서 표 설명 중에서

LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)

설명이 이해가 안됩니다.

"BUILD_STATIC_LIBRARY 지정한다고 해서 *.a 파일이 생성되는 것은 아니다"

 

3. p90을 일으면서 생각이 난건데요

static library 와 dynamic library 와 차이점이 궁금합니다.

*.so 와 *.a 의 각각 사용 방법은 어떻게 되는지요?

 

4. OpenSSL NDK 관련 자료를 찾다가 *.a 로 만드는 것을 보았습니다.

위치 : http://choizak.tistory.com/63

위의 방법대로 빌드를 해서 *.a 파일을 만들었습니다. 이 경우 바로 사용이 가능한지요?

아니면 다시 .so로 만들어서 사용 해야 하는지요?

 

5. p112 외부라이브러리 활용하기

제가 기존에 안드로이드 프로젝트를 만들고 있었던 경우에

OpenSSL 기능이 필요해서 NDK로 빌드해서 그대로 기존 안드로이드 프로젝트로 적용을 한다면

큰 수정없 가능한건지요

 

6. p120 JNI_OnLoad

설명 중에 JNI_OnLoad 없어서 나오는 메시지가 에러가 아니라고 하신것 같은데요

그럼 구지 만들지 안아도 되는건지요?

그리고 JNI_OnLoad  함수 내용에 대해 특별한 설명이 없는데요. 규칙이나

지켜야 할 순서/문법이 있는지요?  

 

7. 책 소스부탁드립니다.

 

너무 많은 질문을 드린것 같습니다.

계속 읽어가면서 또 질문 드리겠습니다.

감사합니다.


전호철

2012.09.18 23:24:09
*.200.239.210

안녕하세요~?

벌써 책을 받아보셨나보네요? 저도 아직 책이 없는데요. 하하하 ^_^

일단 감사드리구요. 답변드리겠습니다.


1. 윈도우에서 안드로이드 풀 소스 컴파일은 못하는것으로 알고 있구요. 우분투나 맥에서 하시는것을 추천드립니다.

소스는 윈도우에서도 다운받을 수 있는데요. window 용 git 가 있습니다. http://code.google.com/p/msysgit/ 에 가시면 msysgit 이라는게 있는데요 이것을 사용하시면 됩니다. 혹시나 사용방법을 잘 모르시면 답변 달아주시면 다시 알려드리겠습니다.


2. ndk 는 *.so를 만들어내는 것이 목적이기 때문에 ndk-build를 사용해서 컴파일 할 때 #include $(BUILD_STATIC_LIBRARY) 라고 하면 static library 인 *.a 파일이 생기지 않는 것을 확인 할 수 있습니다.(hello-jni 샘플을 변경해서 테스트 해보시면 *.a 파일이 생기지 않는것을 보실 수 있습니다.) 하지만 two-lib 샘플 같은 경우는 최종 목적 파일인 *.so를 만들기 위한 *.a 를 obj/local/armeabi/ 에 생성하는 것을 볼 수 있습니다.

이런 뜻으로 책에 써놓은 것인데 제가 글로 잘 못풀어 놓은듯 합니다. ㅠㅠ


3. static library는 말 그대로 최종 파일에 포함되어 한몸이 되는 파일이고 dynamic library는 윈도우의 *.dll 파일 처럼 동적으로 런타임시에 로딩하여 사용할 수 있는 것입니다.


4. java에서 System.loadlibrary 를 하게되면 공유라이브러리인 so 를 로딩하게 되어있습니다. 따라서 so로 만들어 주셔야 합니다.

 

5. OpenSSL 을 안드로이드용으로 컴파일 하셨다면 큰 문제 없이 사용 가능하실 것입니다.

 

6. JNI_OnLoad 는 라이브러리가 로딩될 때 가장 처음 불려지는 함수이고 이 안에서는 JAVA와 연결의 초기화 부분과 함수 매칭을 넣게 되어 있습니다. 없어도 별다른 문제가 있지는 않습니다. 필요하면 만들어도 되고 안만들어도 됩니다.

 

7. 소스는 정리되는대로 올리도록 하겠습니다.

더페이퍼

2012.09.19 17:17:12
*.171.36.254

답변 감사 드립니다. 추가 질문드립니다.

 

질문 5번을 다시 질문드립니다. 인터넷상에서 OpenSSL을 NDK로 적용 하는 방법을 찾아서 빌드 한건데

빌드 후에 *.a 파일이 생성 됩니다.  그럼 결국 만들어진 *.a를 다시 *.so로 변경해서 사용해야 하는건지요?

 

그리고 ubuntu 셋팅 중에 확인한건데요

p35

sudo apt-get install sun-java6-jdk => 파일을 못 찾아서 설치 실패입니다.

p36

64비트 우분투에 안드로이드 패키지 설치 시에도 lib32readline5-dev 부분에서 실패입니다.

 

좋은 하루 되십시오!

 

고도리

2012.09.20 00:57:25
*.200.239.210

1. 예...맞습니다.


2. jdk는 여기를 보시면 됩니다. 바뀌었습니다. 라이센스 정책이

http://www.oracle.com/technetwork/java/javase/downloads/index.html


3. ubuntu 버전에 따라 약간 틀릴텐데...

libreadline6-dev 를 설치해 보시기 바랍니다. 안되면 다시 답글 써 주시면 제가 다시 확인하겠습니다.

제가 주로 쓰는 개발 pc에 설치된 버전이 현재 ubuntu 10.10이라서요....

더페이퍼

2012.09.20 19:05:59
*.211.40.199

답변 감사드립니다 


책에는 *.a 를 가지고 *.so로 만드는 방법이 없습니다 

책에는 *.a를 만들거나 이용방법이 없습니다 

보충 설명부탁드립니다.


그리고 책을 거의 다 읽어가는데요 

실제로 하나의 주제를 잡아서 C++코드부터 작성해서 java 코드까지 그리고 amk 만들어서 빌드 까지 

전과정을 하나의 예제로 다루웠으면 하는 아쉬움이 좀 있습니다 


모든 예제가 안드로이드 소스에서 설명을 하니 전체적인 개념이 부족 한 상태에서는 좀 어렵게 느껴지기도 합니다 

제가 부족해서 어렵게 느껴질수도 있습니다 한번 다시 읽어 볼 생각입니다 


감사합니다.


전호철

2012.09.20 21:14:23
*.200.239.210

two-libs 예제를 살펴보시기 바랍니다.

문의하신 내용과 동일한 경우 입니다.

잘 안되시면 예제로 만들어서 올려드리겠습니다.


조언해주신 내용은 감사히 참고하겠습니다.

더페이퍼

2012.09.21 22:25:57
*.171.36.254

우분투 12.4.1 java 설치
$sudo add-apt-repository ppa:upubuntu-com/java

$sudo apt-get update

$sudo apt-get install oracle-java7-installer

 

참고 하십시오.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

JNI로 휴대폰 디바이스 번호를 구하려고 합니다 file [3]

  • fox8306
  • 2012-09-19
  • 조회 수 6884

MediaServer 에 관련해서 질문드려요 [10]

안드로이드 4.2 프레임버퍼 접근 질문드려요~! [6]

  • 범내
  • 2013-07-30
  • 조회 수 5947

261페이지 맨 아랫줄에 대해 문의드립니다. [2]

  • binch
  • 2012-07-18
  • 조회 수 5747

hoffplay 컴파일 질문 입니다. [2]

[압축된 07-TestSkia 예제파일 올려주세요] [1]

네이티브 스레드로 자바 콜백 만들기 질문드립니다. [2]

[예제12.SDL] Android 에서 SDL 사용하는 예제 실행 안됨 문의... [7]

  • 둘리
  • 2013-03-12
  • 조회 수 5609

NDK 책내용중에 3.11 외부 라이브러리 활용하기 에서 질문 드립니... file [5]

  • 엽스
  • 2013-08-30
  • 조회 수 5590

드디어 안드로이드 소스까지 컴파일했습니다. [3]

  • 죽유
  • 2012-12-22
  • 조회 수 5548

책을 보다 몇가지 질문이 생겼습니다. [6]

책에서 사용하고 있는 ffmpeg 소스. file [1]

init: sys_prop: unable to stop service ctl [DVBService] ... [2]

OpenGL 책p168 예제 질문드립니다.

안드로이드의 모든 것NDK (고현철,전호철 지음) 책 실습 중 문제에... [1]

NEON관련 좋은 참고 문서가 있을까요? [7]

  • 죽유
  • 2013-01-10
  • 조회 수 5392

카메라로부터 프래임 데이터 추출하는 예제 입니다. file [1]

  • 죽유
  • 2013-01-24
  • 조회 수 5383

apk uploading timeout에 대해 문의 드립니다. [2]

  • 죽유
  • 2013-01-10
  • 조회 수 5374

NDK 컴파일이 안됩니다. file [8]

여러 분들이 말씀하신 것처럼 책(NDK)의 예제코드를 올려주실 수 없... [2]

  • 트론
  • 2013-08-24
  • 조회 수 5255

사용자 로그인