2011-12-31 7 views
0

안녕하세요, 저는 javac 컴파일러와 dx converter를 android ..로 포팅 할 계획입니다. 이것은 사소한 작업이 될 것입니까, 아니면 중요한 Roadblock입니까?android to javac and porting

내 생각은

이 가능하다 ... 사람들은 안드로이드 기기에서 자바 소스 코드를 컴파일하고 어쩌면 같은 안드로이드 장치에 안드로이드 애플 리케이션을 만들 수 있도록 응용 프로그램을 만드는 것입니다?

+0

예, 기기에 apk를 만든 다음 설치하여 – Selvin

답변

4

대부분의 사람들은 사소한 것이라고 생각하지 않을 것입니다.

포팅해야 할 항목으로 javacdx을 나열합니다. 그것들은 확실히 요구 사항입니다. javac (및 Android에없는 모든 시스템 라이브러리)의 ARM 포트를 만들어야합니다. 또한 Dalvik VM에서 실행될 의 버전을 작성해야합니다 (Java VM 용으로 작성 됨).

그 너머

, 당신은 최소한 포트에 필요 :

  • aapt하고
  • aidl하고 사용할 수있는 모든 시스템 라이브러리 안드로이드
  • 에없는 것을 사용할 수있는 모든 시스템 라이브러리를 그입니다하지 안드로이드에
  • LLVM 컴파일러
  • 개미 (자바로 작성된하지만 자바 VM에 대한 매우 가능성이 수정없이 달빅 VM에서 실행되지 않습니다)
  • 빌드 프로세스의 일부로서 그 개미 작업에 사용 (또한 자바 VM 용으로 작성) 빌드 프로세스
  • 다른 Java SDK 도구에서 사용 Ant 태스크의 전체 수입 세트 (예를 들어, jarsigner, keytool)

그리고 나서 Android 셸이 다소 제한적이며이 프로세스에서 자체적으로 방해 요소가 될 수 있음을 염두에두고 빌드를 수행하기 위해 Ant 작업을 호출 할 수있는 Android 앱을 만들어야합니다. 이러한 앱은 stdoutstderr을 캡처하여 결과를 사용자에게보고해야합니다 (예 : 컴파일 오류). 필요에 따라 기존의 텍스트 편집기가 없으면 자신 만의 미니어처 IDE를 롤업해야 할 것입니다.

나는 100 엔지니어 달을 초과하여 잘 잡는다고 추정 할 것이다. 그래서, 당신 회사가 프로젝트를 위해 멋진 규모의 팀을 임명했다면 1 년 정도 후에 완료 할 수 있습니다.

+0

LOL을 실행하면 1 인칭으로 보이게 만들 수 있지만 어쨌든 조금만 기다리면됩니다 ... 상세한 정보를 주셔서 감사합니다. – pyros2097

+0

dx 도구를 이식하는 것은 간단하게 dex 명령을 실행하는 것과 마찬가지로 dx.jar을 android SDK에서 dex하고 명령 줄 또는 Java 클래스에서 main 클래스를 호출합니다. AIDE, Terminal IDE, termux 등과 같은 몇몇 안드로이드 애플 리케이션에서 이미 완료되었습니다. javac에 대해 동일한 프로세스를 사용했으며 기본 java.lang * 및 android. * 패키지에서 작동합니다. – Harshiv