2

外部のJavaフレームワークをAndroidフレームワークに含めて、カスタムAndroidフレームワークの一部としてコンパイルする方法について誰かが教えてくれますか?

アイデアは、この外部フレームワークをカスタム android フレームワークの一部にして、他のプロセスが使用できるように android サービスとして公開することです。

本質的に私がしたことは -

  1. Java フレームワークの Android ポートを確認しました
  2. 移植されたフレームワークから src dir (すべての外部 jar ファイルを含む) をframework/base/core/java/android/
  3. コピーしたライブラリを呼び出すように、フレームワークで ActivityManager を編集しました
  4. 実行する

これは Android フレームワークを編集するための正しいアプローチですか? Androidフレームワーク内の外部プロジェクトのjavaファイルと関連する外部jarを含めているので、jarをdexに変換するときにmakeが失敗すると思われます。

Android フレームワークの内部構造と Android フレームワークの編集方法を扱う利用可能なリソースを教えてもらえますか?

Tutorial: Android Internals - Building a Custom ROM, Pt. 2 of 2中国の北京で開催された今年の Marko Gargenta のプレゼンテーションを youtube でチェックしました。しかし、彼はそれを明らかにしませんでした (つまり、外部フレームワークまたは jar の追加)。

4

2 に答える 2

4

最初に: 私は Android ビルド プロセスの経験があまりないので、より良い解決策があるかもしれませんが、これは機能するはずです (少なくとも Android 2.2 の場合)。

ソース コードの変更に Eclipse を使用し、既に正常に実行されていると仮定しmake -j4ます。

  • 新しいソース フォルダーを作成します。external/<your-library>/src
  • すべての Java ソース ファイルをこのフォルダーにコピーします。
  • 次のメイク ファイルを開きます。<android>/frameworks/base/Android.mk
  • 次のようにライブラリを検索し# Build ext.jarて追加します。

    [...]
    ext_dirs := \
        ../../external/apache-http/src \
        ../../external/<your-library>/src \
        ../../external/gdata/src \
        ../../external/protobuf/src \
        ../../external/tagsoup/src
    [...]
    
  • これで、Android フレームワークからこれらのライブラリにアクセスできるはずです...
  • 最後に実行make -j4 extして外部モジュールのみをビルドし、
  • またはmake -j4、変更されたすべてのファイルをビルドします (以前のビルドが に存在する場合/out/)。
于 2012-01-04T03:20:15.930 に答える
1

https://android.googlesource.com/platform/vendor/sampleのgit リポジトリのREADME.txtは、その方法の良い例です。例を見るためにそれを複製するのは良いことです。

基本的に、jarファイルを作成してファイルシステムに追加し、xml構成を追加してapkの.xml/system/etc/permissions/で宣言する必要があります。<uses-library>AndroidManifest.xml

私の場合<uses-library>、間違った場所に追加することに問題がありました( ではありません<application>)。

したがって、次の方法で結果を確認することをお勧めします。

$ aapt dump badging Foo.apk | grep uses-library
uses-library:'android.foo'
于 2015-01-08T15:15:31.230 に答える