[要約] Android プラットフォーム システム アーキテクチャ Linux を分析します。フォルダーを削除し、最新の Android ソース コードを分析し、標準の Linux カーネル ソース コードと比較し、Android カーネルの機能アップデートを詳細に分析し、それらの違いについて説明します。 Android カーネルと標準 Linux カーネルについて、China Unicom プラットフォームにおける Android の違いと利点を分析し、Android をさまざまなカーネルの中に位置づけ、Ubuntu 環境での Android カーネルの取得とコンパイルについても紹介しました。
[キーワード]Android カーネル;
中国語図書館分類番号: G354.3 文書コード: A 記事番号: 1009-914X (2013) 33-0119-011.概要
組み込み技術の急速な発展により、チャイナユニコムのインテリジェントプラットフォームの動作速度と統合機能が大幅に向上しました。さらに、Google 率いる Open Handset Alliance OHA はこの状況を利用し、2008 年に Android China Unicom 端末プラットフォームを開始しました。 Android は、オープンで無料の Unicom 端末プラットフォーム [1] であり、従来のスマートフォン プラットフォームにおける Motorola の Symbian オペレーティング システムの独占を打ち破りました。同時に、そのプラットフォームの利点により、さまざまなハンドヘルド デバイスの機能も大幅に強化されました。
2. Android システムアーキテクチャ
Android は、Google が開発した Linux プラットフォームをベースにしたオープンソースの携帯電話オペレーティング システムであり、チャイナ ユニコムの携帯電話が動作するために必要なすべてのソフトウェアが含まれています。オペレーティング システム、ミドルウェア、UI で構成されています。アプリケーション。
Android システム アーキテクチャは、下から [2]、Linux ベースのカーネル モジュール、ランタイム ライブラリおよびその他のライブラリ、アプリケーション フレームワーク、およびアプリケーションの 4 つのレベルで構成されます。
最初の層: Linux オペレーティング システムと Android システムの拡張。C 言語で実装されます。
2 番目の層: システム ライブラリ層と Android ランタイム環境 Linux ソフトウェア。C/C++ によって実装されます。
3 番目の層: Android アプリケーション フレームワーク 各アプリケーションの前には、一連のサービスとシステムが隠されています。
レベル 4: Android アプリ
Android アプリケーション層は、Android デバイス上で実行されるすべてのアプリケーションで構成されます。通話、テキスト メッセージ、連絡先などのシステム アプリケーションに加えて、その後デバイスにインストールされる他のサードパーティ アプリケーションも含まれます。 3. Androidカーネル解析
オペレーティング システムにおける 2.1 カーネルの役割
Android は Linux オペレーティング システムに基づいており、ハードウェア、システム カーネル、システム サービス、アプリケーションの 4 つの主要な部分で構成されています。その中で、カーネルは、コンピュータハードウェアと対話し、ハードウェアのプログラミング制御とソケット操作を実現し、ハードウェアリソースへのアクセスをスケジュールし、同時に中間実行環境と仮想化を提供することを主な機能とします。ハードウェアからアプリケーションまで。主な機能には、割り込みサービス ルーチン、プロセス スケジューラ、プロセス アドレス空間のビデオ メモリ管理、およびプロセス間通信が含まれます。
2.2Androidカーネル
Android カーネルを比較および分析するために、Ubuntu オペレーティング システム上に Android カーネルのコンパイルおよび開発プラットフォームを構築し、リポジトリを通じて最新の Android カーネル コード バージョンの JellyBean をダウンロードしました。
標準 Linux カーネルのソース コードと詳細に比較した結果、ファイル システム、プロセス間通信メカニズム、メモリ管理などの点で Android カーネルと標準 Linux カーネルの間に違いがあることがわかります。
(1) ファイルシステム
Android カーネルは、標準の Linux カーネルでは採用されていない YAFFS2 ファイル システムを削減しました。
(2) プロセス間通信の仕組み
Binder は、リモート プロシージャ コール (RPC) 機能を提供しますが、 Linux カーネル android のプロセス間通信メカニズムです。
でAndroid システムのバインダー メカニズムは、クライアント、サーバー、ServiceManager およびバインダー ドライバーというシステム コンポーネントで構成されており、クライアント、サーバー、ServiceManager はユーザー空間で実行され、バインダー ドライバーはカーネル空間で実行されます。
(3) ビデオメモリ管理
ビデオメモリ管理モジュールでは、Androidカーネルは標準のLinuxカーネルでは使用されない低レベルカーネルを使用します
預金管理戦略。 Android システムでは、重要度に応じてプロセスを分類およびグループ化する LMK (LowMemoryKiller) と呼ばれるメカニズムが使用されます。ビデオ メモリが不足すると、最下位グループのプロセスがシャットダウンされます。
4. Android カーネルの取得とコンパイル
以下では、Ubuntu13.04 オペレーティング システムを例として、Ubuntu13.04 システムでビルドする方法を説明します
Android カーネルのコンパイルおよび開発プラットフォーム。 Ubuntu 上に Android カーネル コンパイル環境を構築する具体的な手順は次のとおりです:
(1) システム環境の設計、必要なソフトウェアパッケージリスト flex、bison、gperf、libsdl-dev、libesd0-
dev、libwxgtk2.6-dev (オプション)、build-essential、zip、curl; (2) JDK バージョン 1.7 をインストールします。 (4) メイン ファイル ディレクトリに bin フォルダーを構築して追加します。 (5) リポジトリ スクリプトをダウンロードし、その属性を実行可能ファイルに変更します。(6) ソース コードを保存するディレクトリを作成します。 mkdircoredroidcdcoredroid ( 7) Android カーネル コードを取得します: gitclonegit:///kernel/common.git
上記の手順の後、Android カーネルの最新バージョンが coredroid フォルダーにダウンロードされます。 make コンパイルが完了すると、zImage ファイルが生成され、シミュレーターを使用して cdmydroid/out/cupcake/out/target/product/genericemulator-imagesystem.img-datauserdata.img-ramdiskramdisk.img-kernel~ をテストおよび実行できます。 /coreroid/common/arch/arm/boot/zImage
5.結論
Android カーネルは、標準 Linux カーネルから最適化されており、Linux カーネルのさまざまな利点を継承し、標準 Linux カーネルの主要な構造を保持しています。同時に、Android はチャイナ ユニコム プラットフォームのニーズに応じてファイル システム、メモリ管理、プロセス間通信メカニズム、電源管理などの側面に変更を加え、関連ドライバーと必要な新機能を追加し、ほとんどのプラットフォームと互換性があります。他のシステムと比較して、Android は標準 Linux の基本アーキテクチャを大幅に保持しているため、Android システムはより幅広いアプリケーションを備え、より拡張性が高くなります。
参考資料
[1]CodeHome.Android-AnOpenHandsetAllianceProject.[EB/OL]http:///android/what-is-android.
[2] Gong Lei、Zhou Cong、Android [M] に基づくチャイナユニコム端末アプリケーションの開発と研究、linux kernel android、2007 年
。[3]Zhao Jiong、Linux カーネルの完全な注釈[M]、2004 年。
[4] Chen Lijun、Linux カーネルの分析と応用[J]。南京郵電大学のジャーナル。以上がAndroid カーネルと標準 Linux カーネルの機能アップデートを分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。