기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요. 요즘 camera쪽을 보고 있습니다.


궁금 한 것이


camera.java에서  생성자를 호출 할 때 native_setup 함수를 호출합니다.


native_setup(new WeakReference<Camera>(this), cameraId);


여기서 첫번째 인자는 native_setup을 호출한 인스턴스를 넘겨 줍니다.


JNI는 아래와 같습니다.

static void android_hardware_Camera_native_setup

(JNIEnv *env, jobject thiz,  jobject weak_this, jint cameraId)

env는 JNI관련 함수를 사용할 수 있는 포인터,

thiz는 호출 한 쪽의 객체

weak_this는 첫번째인자입니다.


여기서 궁금한 것이 thiz랑 weak_this랑은 같은 것 아닌가요?


thiz는  jclass clazz = env->GetObjectClass(thiz); 로 객체를 받고 다음에서 인자로 넘어 갑니다.

sp<JNICameraContext> context = new JNICameraContext(env, weak_this, clazz, camera);


JNICameraContext에서도 weak_this와 clazz(thiz)를 구분해서 씁니다.


근데 보면은 env->CallStaticVoidMethod <=== 요놈을 호출 할 때 인자로 둘다 넘어 갑니다.


weakreference로 넘어가도 같은 클래스의 객체인데 왜 두개를 다 넘겨주는지도 잘 모르겠습니다. ㅠ.ㅠ


그리고 마지막으로 android_hardware_Camera_native_setup의 마지막 줄에


// save context in opaque field

    env->SetIntField(thiz, fields.context, (int)context.get());


이렇게 되어 있는데, fields.context는 fields의 구조체인데 이건 android_hardware_Camera.cpp에 static로

정의가 되어 있습니다.


근데     env->SetIntField(thiz, fields.context, (int)context.get()); <== 요기서 thiz object에 fields.context에

 (int)context.get()값을 저장하는 걸로 알고 있습니다. 여기서 thiz은 camera.java의 object인데 여긴 이러 field가

없습니다.  아~ 머리가 뽀게질려고 합니다 .ㅠㅠ

List of Articles
번호 제목 글쓴이 날짜sort 조회 수
508 삼성칩 GPIO 관련 문의.. [1] 리오살다 2013-06-21 1627
507 MMC 관련문의 [2] 동이다 2013-06-22 1611
506 혹시 비글본블랙(BeagleBoneBlack)보드로 [1] 은민아빠 2013-06-24 2531
» camera 관련 질문입니다. wizard14 2013-06-25 1250
504 고도리님 현재까지는 OpenCL은 동작은 ARM만 시킬 수 있습니다. ... [1] 김영준 2013-06-25 1663
503 안드로이드 캠에서 MPEG2TS로 레코딩 해보신분 없나요 대박73 2013-06-25 1404
502 reltek rtl8191su 컴파일 중에 에러 입니다.. [7] rubio 2013-06-26 1780
501 Video와 network관련 문의드립니다. [4] 김경식 2013-06-27 1658
500 이솝 보드 펌웨어 만들기..? [1] 어둥등 2013-07-09 1555
499 이더넷 핀에서 값을 읽어 오고 싶은데요... [2] rubio 2013-07-09 13050
498 android 부분 빌딩관련 문의드리옵니다. [2] 김진희 2013-07-10 2016
497 android 포팅 문의 관련.. [2] 리오살다 2013-07-10 1565
496 [질문]RTC를 이용하여 hardware reset 구현 [2] 블루스카이 2013-07-10 2071
495 surfaceflinger 코드 질문 [2] wizard14 2013-07-11 1606
494 wpa_supplicant에 있어서 문의드립니다. [2] 열심히 2013-07-12 2795
493 NAND User 영역을 yaffs2로 올려서 사용하기가 잘 안되네요. [2] 로또리아 2013-07-17 2281
492 USB host 드라이버를 모듈로 사용시, 디바이스 인식 안되는 문제 [2] eou4 2013-07-19 1881
491 kernel에서 Bluetooth stack에 관해서 문의드립니다. [1] 어떤이의꿈 2013-07-19 1395
490 상용보드는 구글맵이 사용이 안되나요? ㅠㅠ [2] 손이시려 2013-07-23 2446
489 안녕하세요. exynos 5410 계획이 혹 있으신가요? [1] 초리 2013-07-23 1426

사용자 로그인