안드로이드 개발 질문/답변
(글 수 45,052)
이번에 안드로이드 개발을 하게 되었는데요.
서버쪽은 C언어로 구현되어 있고 클라이언트로 안드로이드 어플이 올라가는 구조입니다..
근데 문제는 c에서 받은 데이터를 가지고 디코딩을 해야 하는데 이게 botan이라는 C언어 전용 라이브 러리를 사용해
엔코딩이 되어있습니다. 물론 어떤형식의 엔코딩인지는 알수 없구요...
다만 botan이라는 라이브러리의 디코딩 메서드를 이용해 디코딩을 하게 되면 정상적인 데이터가 나오게 되는데.
문제는 C언어 전용 라이브러리라 자바에선 어찌 해야 할지 감이 전혀 안잡힙니다.
C언어 기반으로
botan라이브 러리에 링크되어있는 디코딩 라이브 러리를 만들어 안드로이드에 ndk로 연결해 사용해도
이상이 없을까요?;;
만약 이방법이 안된다면 어떤 방법이 있을까요?;;
http://files.randombit.net/botan/doxygen/html/classBotan_1_1BigInt.html
사용하고자 하는 라이브러리 레퍼런스 입니다.
오픈소스이고 라이브러리를 다운받으면 cpp파일와h파일들이 들어있습니다...
사용하고자 하는 메서드는
|
static BigInt |
decode (const MemoryRegion< byte > &buf, Base base=Binary) |
|
static BigInt |
|
|
static void |
|
|
static SecureVector< byte > |
|
|
static SecureVector< byte > |
encode_1363 (const BigInt &n, size_t bytes) |
어떻게 잘하면 될것도 같은데...길이 보이지 않네요...ㅠ
작은 힌트라도 감사히 듣겠습니다...ㅜ
2011.01.12 02:09:45
위 라이브러리 풀소스를 우선 ndk이용해서 가이드대로 so 라이브러리로 만드시구요. jni를 이용하여 자바에서 native method형태로 호출하여 사용하시면 됩니다. 위 경우는 파라메터로 들어가는 인자들이 프리미티브가 아니라 C와 자바단 간 넘기실때 처리가 좀 필요해 보이는데요 jni 에서 제공하는 데이터 변환 함수를 적절히 이용해서 jni 함수내에서 적절히 변환해서 처리하시면 될것 같아요. 말은 쉽게 했는데 처음 하시면 많이 헷갈리실꺼에요. 암튼 안드로이드 사이트에서 ndk부분 참조하셔서 컴파일 하시구요, jni 관련은 인터넷에서 검색하시면 자료 많이 나오이 보시고 해보시기 바랍니다.



