본문 바로가기

안드로이드 개발31

[안드로이드] 렌더스크립트?? RenderScript - 소개 안녕하세요 푸민입니다.저번 포스팅까지 JNI에서 해서 보았는데요. 안드로이드에는 또 다른 성능향상을 위한 기능이 있습니다!바로 렌더스크립트인데요. http://developer.android.com/intl/ko/guide/topics/renderscript/compute.html NDK와 렌더스크립트 모두 Low 레벨에서 동작하는 것이지만 차이가 있습니다. JNI 의 경우 C 코드로 작성하고 NDK를 이용하여 so 파일을 생성해서 소스코드에 넣어줍니다. 즉 일반 C 언어와 마찬가지로 미리 컴파일을 하는 것입니다. 렌더스크립트도 먼저 컴파일을 하지만 다른점이 있는데, 바로 디바이스에 직접 컴파일하는 것입니다. 먼저 이클립스에서 LLVM(Low - Level Virtual Machine)의 비트코드로 컴파.. 2015. 10. 30.
[안드로이드][JNI] JNI 활용하여 C언어로 흑백이미지 만들기 안녕하세요 푸민입니다. JNI 에서는 기본 변수 타입은 크게 바뀌는 것이 없이 사용할수 있습니다. 하지만 배열을 사용하려면 꽤 많은 변경이 되어야 합니다. 1. 반환 타입 및 파라미터 타입을 설장한다. jintArray Java_com_example_renderscripttest_MainActivity_colorGrayArray(JNIEnv* env, jobject thiz, jintArray pixels){...} 위와 같이 jintArray 라는 타입의 Array 를 반환타입과 파라미터 타입으로 설정합니다. 2. 작업후 반환할 변수를 생성한다. int r, g, b, graypixel, n, i;jintArray gray;jint pixel; n = env->GetArrayLength(pixels);.. 2015. 10. 29.
[안드로이드][JNI] 로그찍어보기 안녕하세요 푸민입니다.안드로이드 내부의 C 파일에서도 로그를 찍어볼수 있습니다. 1. 먼저 android/log.h 를 포함시킨다. #include #include 2. 로그를 찍고자하는 위치에서 __android_log_print() 메소르를 호출한다. jint Java_com_example_pluscalc_peedTest_nativecalc ( JNIEnv* env, jobject obj){__android_log_print(ANDROID_LOG_INFO, "test", "nativecalc Call");int count = 3;int i = 0 ;for(i = 0 ; i < 100000000; i++){count = count * 2 / 3 + 5 - 1;}return count;} __androi.. 2015. 10. 28.
[안드로이드][JNI] JNI 개발 순서 절차! 안녕하세요 푸민입니다.안드로이드 NDK 환경설정을 한 저번 포스팅에 이어 이번에는 JNI 개발 순서를 한번 알아보겠습니다. 1. so 파일 명칭과 메소드 명칭을 정하고 클래스를 작성한다.당연한 얘기지만 해당 명칭을 정하고 자바로 먼저 적용할 것을 만들어 두면 보기가 편해요! 그러면 한번 안드로이드 자바와 JNI 속도를 간단하게 테스트해볼 클래스를 생성해보겠습니다. public class SpeedTest {static{System.loadLibrary("speedtest");} long start_time;long end_time;int ret; public void test(){start_time = System.currentTimeMillis();ret = java_calc();end_time = S.. 2015. 10. 27.