안녕하세요.

윈도 모바일용으로 개발된 B2B 소프트웨어를 안드로이드용으로 개발하고 있습니다. 저를 비롯해 다른 분들도 모두 윈도우 기반의 닷넷 개발자라 모르는게 많습니다.

지금은 프로젝트 초기인데 배포 방식때문에 걱정이 많네요.

저희가 구상하는 배포 방식을 설명하기위해 기존 윈도 모바일에서의 배포 방식을 먼저 설명드리겠습니다.

프로그램의 본수가 많기때문에 B2B 프로그램은 기능별로 여러개의 dll로 구성되 있습니다. 모바일 기기 안에는 B2B프로그램 외에 업그레이드 프로그램이 별도로 존재하구요.
개발자가 B2B 프로그램중 특정 dll을 변경해서 서버에 업로드하면, 모바일 측에서는 업그레이드 프로그램이 변경된 dll을 다운받아 B2B프로그램을 업데이트 하는 방식입니다. 프로그램 모듈이 많을 경우 데스크톱에서도 종종 사용하는 C/S기반의 배포 모델이라 이해가 가시리라 생각합니다.

그런데 안드로이드에서는 보안이 강화되서 기존처럼 업그레이드 프로그램이 B2B 프로그램의 파일들을 변경할수 없는 것으로 알고 있습니다. .apk라는 안드로이드 만의 파일 형식도 적응이 잘 않되구요 --;

안드로이드에서 제공하는 배포시스템이 있던데 저희가 원하는대로 부분적인 배포가 가능한지 알고 싶습니다. 

어떤분한테 물어보니 B2B 프로그램은 기능별로 여러게의 프로젝트로 구성하고 별도의 프로그램(.apk)으로 배포한 후 액티비티 간의 호출을 통해 하나의 프로그램 처럼 동작 시키라고 하더군요. 이것도 하나의 대안이 되거 같기 하지만 개발 방식이 더 복잡해 지겠죠.
그리고 여러개의 프로젝트로 나눌경우 저희가 개발한 공통 프레임워크를 어떻게 사용해야하는지도 아직 잘 모르겟습니다.
프레임워크에는 서버와 통신을위한 모듈과 베이스 액티비티 같은 공통적으로 사용될 요소가 있는데 각각 분리된 프로젝트에서 이런 기능을 사용하려면 어떻게 해야하는가 입니다.

윈도우 기반하에서 개발할경우 공통 모듈을 system32같은 곳(닷넷이라면 GAC같은곳)에 배포하면 되는데, 안드로이드에서도 비슷한 방식으로 소프트웨어 라이브러리를 공유할수 있는지 모르겟습니다. 만약 그렇지 않다면 분리된 프로젝트마다 동일한 라이브러리를 포함시켜야할텐데 메모리 제약이 심한 모바일 환경에서는 문제의 소지가 있다고 봅니다.
프레임워크 공유에 대해서도 제가 들은 조언이 있기는 한데, 안드로이드 SDK 디렉토리 안에 있는 add-ons 디렉터리 안으로 에드온을 만들어서 공유하면 된다고 하더군요. 그런데, 나중에 생각해 보니 단말기 제조사가 아니면 add-ons 방식이 어렵지 않을까하는 생각이 들었습니다. (조언해 주신 분이  삼성전자에서 겔럭시S 소스트웨어 개발하시는 분입니다.)

제가 안드로이드 초보다보니 쉽게 해결될일을 어렵게 생각하는 걸수도 있겠네요 ^^;

부디 경험 있으신 분들의 많은 조언들 부탁드리겠습니다.