皆さん、AOSPの中には、Android SDKからアクセスできない隠しAPIが無数に入っていることをご存知ですよね。
Eclipseで使うには、ここのページが詳しいです。
https://sites.google.com/site/hippunosource/home/android/androidnohide-apiwo-shi-yongsuru-rifurekushonha-wei-shi-yong
簡単にまとめると、以下のようになります。
1. AOSP成果物の中から、framework.jarとcore.jarを取り出す。
2. Eclipseの参照プロジェクトにこいつらを指定する。
Android Studioを使う場合、jarを参照するだけ、という使い方ができません。
ので、android関連のクラスをAndroid SDKに移植します。
(この記事は心持ちWindowsユーザーがターゲットです)
1. AOSPをビルドする
J-AOSPさんの以下のページが詳しいです。
https://sites.google.com/site/jaosp72/Home/environment/ubuntu14-04
https://sites.google.com/site/jaosp72/Home/aosp_build/marshmallow
個人開発であれば、VMWare PlayerにUbuntu14.04をインストールするのが、遅いけど確実です。
上記ページを参照して、環境設定・ソースの取得・ビルドを行いましょう。
2. framework.jar
/core.jar
を取り出す
以下のファイルをそれぞれ取り出しましょう。
%AOSP%/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
-> framework.jar
%AOSP%/out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jar
-> core.jar
Ubuntuの使い方については、この記事ではフォローしません。適宜ググってください。
3. Android SDKにマージする
上で取得したファイルを以下の様にリネームします。
framework.jar → framework.zip
core.jar → core.zip
リネームしたら、ダブルクリックして展開しておきます。
次に、%AndroidSDK%/platforms/android-23/android.jar
を、7-zip File Managerで開きます。
ここのルートディレクトリに、以下のディレクトリを上書コピーします。
framework/com/
framework/android/
core/com/
core/android/
※java/javax などのディレクトリはコピーしてはいけません。
コピーが終われば、7-zip File Managerを終了させます。
※android.jar
の元のファイルと、改変後のandroid.jar
はそれぞれバックアップを取っておきましょう。
このAndroidSDKを使えば、隠しAPIに自由にアクセス出来るようになります。
ただし、リフレクションを使う場合と同様で、将来または過去のバージョンとの互換性は一切保証されませんので、ご利用は計画的に。
4. おまけ
ビルドが面倒くさい人のために、ビルド済みのものをここに置いておきました。
https://github.com/jiro-aqua/JotaTextEditor/tree/master/android-23
自己責任でご利用ください。
以上です。