문제

나는 Titanium Mobile 1.0을 사용하여 iPhone 앱을 구축하려고 노력하고 있으며 기본 iPhone 바이너리로 컴파일합니다. 이것은 어떻게 작동합니까? JavaScript 코드를 분석하고 280 North의 Objective-J 및 Cappuccino와 같은 슈퍼 세트 언어를 사용하지 않고 Objective-C로 직접 변환하는 데 많은 사람들이 많은 리프팅이 필요한 것 같습니다.

도움이 되었습니까?

해결책

Titanium은 JavaScript 코드를 가져 와서 분석 및 전제 처리 한 다음 Titanium API의 응용 프로그램 사용에 따라 해결되는 심볼 세트로 사전 컴파일합니다. 이 기호 계층 구조에서 우리는 기본 티타늄 라이브러리 기호에 매핑되는 기호 종속성 매트릭스를 구축하여 특히 API (및 관련 종속성, 프레임 워크 등)를 이해하는 앱이 필요합니다. 언어를 기준으로 조금 다르기 때문에 반 게릭 방식으로 단어 기호를 사용하고 있습니다. iPhone에서 기호는 궁극적으로 ARM/i386 아키텍처 용으로 컴파일 된 컴파일 된 .O 파일에 맵핑되는 True C 심볼로 맵핑됩니다. Java의 경우 클래스 파일 등이 다소 .class 파일 등입니다. 프론트 엔드가 의존성 매트릭스를 이해할 수 있으면 SDK 컴파일러 (예 : iPhone 용 GCC, Android 용 Java)를 호출하여 응용 프로그램을 최종으로 컴파일합니다. 기본 바이너리.

따라서 간단한 생각 방법은 JS 코드가 Nativeland의 대표 기호로 거의 하나에서 1 개를 편집한다는 것입니다. 해석 된 모드에서 실행되는 통역사가 여전히 있습니다. 그렇지 않으면 동적 코드와 같은 것들이 작동하지 않습니다. 그러나 훨씬 더 빠르고 훨씬 더 작으며 가능한 한 순수한 기본 맵핑에 가깝습니다.

우리는 분명히 이것을 개선하고 그 일을 할 충분한 여지가 있습니다. 지금까지 우리의 최신 1.0 테스트에서는 동일한 대상 C 직접 코드와 거의 구별 할 수 없습니다 (대부분의 경우 정확히 그에 매핑되어 있기 때문에). 그러나 CompSCI의 관점에서 볼 때, 우리는 이제 GCC 컴파일러와 마찬가지로 인간이 실제로 쉽게 할 수없는 것들을 최적화하기 시작할 수 있습니다.

다른 팁

Jhaynie가 말했듯이 응용 프로그램은 기본 코드로 컴파일되었지만 일부 JavaScript를 실행할 통역사가 여전히있어 응용 프로그램이 매우 역동적 일 수 있습니다.

Appcelerator Titanium

간단한 충분한 코드를 패키지하면 ~ 80MB GZIP 아카이브 (원본 코드 ~ 1KB)를 얻습니다. 패키지 내에서 (다른 것 중에서) 소스 HTML 및 JS 파일을 찾을 수 있습니다. 패키지와 함께 선적 된 많은 라이브러리 (예 : SSL)도 있습니다 (이 프레임 워크 내에서 많은 것들에 대한 수준에 액세스 할 수 있기 때문에).

나는 그들이 당신의 코드를 가져 와서 어떤 종류의 통역사 소프트웨어와 라이브러리를 감싸고 있다고 생각합니다. 내 경우에는 내 사이트 만 표시하는 작은 브라우저 옆에 HTML 및 JS 코드를 포장하는 것과 같습니다.

그러나 코드가 모든 지원되는 시스템에서 동일한 방식으로 작동하는 한 좋은 일입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top