8

システムにAndroidソースコードがあり、正常に動作します。しかし、Androidソースファイルにいくつかの変更を加えて「make」を実行すると、ファイルが生成/更新されません。間違っている場合は修正してください。

i)ソースコードに変更が加えられた場合、システムは新しいsystem.imgファイルを生成する必要があります

ii)androidカーネルファイル-ソースコードに変更を加えても、zImageファイルは変更されません

/ libcore内に新しいライブラリフォルダを作成すると、コンパイル時に自動的に取得されるという別の質問があります。/ libcoreの外部に新しいライブラリフォルダーを作成するために、そのパスを/build/core/main.mkおよび.classpathファイルに追加しました。それでも、コンパイル中にピックアップされません。誰かが/libcoreの外に新しいライブラリファイルを追加するために変更を加える必要がある場所を確認できますか?

よろしく、ヨゲシュ

4

2 に答える 2

10

これは、チェックアウトした正確なリポジトリによって異なります。しかし、それらの大部分では、次のレシピが機能します。

http://source.android.com/source/download.html

最新のビルドを使用している場合は、64ビットシステムが必要であることに注意してください

更新:何らかの理由で、上のページにはいくつかの重要な手順がありません。だからここに彼らは

'repo sync'ステップを実行した後(しばらく時間がかかりますが、ソースファイルがあるので実行したと思います)、次のようにします。

$ . build/envsetup.sh
$ lunch

最後のコマンドは、構築するプラットフォームのオプションのリストを提供します。エミュレーター用にビルドする場合は、full-engを選択してください。それ以外の場合は、特定のデバイスベンダー用に1つ選択してください。

プラットフォームを選択した後、Androidプラットフォーム全体が非常に相互依存しているため、最初にすべてを完全に作成するようにしてください。したがって、すべてのコンポーネントが揃っていることを確認する必要があります。

開発するときは、個々のコンポーネントを非常に高速に構築できます。次のコマンドを使用します。

mmm <component_directory_name>

例えば:

mmm external/rsync

また、ビルドシステムは、出力ファイルと中間ファイルをソースコードとともに変更しません。すべてがout/targetディレクトリに入ります。

于 2010-11-01T21:36:36.493 に答える
5

それはあなたがしたい変更に依存します。

簡単なケースでは、変更がローカルである場合(たとえば、と呼ばれる既存のAndroidソースファイルにいくつかの新しい行を追加する場合xxx.c)、簡単に実行できます。

mm -B (under the root directory of xxx.c)
adb remount
adb sync
adb reboot

他の場合、たとえば、init.rcファイルに示されているように、起動時に開始された古いシステムサービスを置き換える新しいシステムサービスを作成します。次に、おそらく次のことを行う必要があります。

  1. 更新init.rcファイル
  2. Androidソース全体を構築する
  3. 新しい画像をフラッシュする
于 2013-09-29T08:14:38.523 に答える