のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

android

EclipseAndroidプロジェクトからHide APIを利用する手順(リフレション無しで)

手順

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の標準クラスに相当)
EclipseAndroidプロジェクトのビルドパスから、SDKandroid.jarを除去する
Androidプロジェクトのビルドパスに?、手順2のjarファイルを?外部jarとして追加
備考

Hide APIだけでなく、以下のクラスの利用も可能
aidlから生成されるクラス(?例:IPackageStatsObserver.Stub)
internalクラス(例:com.android.internal.content.PackageHelper)
SDKでは公開されていないRクラス(例:com.android.internal.R.drawable)
手順2のjarさえあれば、Window環境下でも問題なし