Я установил Titanium из appcelerator и создал пример приложения KitchenSink.
Все работает хорошо, мне просто интересно, где код javascript попадает в встроенное приложение.
I grep-ed проект Xcode, а также приложение результата, когда я нашел его в Library/Application Support/iPhone Simulator/....KitchenSink.app
, но я не могу найти никаких имен функций из .js
файлов, даже строковых текстов, используемых в приложении.
Ближайшая информация, которую я нашел, является ответом здесь: Как работает Appcelerator Titanium Mobile?, но я не понимаю, как работает этот процесс.
Является ли код javascript скомпилирован в двоичный код (какой компилятор используется тогда?), или он просто преобразован в какой-то специальный формат данных и интерпретируется в запущенном приложении?
Update:
Это то, что я вижу в каталоге build/android от KitchenSink:
michal:bin mac$ find . -name table_view_layout\*
./assets/Resources/examples/table_view_layout.js
./assets/Resources/examples/table_view_layout_2.js
./assets/Resources/examples/table_view_layout_3.js
./assets/Resources/examples/table_view_layout_4.js
./assets/Resources/examples/table_view_layout_5.js
./classes/org/appcelerator/generated/examples/table_view_layout.class
./classes/org/appcelerator/generated/examples/table_view_layout_2.class
./classes/org/appcelerator/generated/examples/table_view_layout_3.class
./classes/org/appcelerator/generated/examples/table_view_layout_4.class
./classes/org/appcelerator/generated/examples/table_view_layout_5.class
michal:bin mac$ unzip -t app.apk | grep table_view_layout
testing: assets/Resources/examples/table_view_layout.js OK
testing: assets/Resources/examples/table_view_layout_2.js OK
testing: assets/Resources/examples/table_view_layout_3.js OK
testing: assets/Resources/examples/table_view_layout_4.js OK
testing: assets/Resources/examples/table_view_layout_5.js OK
Я раньше не смотрел в app.apk, все, что я мог видеть, это файлы классов, соответствующие каждому из файлов javascript. Поэтому я предположил, что на Android javascript компилируется для JVM. Почему они не могут быть найдены в app.apk?