1

Android 開発環境を scala ベースの環境に切り替えようとしていますが、ターンアラウンド タイム (ProGuard のみを使用して scala ライブラリを使用済みの部分に削除することによって引き起こされる) が私を殺しています。

新しい RAM ディスク イメージを作成し、ライブラリをいわゆるBOOTCLASSPATH. その結果、scala libs をデバッグ ビルドに統合する必要がなくなり、ターン アラウンド タイムを劇的に短縮できるはずです (そのようなチュートリアルの 1 つがここにあります)。

私はこれらのチュートリアルに従いましたが、android 2.3.x (API レベル 10) では正常に動作していますが、ICS エミュレーター (API レベル 14/15) または Jelly Bean エミュレーター (API レベル 16) に適用すると、スタックしてしまいます。変更後のブート ループ。ARM イメージよりもはるかに高速なハードウェア アクセラレーション エミュレーションで x86 イメージを使用しているため、ICS エミュレータは私にとって特に重要です。

ICSエミュレーター以上にscalaライブラリをプリインストールする方法についてのアイデアはありますか?

4

1 に答える 1

4

もう少し検索した後、 root化されたAndroidデバイスにscalaライブラリを事前にインストールできるAndroid-Scala-Installerを見つけました。別のメカニズムを使用します: を調整する代わりに、 usingステートメントBOOTCLASSPATHで参照できる追加のアクセス許可を定義します。AndroidManifest.xml<uses-library />

残念ながら、インストーラーはエミュレーターでは動作しませんが、一般的なメカニズムを適用して、選択したエミュレーターのインストール プロセス全体を完全に自動化し、x86 および ARM イメージで正常に動作する scala スクリプトを作成しました。スクリプトを実行すると、エミュレーターが起動し、すべてのインストール作業が行われ、完了です。現在、スクリプトは Windows でのみ実行されます。

このスクリプトは現在、scala 2.9.2 および 2.10.0-M7 ライブラリをバンドルしており、githubで見つけることができます。

ヒント:AndroidManifest.xmlデバッグ ビルドとリリース ビルドを切り替えるときの調整を省くために、アプリを Android ライブラリ プロジェクトに分割しました。このプロジェクトには、アプリのすべてのコードと 2 つのアプリケーション プロジェクトが含まれており、どちらもライブラリ プロジェクトを参照しています。アプリ プロジェクトの 1 つはデバッグ ビルド用で、関連する<uses-library />ステートメントが含まれています。もう 1 つのプロジェクトはリリース ビルド用で、ビルド プロセスに scala ライブラリが含まれているため、配信される APK の一部になります。

これが他の誰かにも役立つことを願っています。

于 2012-09-17T15:29:10.787 に答える