포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

AudioSystem과 AudioSystem.java를 이용한 JNI 단에서의 연결

 

김재훈 (이솝 임베디드 포럼)

 

1. AudioSystem과 AudioSystem.java를 연결하는 JNI 단에 대해 기술되어 있는 코드는 다음에 위치해 있다.

   frameworks/base/core/jni/android_media_AudioSystem.cpp // 193라인
  

static JNINativeMethod gMethods[] = {
    {"setParameters",        "(Ljava/lang/String;)I", (void *)android_media_AudioSystem_setParameters},
    {"getParameters",        "(Ljava/lang/String;)Ljava/lang/String;", (void *)android_media_AudioSystem_getParameters},
    {"muteMicrophone",      "(Z)I",     (void *)android_media_AudioSystem_muteMicrophone},
    {"isMicrophoneMuted",   "()Z",      (void *)android_media_AudioSystem_isMicrophoneMuted},
    {"isMusicActive",       "()Z",      (void *)android_media_AudioSystem_isMusicActive},
    {"setDeviceConnectionState", "(IILjava/lang/String;)I", (void *)android_media_AudioSystem_setDeviceConnectionState},
    {"getDeviceConnectionState", "(ILjava/lang/String;)I",  (void *)android_media_AudioSystem_getDeviceConnectionState},
    {"setPhoneState",       "(I)I",     (void *)android_media_AudioSystem_setPhoneState},
    {"setRingerMode",       "(II)I",    (void *)android_media_AudioSystem_setRingerMode},
    {"setForceUse",         "(II)I",    (void *)android_media_AudioSystem_setForceUse},
    {"getForceUse",         "(I)I",     (void *)android_media_AudioSystem_getForceUse},
    {"initStreamVolume",    "(III)I",   (void *)android_media_AudioSystem_initStreamVolume},
    {"setStreamVolumeIndex","(II)I",    (void *)android_media_AudioSystem_setStreamVolumeIndex},
    {"getStreamVolumeIndex","(I)I",     (void *)android_media_AudioSystem_getStreamVolumeIndex}
};

2. 위는 JNINativeMethod gMethods[]의 데이터는 C언어단과 JAVA 단을 매핑 시켜주기 위한 테이블이며,

     다음의 형식을 띄고 있다.

    {"setParameters",        "(Ljava/lang/String;)I", (void *)android_media_AudioSystem_setParameters},
    [ C언어 함수 ]            ([자료형])리턴형        JAVA의 함수, "_"는 JAVA에서 "."으로 변환되어 사용되며,
    android_media_AudioSystem_setParameters는 android.media.AudioSystem.setParameters로 JAVA에서 사용된다.
   
3. 앞의 JNINativeMethod gMethods[] 다음과 같이 registerNativeMethods(); 함수를 통하여, JNI로 등록하게 된다.

 

const char* const kClassPathName = "android/media/AudioSystem";

int register_android_media_AudioSystem(JNIEnv *env)
{
    AudioSystem::setErrorCallback(android_media_AudioSystem_error_callback);
   
    return AndroidRuntime::registerNativeMethods(env,
                "android/media/AudioSystem", gMethods, NELEM(gMethods));

}

profile

인생은 연극이고 세상은 무대이다!

이솝 임베디드 포럼 운영 및 비즈니스와 관련된 것 이외에 E-Mail이나 메신저 및 휴대폰 등을 통한 개인적인 질문 및 답변은 받지 않습니다. 문의 사항은 이솝 임베디드 포럼 게시판을 이용해 주시면 감사하겠습니다.

엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Documents_Android_Frameworks&document_srl=34866&act=trackback&key=896

물고기

2011.06.27 19:59:30
*.50.21.24

좋은 자료 감사합니다^^

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
64 삼성 안드로이드폰(갤럭시) 리눅스 커널 소스코드 file [3] 유형목 2009-09-01 15909
63 Android 2.1 source tree 설명 file [20] 고도리 2010-09-02 15901
62 [실습-03] android source compile시 battery 부분 patch하기 [7] 고도리 2010-05-24 15897
61 S3C6410 프로세서용 Andoird Kernel 2.6.29 이식 방법 #1 [2] 김재훈 2009-09-04 15823
60 S3C6410 Android ADB USB-OTG 동작 화면 file [8] 김재훈 2009-07-09 15621
59 Power Management from Linux Kernel to Android file [10] 최종환 2009-11-01 14996
58 Google 의 새로운 코덱 VP8 Video Codec 규격자료를 올려 봅니다... file [1] 장석원 2010-05-24 14955
57 [강좌]안드로이드 1.5 compile해서 NFS root filesystem으로 만들... file [1] 고도리 2009-07-18 14140
56 [정보] 안드로이드 소스코드 빌드해보기 [3] 유형목 2008-10-26 13997
55 [실습-01] android 개발환경 세팅과 source download [2] 고도리 2010-05-17 13781
54 [번역] Android OpenCore multimedia framework-part1 file [7] 고현철 2009-08-04 13768
53 안드로이드 6410 보드 관련 s3c-ts touch 잡기 [5] 김한철 2009-04-16 13738
52 [실습-02] android에서 new product 만들고 compile하기 file [7] 고도리 2010-05-18 13223
51 MV6410의 android gps file [4] 주재경 2009-07-29 13108
50 CodeViser 활용 aESOP-C100 보드 Android 디버깅 가이드 file pottery 2010-09-16 12840
49 [안드로이드 포팅 책] 1쇄 binder관련 그림 교체와 수정사항 file 고도리 2011-07-23 12774
48 [이론-00] Android의 개요와 구성 part0 [2] 고도리 2010-05-17 12471
47 [실습-00] android eclair porting을 위한 ubuntu 설치하기 file [6] 고도리 2010-05-17 12321
46 [안드로이드] screen power save로 들어가는거 막는 부분 [2] 고도리 2010-10-28 12240
45 Android 초보도 가능한 Touch 잡기. [1] 2009-04-23 12229

사용자 로그인