2011-05-04 5 views
6

안드로이드 응용 프로그램을 부분적으로 전화로 실행하고 부분적으로 서버에서 실행할 수 있도록 파티션을 만들려고합니다 (서버에서 에뮬레이터가 실행될 수 있음). 나는 RMI가 안드로이드에 의해 지원되지 않는다는 것을 읽었다. 에뮬레이터가 Eclipse에서 실행되는 클라이언트 - 서버 아키텍처처럼이 작업을 수행하려고합니다. 이 프로젝트를 수행하는 것이 가능합니까? 어떤 아이디어든지 높게 평가된다.안드로이드에서 분산 응용 프로그램

감사합니다.

답변

0

안드로이드 기기가 데이터가 저장되고 비즈니스 로직이 실행되는 서버와 대화하는 것은 꽤 정상입니다. 휴대 기기는 일반적으로 웹 서비스를 통해 서버와 대화하며, 가장 인기있는 것은 REST + JSON 인 것으로 보입니다. 구현 :

  1. 서버. 코드는 REST + JSON을 통해 데이터베이스와 대화하고 비즈니스 로직을 실행하며 데이터를 디바이스와 통신해야합니다. 구현은 언어/플랫폼에 대한 지식에 달려 있습니다.

  2. Android는 REST 서비스를 호출하고 반환 된 JSON 데이터를 처리합니다. HttpClient를 사용하여 REST 호출을 작성하고 GSON을 사용하여 리턴 된 JSON 데이터를 구문 분석하십시오.

+0

서버에서 실행되는 메소드는 매번 다를 수 있습니다 (전화 측에서의 결정에 따라 오프로드할지 여부, 정확하게 오프로드할지 여부). 이것은 실현 가능합니까? 이것은 서버와 전화 (일반적인 정적 클라이언트 - 서버 아키텍처가 아님) 사이의 통신 방법에 대한 많은 시나리오를 생성하므로 내가 할 수 있는지 없는지 잘 모릅니다. 어떤 충고? 고맙습니다. – myself

+0

웹 서비스는 일반적인 메서드 호출과 비슷합니다. 호출 할 메서드를 선택하고 매개 변수 (개체)를 전달한 다음 회신 (한 개체)을받습니다. –

+0

서버에서 REST의 간단한 예 (Java 서버 코드 REST 외모) : http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide/html_single/index.html#Using_Path –

0

무거운 짐을 덜어주기 위해 표준 서버를 사용하면 훨씬 성공할 수 있습니다. 안드로이드 에뮬레이터에 대한 필자의 경험은 전화기에서 작업하는 것보다 두 배나 느린 작업을 처리한다는 것인데, 에뮬레이터로 작업량을 줄임으로써 실제로 생산성이 향상되지 않는다는 것을 의미합니다.

작업을 수행하는 표준 Java 서버를 사용하면 훨씬 많은 이득을 얻을 수 있습니다.

+0

예 보통의 자바 서버를 사용합니다. 내 프로젝트의 과제는 로컬 또는 서버에서 메소드를 실행할지 여부를 결정할 때 (디바이스 및 네트워크 대역폭 유형과 같은 사용 가능한 리소스를 기반으로 결정)하는 것이므로 (모든 시간을 오프로드하기로 결정한 경우 , 이것은 안드로이드 전화에서 더 많은 전력 소비가 필요할 수 있습니다). 이렇게하려면 응용 프로그램의 종속성을 이해하고 파티션을 분할해야합니다. 수업이나 기능 수준에서 파티셔닝을 할 수 있다고 조언하나요? 도움 주셔서 감사합니다. – myself

+1

예, Eclipse에서 새 Java 프로젝트를 만들고 거기에 값 비싼 메소드를 모두 넣으십시오. 그런 다음 Android 프로젝트와 새 서버 프로젝트에 해당 프로젝트를 포함시킬 수 있습니다. 그렇게하면 Android와 서버 코드를 동기화 된 상태로 유지하는 클래스와 메소드의 중앙 집중식 세트를 유지할 수 있습니다. – Haphazard

+0

이 방법은 재미있을 것 같습니다, 나는 그것을 시도 할 것입니다. 정말 고맙습니다 – myself

관련 문제