2017-07-21 10 views
0

私はアクティビティを含むAndroidライブラリを持っています。それでも、要素にアクティビティを含めるかどうかは関係ありません。ライブラリーを使用するアプリケーションのアクティビティーに完全な「パス」を置く限り、アクティビティーを実行できます。ライブラリプロジェクトのAndroidManifestには何が入りますか?

また、マニフェストのパッケージ値は任意であると思われます。ライブラリクラスのjavaパッケージに対応する必要はありません。それはR値の生成によってのみ使用されるようです。

ライブラリプロジェクトのAndroidManifestでパッケージの値をSHOULDする必要がありますか? 要素に情報を含める必要がある場合はいつですか?

+0

おそらく 'uses-permission'セクションです。そして、これ以上のことはほとんどないと思う。 (アプリケーションなし、活動なし)。あなたの図書館がそれらを使用している場合のサービス。 –

+0

ライブラリモジュールの場合はマニフェストにそのようなエントリは必要ありません。マニフェストをマージするときにIDEがエラーを投げると、アイコン、sdk値などの競合が発生するので、 libモジュールのマニフェストにそのようなものを含めないことは良い習慣です。 – Ashwani

答えて

0

私のAndroidManifestのライブラリプロジェクトのパッケージの値はどれくらいですか?

これはかなりユニークなので、アプリが使用する可能性のある他のライブラリと衝突しません。それ以外の場合、AFAIKは、指定したようにコード生成(たとえば、R)のみを制御します。

要素に情報を含める必要があるのはいつですか?

"要素"が何であるか分かりません。

ライブラリプロジェクトのAndroidManifestにはどうなりますか?

ライブラリは、アプリケーションのマニフェストにマージしたい何か:

  • コンポーネント(例えば、<activity>)ホスティングアプリはによって必要な権限のため、
  • <uses-permission>要素を必要とするようにしてくださいであることライブラリ
  • <uses-feature>要素は、ライブラリで必要なハードウェア機能用です。
  • など

あなたのアプリがライブラリを使用する唯一のアプリである場合、ライブラリのマニフェストに入るものとアプリケーションのマニフェストに入るものとの間の分割線は、あなた次第であり、やや恣意的です。以下のために、

  • マニフェストのエントリを追加するには、アプリ開発者を強制:大藤、ライブラリは、複数のアプリを、あなたが書いていない、特にものによって使用される、場合、アプリ開発者のための頭痛を最小限にするために、ライブラリのマニフェストを作るしようライブラリはアプリが必要がないこと、物事を要求するので、常に必要とされているものは、制御属性(例えば、tools:replace)マニフェスト・合併を追加するには、アプリ開発者を強制頭痛
  • である、で物事を追加頭痛
  • ですアプリのセキュリティを弱めるマニフェスト(不要な<intent-filter>要素など)は頭痛です。
  • など
+0

CommonsWare:私が参照していた要素は、現在

+0

である必要な要素です。@ BrianReinhold:属性に関しては、おそらくほとんどありません。 [リスト](https://developer.android.com/guide/topics/manifest/application-element.html)を見てみると、それらのすべてではないにしても大部分がアプリの責任です。ライブラリが本当にアプリケーションフレームワークの一部である場合(アプリケーション自体が小さくライブラリがほとんどのコードを持っている場合)、それはものを変更します。しかし、子要素の「」は関連しているかもしれません。コンポーネント、APIキーの場合は「」です。 – CommonsWare

+0

@CommonWare:あなたはこれを本当によくしているようですので、もう1つ質問します。これはBluetoothライブラリです。ライブラリマニフェストでBluetoothのアクセス許可を取得する必要がありますか、アプリケーションのマニフェストにそれらを(のみ)配置するだけで十分ですか? –

関連する問題