본문 바로가기

Development138

[안드로이드] 가비지 컬렉터!! 안녕하세요 푸민입니다. 안드로이드(자바)에는 가비지컬렉터라는 애가 있는데요. 애는 우리가 사용하지 않는 메모리를 해제하고 여유공간을 만드는 일을 합니다. 이것 때문에 자바는 메모리 관리가 쉬우면서도 어려워요! C는 개발자가 직접 메모리를 해제 시켜야 하기에 조금 복잡하지만 설계를 잘해서 제어하기가 쉽고, 자바는 가비지 컬렉터가 알아서 메모리관리를 해주지만 개발자가 직접제어하는게 아니라 달빅가상머신에서 제어를 합니다. 한가지 가상머신을 불러올수 있는 경우는 System.gc() System 클래스의 gc() 메소드를 호출하면 가비지 컬렉터를 불러달라고 요청하는 것입니다. 이런 가비지 컬렉터가 호출되면 관련된 로그가 찍힙니다. 이런 상황이 5가지가 존재하는데요.달빅가상머신이 언제 가비지컬렉터를 호출하여 메모.. 2015. 11. 1.
[안드로이드] 렌더스크립트 로그 찍어보기! RenderScript! 안녕하세요 푸민입니다. 안드로이드 렌더스크립트를 이용해서 로그를 한번 찍어볼까요? 1. project.properties 에 렌더스크립트 사용 설정을 한다. renderscript.target=18 renderscript.support.mode=true sdk.buildtools=18.1.0 2. .rs 파일을 생성하여 스크립트를 작성한다. #pragma version(1)#pragma rs java_package_name(com.example.hellorenderscript) void hello_world(){rsDebug("Hello, RenderScript", 0);} 위의 version 부분에 렌더스크립트의 버전을 입력해줍니다. 그리고 두번째로 해당 어플리케이션의 패키지를 설정해줍니다. 그런 다음.. 2015. 10. 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.