ZT http://mogoweb.net/archives/117
この記事はhttp://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-4-customizing-adt/から翻訳されています
前回の記事では、カスタマイズされたoriginal-android.jarを作成し、original-android.jarを使用するようにカスタマイズされたAndroidプラットフォームを作成する方法について説明しました。これにより、非表示のAPIの使用が可能になるだけでなく、内部API(ADT)の障壁も残ります。ADTは、com.android.internalのクラスの使用を禁止するルールを定義しています。
この制限ルールをバイパスする方法はいくつかあります。
1)完全なADTソースコードをダウンロードできます。コードを削除または変更したり、ADTの新しいカスタマイズバージョンをコンパイルおよびインストールしたりできます。欠点は、64ビットのLinuxシステムを構成し、ソースコードをダウンロードして、コンパイルする必要があることです。これにはしばらく時間がかかります。新しいバージョンのADTがリリースされたら、もう一度実行する必要があります。
2)別の方法は、ADTのバイトコードを変更することです。文字列「com / android / inter / **」を「com / android / internax」などの他の文字列に置き換えるだけです。
2番目の方法はスクリプトを介して自動化でき、ソースコードにアクセスする必要はありません。また、Windowsでも機能します。そのため、この記事で2番目の方法について説明しました。
ADTバイトコードを変更する
Eclipseのpluginsフォルダーに移動し、com.android.ide.eclipse.adt _ *。jarという名前のファイルを見つけます。バックアップを作成し(間違えた場合に備えて)、変更したファイルのコピーを別の「実験用」フォルダーにコピーします。ここで、バイトコードを変更できます。
* .jarを* .zipに変更し、ファイルを別のフォルダーに解凍します。次のようになりました。
次に、com / android / ide / eclipse / adt / internal / projectサブディレクトリに移動し、AndroidClasspathContainerInitializer.classファイルを見つけます。
ファイルには文字列「com / android / internal / **」が含まれています。次のステップは、文字列を「com / android / internax / **」などの他の文字列に置き換えることです。文字列の長さを変更しても問題はないかもしれませんが、1文字だけを置き換えて、長さを同じに保つのが最善です。
notepad ++は非印刷文字をサポートしており、印刷文字を編集するときに非印刷文字を変更しないため、代わりにnotepad ++を使用しました。
変更後、元のバージョンと同じファイル名でzip圧縮フォルダーにファイルを保存します。例として私のものを取り上げます:com.android.ide.eclipse.adt_8.0.1.v201012062107-82219.zip次に、名前を* .jarに変更します。
注:ファイルが正しく圧縮されていることを確認してください。変更されたzipと元のzipの内部ディレクトリ構造を比較できます。
次に、eclipsepluginsフォルダーにある元のADT * .jarファイルを削除し、変更したバージョンをコピーして、eclipseを再起動します。
問題がなければ、次の図のようになります。
手順の概要:
- Eclipseを停止します
- eclipseのpluginsフォルダーからadtプラグインのjarファイルを取得します。
- .jarの名前を.zipに変更し、別のディレクトリに解凍します。
- 找到com / android / ide / eclipse / adt / internal / project / AndroidClasspathContainerInitializer.class
- 文字列「com / android / internal / **」を「com / android / internax / **」に置き換えます
- すべてのファイルを圧縮する
- .zipの名前を.jarに変更します
- eclipsepluginsフォルダー内の元のadtjarファイルを変更されたバージョンに置き換えます
- Eclipseを開始します。