2

私はAndroidで独自のSDKを作成しているため、独自のjarを作成しています。次に、droiddocツールを使用してSDKのドキュメントを作成します。

私のフレームワークファイル(.java)には、@hideでマークした多くのAPIがあります。これが現在の状態です。

a)@hideでマークされたすべてのAPIはドキュメントに隠されています。

b)非表示とマークされたこれらのAPIは、生成されたjarファイルのクラスファイルに含まれています(これを確認するには、Javaデコンパイラーを使用します)。

このjarファイルをeclipseに含め、クラスオブジェクトでCtrl +スペースを使用してそのオプションを見つけると、非表示のAPIが実際に表示され、ここからアクセスできることがわかります。

ここに何か足りないものがありますか?makeファイルに特別なフラグを追加する必要がありますか?それとも、これは通常の動作ですか?

4

1 に答える 1

2

そうだと分かった:

android.jar では、com.android.internal のすべてのクラスが削除され、@hide でマークされたすべてのクラス、列挙型、フィールド、およびメソッドも削除されています。

そのため、@hide を含むクラスは jar に含まれていません -> そのため、Eclipse ではアクセスできません。さらに:

デバイスでアプリケーションを起動すると、framework.jar (デバイス上の android.jar とほぼ同等) が読み込まれます。これはカットされておらず、すべての内部 API クラスと非表示の API コンポーネントがすべて含まれています。

この投稿この回答をご覧ください
物事を隠すための代替ソリューションを見つけてください

于 2013-01-29T21:15:57.777 に答える