Androidソースコードを単独コンパイルするモジュール実装方法


初めてAndroidソースコードをダウンロードした後、私達は通常Androidソースのプロジェクトディレクトリの下でmakeコマンドを実行します。長い待ち時間を経て、Androidシステムの鏡像system.imgを得ることができます。今後、Androidソースコードの中のモジュールを修正したら、あるいはAndroidソースプロジェクトに自分のモジュールを追加しますか?それともmake命令を実行しますか?答えは否定的です。Googleは別のコマンドを用意して、個々のモジュールのコンパイルをサポートします。Androidソースコードを学ぶ前に、このコマンドを見てみましょう。
      まず、Androidソースコードディレクトリの下のbuildディレクトリで、スクリプトファイルのenvsetup.shがあります。このスクリプトファイルを実行すると、いくつかの有用なツールが得られます。
      USER-NAME@MACHINE-NAME:~/Android$  ./build/envsetup.sh
      注意:これはsource命令です。実行後、いくつかの追加命令が使用できます。

 - croot: Changes directory to the top of the tree.
 - m: Makes from the top of the tree.
 - mm: Builds all of the modules in the current directory.
 - mmm: Builds all of the modules in the supplied directories.
 - cgrep: Greps on all local C/C++ files.
 - jgrep: Greps on all local Java files.
 - resgrep: Greps on all local res/*.xml files.
 - godir: Go to the directory containing a file.
 これらのコマンドの具体的な使い方は、コマンドの後ろに-helpを追加して確認することができます。ここではmmmコマンドだけに注目します。つまり、指定されたディレクトリのすべてのモジュールをコンパイルすることができます。通常はこのカタログには一つのモジュールしか含まれていません。 
        二.mmmコマンドを使用して指定されたモジュールをコンパイルします。例えば、Emailアプリケーション:
        USER-NAME@MACHINE-NAME:~/Android$mmm package/apps/Email/   
        コンパイルが完了したら、out/target/product/generanic/system/apディレクトリの下でEmail.appファイルを見ることができます。Androidシステムが持っているアプリは全部このカタログの下にあります。また、Androidシステムの実行可能ファイルのいくつかは、例えば、Cでコンパイルされた実行可能ファイルであり、out/target/product/generation/sysstem/binディレクトリの下に置いて、動的リンクライブラリファイルはout/target/product/geners/libディレクトリの下に置いて、out/target/product/product/productディレクトリの中にあります。私達は続々と言及します。ご注目ください。 
       三.モジュールをコンパイルした後、もう一度システムファイルを包装してください。そうすると、私たちはシステムをシミュレータで実行する時に、私たちのプログラムが見えます。  
             USER-NAME@MACHINE-NAME:~/Android$make snod  
      四.Ubuntuを参照してAndroidの最新ソースコードをダウンロードしてコンパイルしてインストールする方法でシミュレータを実行します。   
              USER-NAME@MACHINE-NAME:~/Android$emulator
  これで全部できます。
Androidのソースを研究する小さなパートナーに役立つことを期待しています。