Android Jni 의 간단 한 사용 설명

1562 단어 AndroidJni
수요 소개
인 터 페 이 스 를 요청 할 때 전 참 이 필요 할 때 가 많 습 니 다.업무 에 필요 한 필드 를 제외 하고 인 코딩 에 사용 되 는 고정 필드 도 있 습 니 다.이 고정 필드 의 값 을 우 리 는 프로젝트 프로젝트 프로젝트 에 직접 쓸 수 없다.다른 사람 에 게 역 컴 파일 되 는 것 을 방지 하고 가방 을 가 져 온 후에 악의 적 으로 요청 하여 우리 의 사용자 데 이 터 를 캡 처 합 니 다.
낡은 규칙,먼저 위의 그림:
 
해결 방법
이 럴 때 우 리 는 Jni(Java Native Interface)를 이용 하여 이러한 상수 치 를 저장 할 수 있다.가장 안전 한 방식 도 아니 지만 역 컴 파일 과 스냅 백 의 어려움 도 증가 했다.상대 적 으로 안전 합 니 다.
구체 적 인 방법 은:
① 새로운 프로젝트 를 만 들 고,패키지 이름 은 Jni 를 호출 해 야 하 는 프로젝트 와 같 습 니 다.
②/src/main/경로 아래 에 jni 디 렉 터 리 를 새로 만 들 고 c 파일 도 새로 만 듭 니 다.
③ c 파일 에 코드 쓰기
여기 서 세 번 째 단계 에 대해 중요 한 필드 값 을 어떻게 저장 해 야 하 는 지 구체 적 인 코드 는 다음 과 같다.

#include <jni.h>

//   :Java_  _  _   (   )(  jni     )
JNIEXPORT jstring JNICALL
Java_com_anxindeli_anxincow_tools_JniTool_strFromJni(JNIEnv *env, jclass type) {
 return (*env)->NewStringUTF(env, "anxindeli_cow_ysdss_30ccoaea04e");
}
이 so 라 이브 러 리 를 호출 하 는 자바 류 디 렉 터 리 는 반드시

그렇지 않 으 면 호출 에 성공 하지 못 할 것 이다.
JniTool 코드:

public class JniTool {
 static {
  System.loadLibrary("str-jni");
 }
 public static native String strFromJni();
}
마지막 으로 자바 에서 호출

JniTool.strFromJni()
이렇게 간단 한 한 마디 면 돼...
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기