Eclipse上からAndroidのHide APIを使用する(リフレクションは未使用)
手順(Androidをビルドしない人向け)
- 以下のリンクから、目的のバージョンのAndroidのビルド生成物をダウンロードする
- Androidプロジェクトのビルドパスから、SDKのandroid.jarを除去する
- プロジェクトのプロパティ -> Javaのビルドパス -> ライブラリー -> Android X.X.Xを選択 -> 除去
- Androidプロジェクトのビルドパスに 手順1のframework.jarとcore.jarを追加する
- ※プロジェクトのビルド生成物のapkやjarに、framework.jarとcore.jarを含めないこと。
具体的には、プロジェクトの「libs」フォルダに置いたり、エクスポート対象に含めてはいけない。
- 2つのjarファイルのjavadocロケーションを「http://developer.android.com/reference/」に設定する
- プロジェクトのプロパティ -> Javaのビルドパス -> ライブラリー -> framework.jar(core.jar)を展開 -> Javadocロケーション -> 編集
- この設定はJavadocを表示させるためのもの
- ビルドするだけなら設定しなくても問題なし
手順(Androidをビルドする人向け)
- Androidのソースコードをビルドする(Androidのルートフォルダを「android」とする)
- ビルド生成物から、2つのjarファイルを入手する
- android/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
- ファイル名は「framework.jar」にする (ファイル名は任意)
- このjarには、frameworkのクラスが含まれる
- android/out/target/common/obj/JAVA_LIBRARIES/core_intermediates/calssses.jar
- ファイル名は「core.jar」にする(ファイル名は任意)
- このjarには、Dalivkの標準クラスが含まれる(Javaの標準クラスに相当)
- Androidプロジェクトのビルドパスから、SDKのandroid.jarを除去する
- プロジェクトのプロパティ -> Javaのビルドパス -> ライブラリー -> Android X.X.Xを選択 -> 除去
- Androidプロジェクトのビルドパスに 手順2のframework.jarとcore.jarを追加する
- ※プロジェクトのビルド生成物のapkやjarに、framework.jarとcore.jarを含めないこと。
具体的には、プロジェクトの「libs」フォルダに置いたり、エクスポート対象に含めてはいけない。
- 2つのjarファイルのjavadocロケーションを「android/out/target/common/docs/doc-comment-check/reference/」に設定する
- プロジェクトのプロパティ -> Javaのビルドパス -> ライブラリー -> framework.jar(core.jar)を展開 -> Javadocロケーション -> 編集
- この設定はJavadocを表示させるためのもの
- ビルドするだけなら設定しなくても問題なし
補足
- Hide APIだけでなく、以下のクラスの利用も可能
- aidlから生成されるクラス( 例:IPackageStatsObserver.Stub)
- internalクラス(例:com.android.internal.content.PackageHelper)
- SDKでは公開されていないRクラス(例:com.android.internal.R.drawable)
- 手順2のjarさえあれば、Window環境下でも問題なし
0 件のコメント:
コメントを投稿