1탄은 .so 파일을 Lazarus로 만드는 과정입니다
2탄으로 만들어진 .so를 어떻게 안드로이드에서 사용하는지 살펴보겠습니다
(꼭 라자루스가 아니라 c나 c++로 만들어진 so도 동일한 방법으로 가능하지 않을까 싶습니다.. 물론 해보진 않았습니다)
우선 프로젝트에서 main에서 jniLibs 라는 명의 폴더를 생성해줍니다
jni폴더가 생성되고 하위에도 cpu별로 폴더를 생성해줍니다 폴더명은 위와 똑같이 따라하시면 됩니다
그리고 해당폴더에 해당버전으로 빌드된 so파일을 각각 넣어줍니다
다음으로 jni함수를 호출 할 클래스를 만들어줍니다
마지막으로 메인엑티비티 소스입니다 create할 때 LoadLibrary로 so파일을 읽어왔습니다
실제 so파일 명은 libproject1.so인데 앞에 lib와 뒤에 확장자를 제외한 이름(project1)만 적어주시면됩니다
그리고 방금생성한 jnicall 클래스를 통해 testfun함수를 호출했고 리턴받은값을 로그로 찍어본 결과 1+2=3 정상적으로 동작하였습니다
이상입니다
틀린내용이나 질문은 댓글로 남겨주세요
글을 마치며 ..
c언어로 작성된 so파일을 붙이는 정보글은 쉽게 구할 수 있는데 free pascal을 이용한글은 찾기 힘들더군요
그래서 시간이 많이 걸릴것을 각오하고 작성하였습니다
또 이글을 읽으실분들이 얼마나 알고있는 상황에서 하실지 알수없어서 나름 자세하게 쓴다고 써 보았습니다
(때문에 중간에 포기하고 싶었습...)
도움이되셨다면 좋겠습니다 감사합니다