마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 클래스 동적 로딩이 가능한가요?

0 추천
윈도우 프로그래밍(델파이)을 할때 폼의 디자인과 각 함수등을 만들고 이걸 dll로 만들어 프로그램 실행시 조건에 맞게 사용 했었습니다.

혹시 안드로이드에서도 앱 실행이후 필요한 클래스를 서버에서 받아와서 사용 할 수 있을까요?

예를 들면

interface 리모콘

void 켜기

void 끄기

 

라는 식으로 정의만 해두고 실제 앱이 실행중에 조건에 맞게

class 리모콘트롤 implements  리모콘

void 켜기(){삼성스럽게켜기}

void 끄기(){삼성스럽게끄기}

 

class 리모콘트롤 implements 리모콘

void 켜기(){LG스럽게켜기}

void LG(){스럽게끄기}

 

저 두개의 이름이 같은 클래스를 앱이 실행중에 웹을 통해 받아서

if companycode == 삼성{

리모콘 r = new 리모콘트롤//삼성스러운

}else if companycode == LG{

리모콘 r = new 리모콘트롤//LG스러운

}

 

이렇게 하고 싶습니다.

이렇게 하고 싶은이유는 업체들마다 요구사항이 하나로 합치기엔 너무 다양해서

각각의 거래처별 앱을 만든다는것은 불가능하고, 또 저런 클래스들을 모두 한 소스에 넣자니 관리가 힘들것 같고

가능한 껍데기만 정의한체로 앱을 출시하고 앱을 사용하는 회사에 맞게 동적으로 클래스를 로드해서 사용하고 싶어요.

가능할까요?

가능하다면 어떻게 접근해야 할까요?

회원님들은 어떻게 이와 같은 문제를 처리 하셨었나요?
변강욱 (260 포인트) 님이 2016년 6월 14일 질문

3개의 답변

0 추천
예전에 페이스북앱이 이런 시도를 했다가 문제가 된 적이 있습니다.

 

해결책은 업체마다 앱을 별도로 만들어야 합니다.

gradle 빌드툴의 기능을 활용하면 가능합니다.
익명사용자 님이 2016년 6월 14일 답변
비극적인 소식이네요. ^^;
자바, 안드로이드는 처음인데 gradle빌드툴의 어떤 기능을 활용해야 하나요?
0 추천
예시 준대로 코딩하면 되는거 아닌가요?
chemkaaa (6,030 포인트) 님이 2016년 6월 14일 답변
문제는 리모콘트롤 클래스를 원격의 서버에서 앱이 필요에 따라 LG걸 부를수도 삼성걸 불러 쓸 수 있게 구현하고 싶어요.
아... 클래스 자체를 웹에서 받아서 사용하고 싶다는 이야기였군요.
된다면 저도 알고 싶네요.
0 추천
가능은 하지만. 언제 막힐지 모르니. 제조사별로 확장프로그램을 설치하도록 유도하는게 좋을 듯 합니다.

정 하시고자 한다면,

jni 인터페이스를 맞춰서 load하는 so에 따라 다르게 동작하게 구현하시는게 좋을 듯 하네요.
익명사용자 님이 2016년 6월 14일 답변
2016년 6월 14일 수정
...