内部(com.android.internal)および非表示(@hide)APIを使用する[パート4、カスタムADT]

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のクラスの使用を禁止するルールを定義しています。

image_thumb30_thumb

この制限ルールをバイパスする方法はいくつかあります。

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に変更し、ファイルを別のフォルダーに解凍します。次のようになりました。

image11

次に、com / android / ide / eclipse / adt / internal / projectサブディレクトリに移動し、AndroidClasspathContainerInitializer.classファイルを見つけます。

image12

ファイルには文字列「com / android / internal / **」が含まれています。次のステップは、文字列を「com / android / internax / **」などの他の文字列に置き換えることです。文字列の長さを変更しても問題はないかもしれませんが、1文字だけを置き換えて、長さを同じに保つのが最善です。

notepad ++は非印刷文字をサポートしており、印刷文字を編集するときに非印刷文字を変更しないため、代わりにnotepad ++を使用しました。

image13

変更後、元のバージョンと同じファイル名でzip圧縮フォルダーにファイルを保存します。例として私のものを取り上げます:com.android.ide.eclipse.adt_8.0.1.v201012062107-82219.zip次に、名前を* .jarに変更します。

注:ファイルが正しく圧縮されていることを確認してください。変更されたzipと元のzipの内部ディレクトリ構造を比較できます。

次に、eclipsepluginsフォルダーにある元のADT * .jarファイルを削除し、変更したバージョンをコピーして、eclipseを再起動します。

問題がなければ、次の図のようになります。

image14

手順の概要:

  1. Eclipseを停止します
  2. eclipseのpluginsフォルダーからadtプラグインのjarファイルを取得します。
  3. .jarの名前を.zipに変更し、別のディレクトリに解凍します。
  4. 找到com / android / ide / eclipse / adt / internal / project / AndroidClasspathContainerInitializer.class
  5. 文字列「com / android / internal / **」を「com / android / internax / **」に置き換えます
  6. すべてのファイルを圧縮する
  7. .zipの名前を.jarに変更します
  8. eclipsepluginsフォルダー内の元のadtjarファイルを変更されたバージョンに置き換えます
  9. Eclipseを開始します。

おすすめ

転載: blog.csdn.net/lgdlchshg/article/details/23618895