最終更新:2015-10-15 (木) 18:38:36 (3116d)  

Android/開発
Top / Android / 開発

Android開発についてのメモ。

開発の基礎

概要

  • Android アプリケーションは Java プログラミング言語で作成され、仮想マシン (VM) 内部で実行されます。
  • 重要な点として、この VM はJava VM ではなく、オープンソース・テクノロジーの Dalvik VM であることに注意してください。
  • それぞれの Android アプリケーションは、Linux カーネルが管理するプロセス内に常駐する Dalvik VM のインスタンス内で実行されます。
  • Android には、Java プログラミング言語のコア ライブラリで利用できる機能のほとんどを提供するコア ライブラリのセットが含まれています。
  • Android の各アプリケーションは、独自のプロセスとして実行され、Dalvik 仮想マシン(VM)の独自のインスタンスにより実行されます。
  • Dalvik は、携帯電話で複数の VM を効率よく実行できるように設計されています。
  • Dalvik VM は、メモリの使用量を最小にするように最適化された Dalvik 実行可能(.dex)フォーマットのファイルを実行します。
  • この VM はレジスタベースであり、Java 言語コンパイラによりコンパイルされた組み込みの「dx」ツールにより .dex フォーマットに変換されたクラスを実行します。
  • Dalvik VM は、Linux カーネルを使用して、スレッディングや低レベルのメモリ管理などの基本機能を実行しています。

ドキュメント

開発ツール

Android SDK

Android Developer Tools (ADT)

Android NDK

ADK

  • 周辺機器の開発

チュートリアル

開発環境の構築

ビルドから実行までの流れ

  • Javaソースコードをコンパイルして.classファイルを生成
  • Javaクラスファイル(.class、.jar)をリコンパイルして、実行形式のファイル(.dex)を生成
  • パッケージングしてアプリケーションファイル(.apk)を生成

Android/エミュレータ

実機でのデバッグ

  • 設定で「提供元不明のアプリ」を有効に
  • .apkを実機でダウンロードする

Android/プロジェクト

  • Eclipse (ADK)で作成するプロジェクトのディレクトリ構成

用語

Android/アクティビティ

  • ユーザーが 1 つの操作を集中的に行うための視覚的なユーザー インターフェース
  • 通常は「1アクティビティ=1画面」で作成し、レイアウトやユーザーのイベント、アクティビティの状況に応じた処理を記述

Android/インテント

Android/サービス

  • 視覚的なユーザー インターフェースを持たず、バックグラウンドにおいて明確な終了期限がなく実行される

Android/ブロードキャストレシーバ

  • ブロードキャストの連絡を受信してそれに対処するだけのコンポーネント
  • ブロードキャストの多くが元々はシステム コードで、たとえばタイム ゾーンが変更されたこと、電池の残量が少なくなったこと、写真が撮影されたこと、ユーザーが言語設定を変更したことなどを連絡するために使用する

Android/コンテンツプロバイダ

  • アプリケーションのデータを他のアプリケーションでも利用できるようにする

チェックリスト

リソース

ドキュメント

日本語

Android/ソースコード

ライブラリ

Android には C/C++ ライブラリのセットが含まれており、Android システムのさまざまなコンポーネントにおいて使用されています。これらの機能は、Android アプリケーション フレームワークを介して、デベロッパーに公開されています。コア ライブラリの一部を次に示します:

  • システム C ライブラリ - BSD による実装をベースにした標準の C システム ライブラリ(libc)です。埋め込み Linux ベースのデバイス用に最適化されています。
  • メディア ライブラリ - PacketVideo?OpenCORE? をベースにしたライブラリです。MPEG4?H.264MP3AACAMR?JPGPNG などの多くの一般的な映像と音声のフォーマットと、静止画ファイルの再生と記録をサポートしています。
  • サーフェス マネージャ - 表示サブシステムへのアクセスを管理し、複数のアプリケーションからの 2D と 3D のグラフィック レイヤーをシームレスに合成します。
  • LibWebCore? - 最新式のウェブブラウザ エンジンで、Android ブラウザと埋め込み可能な Web 表示の両方を提供します。
  • SGL? - ベースとなる 2D グラフィックス エンジンです。
  • 3D ライブラリ - OpenGL ES 1.0? API をベースとして実装されたライブラリです。ハードウェア 3D アクセラレーション(可能な場合)か、高度に最適化された埋め込みの 3D ソフトウェア ラスタライザのいずれかを使用します。
  • FreeType - ビットマップ フォントやベクタ フォントのレンダリングを行います。
  • SQLite - すべてのアプリケーションで利用可能な強力で軽量のリレーショナル データベース エンジンです。

スタック

http://itpro.nikkeibp.co.jp/article/COLUMN/20091126/341182/thum_440_fig2.jpg

その他

Eclipseで開発

まとめ

Android開発者が知るべき10のこと

参考

連載

無料チュートリアル


このPDFへのリンク