Android Studio用にHidden APIを使う環境を作る

  • 18
    Like
  • 0
    Comment
More than 1 year has passed since last update.

皆さん、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

自己責任でご利用ください。

以上です。