約 5,361,713 件
https://w.atwiki.jp/android_api/pages/17.html
Androidアプリは「アクティビティ」、「ブロードキャストレシーバー」、「サービス」、「コンテンツプロバイダ」の4つの構成要素から成り立ちます。 リソースクラスです。標準的なアンドロイドアプリケーションに使用されます。このパッケージにはアンドロイドアプリケーションを使う際の定義がされています。サードパーティの開発者が使うことのできるたくさんのアップリケーションがあります。リソースの詳細についてはリソースとアセットをご覧ください。
https://w.atwiki.jp/pcmemo/pages/25.html
Android Android SDKのインストーラにJDKが無いと言われる JDKが入っているのに 「Java SE Development Kit (JDK) not found.」 と言われる場合 64bit版WindowsだとJDKの使うレジストリの関係でインストーラがJDKを認識できないようです とりあえずzip版使えばOK 実機での実行/デバッグ 実機での実行 実機でもデバッグができるようにするEclipseならAndroid.xmlの「アプリケーション」タブからApplication Attributes内、debuggableをtrueに 直接編集する場合は、 application 要素に「android debuggable="true"」を追加 Eclipseでの実行実行やデバッグを押すとAndroid Device Chooserダイアログが出るので上側の実機デバイスを選択してOK AVDが自動で起動する場合、実行>実行(デバッグ)構成>Androidアプリケーション>(プロジェクト名)>ターゲット内のAVDのチェックを外して適用 ADBでの実機へのインストール・アンインストール 実機が繋がった状態でコマンドプロンプトから インストールadb install [.apkファイル] .apkはプロジェクトのbinフォルダにあるやつ アンインストールadb uninstall [パッケージ名] パッケージ名はcom.example~とかのやつ Android NDK ndk-build時に/cygdrive/g/David~が見つからないと言われる よくわからないけどWindowsのGドライブが関係しているようで、Daemon Toolsが作成していたGドライブを削除したら通るようになった。 参考URL https //groups.google.com/group/android-ndk/browse_thread/thread/7eb2ef515c1fca2?hl=ja
https://w.atwiki.jp/negilab/pages/15.html
Androidとは? Android Androidとは、GoogleおよびT-Mobile、HTC、モトローラ、日本からは KDDIやドコモを含む世界34社はオープン携帯プラットフォームを目指す団体「Open Handset Alliance」が開発を進める オープンソースのモバイルプラットフォーム。プログラミング言語はJava言語、開発環境はEclipseを使う。 UIはXMLレイアウトファイルで記述できる。 Androidはメーラー、SMS、カレンダー、地図、ブラウザなどのコアアプリケーションを含んで出荷される。 従来の携帯電話ではネイティブで入れ替えできなかった部分も作成できる模様。 アプリケーション実行環境というよりOSに近い印象を受ける。 特徴は次の通り。 アプリケーションフレームワーク コンポーネントの再利用が可能 Dalvik Virtual Machine モバイル用に最適化 統合ブラウザ WebKitベース グラフィックス 3DグラフィックスはOpenGL ES 1.0ベース SQLite ローカルデータをデータベース形式で保存 メディアサポート MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF GSM通話(機種依存) Bluetooth、EDGE、3G、WiFi(機種依存) カメラ、GPS、コンパス、加速度計(機種依存) デモはtoolsのemulator.exeを実行し、メニュー画面の「Application→App Demo」で閲覧可能。
https://w.atwiki.jp/melodroid/pages/16.html
Android開発環境構築 概略 Androidの標準的なビルド環境の構築について記載する。 基本的には、Android Open Source Projectの和訳になる。 目次 開発環境構築 ソース取得準備 ソース取得方法(repo) ソース取得方法(git) ビルド方法 開発環境構築 Ubuntu Linux(8.04,32bit-x86)上での開発環境構築について書く。 Windows上でやりたい場合は、VMware等を利用して実施。 Macとか他のLinuxディストリビューションについては、参照元をチェック。 アップデート実施「アップデート・マネージャ」を起動する(「システム」→「システム管理」→「アップデート・マネージャ」を選択) アップデートを実施する(「アップデートをインストールする」を押す) パスワードを要求されるので、入力してEnterキーを押す。 必要なパッケージを追加する。「端末」を起動する(「アプリケーション」→「アクセサリ」→「端末」を選択) 「端末」上で、下記のコマンドを入力して、Enterキーを押す。sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev パスワードを要求されるので、入力してEnterキーを押す。事前に、sudoを使った場合は、要求されない場合がある。 パッケージのダウンロードが始まるので、終わるまで待つ。 念のため、再度アップデートを実施 注意事項8.10だと別のパッケージ(lib32readline5-dev)が必要となるらしい 64-bitだと、少し違うらしい ソース取得準備 Android Open Source ProjectからAndroidのソース一式を取得する為のツール「repo」の導入方法を説明。 必要なパッケージ(Git)の取得上記の開発環境構築を実施していれば、再度取得する必要は無い「端末」を起動する(「アプリケーション」→「アクセサリ」→「端末」を選択) 「端末」上で、下記のコマンドを入力して、Enterキーを押す。sudo apt-get install git-core パスワードを要求されるので、入力してEnterキーを押す。事前に、sudoを使った場合は、要求されない場合がある。 パッケージのダウンロードが始まるので、終わるまで待つ。 (動作確認はしてないので・・)他に必要なパッケージがあれば、導入。 repoインストール用のフォルダ作成と設定説明同様に、ホーム配下(~/bin/)に作成する場合を記載(/usr/local/bin/等でも良いと思う)「端末」を起動する(「アプリケーション」→「アクセサリ」→「端末」を選択) ホーム配下に移動する「端末」上で、「cd ~」入力して、Enterキーを押す ホーム配下にbinフォルダを作成「端末」上で、「mkdir bin」入力して、Enterキーを押す コマンド入力時に、binフォルダが検索対象となっていることの確認binフォルダに移動する(端末で「cd bin」) 確認するパスを表示「端末」上で、「pwd」入力して、Enterキーを押す 環境変数を表示「端末」上で、「echo $PATH」入力して、Enterキーを押す 表示される文字列に確認するパス(pwdで表示されたパス)が含まれていることを確認区切り文字は、「 」(コロン) 含まれている場合、検索対称となっている 検索対象となっていない場合の対処方法別のやり方でもできる「.bashrc」を開く端末で「gedit ~/.bashrc」を入力して、Enterキーを押す エディタが開くので、最後に下記1行を追加PATH="$PATH ~/bin" 端末を一度終了させて、再度起動し、環境変数を確認 repoを取得端末で下記を入力して、Enterキーを押すcurl http //android.git.kernel.org/repo ~/bin/repo repoフォルダの設定端末で下記を入力して、Enterキーを押すchmod a+x ~/bin/repo 注意事項repoを導入しなくても、gitだけでソース取得することも可能 「.bashrc」の編集は自己責任で・・。 ソース取得方法(repo) repoを使ってのソースのダウンロード方法について記載。 repoが導入されていることを前提条件とする。 ダウンロード先のフォルダを作成以降、「~/mydroid」として作成したとする フォルダ内に移動端末で「cd ~/mydroid」を入力して、Enterキーを押す ダウンロード情報の初期設定端末で下記を入力して、Enterキーを押すrepo init -u git //android.git.kernel.org/platform/manifest.gitビルドする場合は、「-b cupcake」等を付加して、バージョン固定したほうが良いと思う 名前、メールアドレスの問合せがあるので、入力してEnterキーを押すEnterでデフォルトが入るので、とりあえず、それでも動く 設定ファイル内に格納される。アップロード時に使用される(?) ダウンロード実施端末で下記を入力して、Enterキーを押すrepo sync 注意事項repoのイメージとしては、「manifestに対応して、複数回のgitによるソース取得を実施する」(たぶん・・) 「repo init」、「repo sync」ともに、失敗することがある。その際は、再度実施。 repoのオプション等は、http //source.android.com/download/using-repoをチェック 「repo init」後に、manifestファイル(ローカルに作成されている)を変更することで、パッケージの追加、削除等の操作ができる ソース取得方法(git) gitを使ってのソースのダウンロード方法について記載。 gitが導入されていることを前提条件とする。 (とりあえず、ビルドしたいなら、素直に、repoを使った方が良い) ダウンロード先のフォルダを作成以降、「~/mydroid」として作成したとする フォルダ内に移動端末で「cd ~/mydroid」を入力して、Enterキーを押す サーバからダウンロード端末で下記(例:標準カーネル部分取得)を入力して、Enterキーを押すgit clone git //android.git.kernel.org/kernel/common.git 注意事項gitを1回実施するだけでは、1部分のみのソースを取得するイメージかな 複数回実施して、repo1回と同程度になる(makeするまでに手間がかかる) あるパッケージのソースだけ欲しい場合には、gitのほうが便利 動くソース一式が欲しい場合は、repoのほうがおすすめ ビルド方法 repoによりソースを取得した段階でのビルド方法を記載。 「~/mydroid」内で、「repo init」、「repo sync」を実施した状態だとする ソースのルートフォルダに移動端末で「cd ~/mydorid」を入力してEnterキーを押す ビルドを開始する端末で「make」を入力してEnterキーを押す 注意事項設定を何もしていない状態だと、ユーザ空間のビルドがgeneric設定で実施される。 上記の場合、生成物は「~/mydroid/out/target/product/generic」にできる カーネルビルドは含まれておらず、基本的にユーザランドが生成物となる
https://w.atwiki.jp/devemin/pages/13.html
●Activityの回転時の再生成への対応 ①再起動させなければいいので、onConfigurationChanged() メソッドをオーバーライド ②Activityのマニフェストに android configChanges="orientation|keyboardHidden" @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } http //d.hatena.ne.jp/hyoromo/20090712/1247385249 (Softbank 005SHでは、keyboardHiddenが必要だった。) ●Eclipseの入力補完(オートコンプリート)が遅い件 バージョン3.62にすれば問題ないらしい ●アップデート後など、eclipseが起動しなくなった場合 eclipse\configuration\jp.sourceforge.mergedoc.pleiades フォルダを削除したらOKだった ●Android アプリ開発時、有料・無料の2種プロジェクトを作るTips (ソースを2プロジェクトで共有する方法) こちらを参考にさせてもらいました。 (Androidの無料アプリ・有料アプリを切り替えてビルドする方法) http //d.hatena.ne.jp/eaglesakura/20100629/1277832265 上記URLで書いてあった方法は、部分的に、自分のアプリでは対応できない部分があったので、自分のやった方法で、全体名流れを補足。 まず2つプロジェクトを普通に作る。(基本app-freeと派生app-paid) 2つのパッケージ名はそれぞれ、 com.appli.free com.appli.paid など、最後の1段落のみ変えたりするとわかりやすいかも。 プロジェクト名は、ここでは「app-free」「app-paid」としてみる。 派生プロジェクトpaidでは、src、assets、resディレクトリを、 リンクしたディレクトリとする。 派生プロジェクトapp-paidでは、基本プロジェクトapp-free内の自動生成ファイルR.javaが必要になる。 手動で毎回やるのは酷なので、派生プロジェクトapp-paidビルド時に毎回app-free側のR.javaが自動でコピーされるよう、バッチファイルを作成、プロジェクトのプロパティ、ビルダー、で、ビルド時に毎回実行されるようにする。初回はプロジェクトのクリーンを実行で、×マーク消える。 ${build_project}\rcopy.bat ${build_project} 上記サイトを参考にさせていただきました。 rcopy.bat -------------------------------- @echo off SET PARENT_PROJECT=app-free SET CURRENT_PROJECT=app-paid REM 定義ファイルをコピーする cd ..\%PARENT_PROJECT%\ REM genフォルダをコピーする xcopy /s /e /y .\gen ..\%CURRENT_PROJECT%\gen cd ..\CURRENT_PROJECT\ -------------------------------- リソースを共有するので、有料版、無料版をそれぞれリソースに含めるので、容量はダブって損となる。気にする人は気にするかも?でも自分は利便性を取りました。 @string/app_name @string/app_name_paid @drawable/icon @drawable/icon_paid AndroidManufest.xmlは、アプリそれぞれに設定する。 (パッケージ名、label ) アクティビティ名を、省略名ではなく、 activity android name="light.diary.plus.EditWindow" などにする必要があるかも これらの結果、 app-freeプロジェクト、はほかの通常のプロジェクトとなんら変わりない app-paidプロジェクトは、res, asset, srcがリンクフォルダであり、src内パッケージは「com.appli.free」がある状態。 ×印が消えない場合は、プロジェクトのクリーン&eclipseの再起動、F5キーによるリフレッシュなどをトライ。 (必要に応じて、import light.diary.plus.R; ?) 有料・無料の処理切り分けは、getPackageName()で行う。 ●プログレスダイアログProgress Dialog 既に動いているサンプルをそのまま使うのが吉。 スレッド以外でGUI操作するとメモリエラーとなる。 https //groups.google.com/forum/#!msg/android-group-japan/0YlnSLptx8w/g6kAZuxrR14J 引用 ProgressDialog progressDialog; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); progressDialog = new ProgressDialog(this); /*progressDialog.setTitle("処理中"); progressDialog.setMessage("処理を実行中です"); progressDialog.setIndeterminate(false); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.show();*/ Thread thread = new Thread(this); thread.start(); } public void run() { // 時間のかかる処理をここに記述。 try { progressDialog.setTitle("処理中"); progressDialog.setMessage("処理を実行中です"); progressDialog.setIndeterminate(false); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); handler.post(new Runnable() { @Override public void run() { progressDialog.show(); } }); Thread.sleep(5000); } catch (InterruptedException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } handler.sendEmptyMessage(0); } private Handler handler = new Handler() { public void handleMessage(Messa ●ADTアップデート等エラーのときのEclipse クリーン http //www.hlplus.jp/php/blog/index.php?UID=1298450960 名前 コメント
https://w.atwiki.jp/mywiki2010/pages/14.html
USBブート可能なx86マシンでAndroidを動作させる。 参考サイト一覧 「Android」をx86パソコンで動かそう ITpro 話題の携帯向けOS「Android」をx86パソコンで動かしてみよう (2009/02/27) ブログなど NWLab.com USB起動可能なAndoroid OSでPCからAndroidを起動してみました(2009/04/13) 即席USBブート環境構築(Windows編) ダウンロード可能なイメージファイルでお手軽にAndroidを動作させる。 (更新 2010/02/09) (1) 必要なものを用意 WindowsがインストールされたPC USBブート可能なPC(WindowsPCと同じでも良い) USBメモリ1GBもあれば十分。 FAT32でフォーマットしておく。 不慮の事故でデータが消えても困らないよう、大事なデータは事前にバックアップ。 (2) Androidのブート・イメージ入手 「USBブート・イメージ入手先」からファイルをダウンロードする。 (3) ブート・イメージの書き込み 書き込みソフトを使ってブート・イメージをUSBメモリに書き込む。 ソフト一覧 DDforWindowsWindowsXP, WindowsVistaで使用可。他Windowsでは未検証。 本ソフトでUSBから読み込んだディスクイメージはLinuxのddコマンドでそのまま使用可能。 (4) Android起動 Andoridを動かすPCでUSBブート可能になるようBIOSを設定するEeePC1000HEでは、PC起動時にESCキーを連打することでブート・ドライブを選択可能。 電源の入っていないPCのUSBポートにUSBメモリを差し込む 電源を入れるとAndroidが立ち上がる起動中にもUSBアクセスを行っているので、USBメモリは抜かないよう注意。 設定を変更した場合(表示言語など)は変更内容がUSBメモリに書き込まれ、次回起動時にも反映される。
https://w.atwiki.jp/sindroid/pages/13.html
あんどろいどなぺぇじ さて何を書こうか。 アンドロイドの構成 インストールからエミュレータ起動まで (ver 2.0用 以前のバージョンだとまた違うぽい。) ここからSDKをダウンロード →解答して適当なとこに置く →パスを通す(¥toolsまで) →プロンプトからandroidと入力するとAVDマネージャ起動 →Available Packagesからインストール ・ここで何もインストールするファイルがみつからない場合がある。 /.androidにandroidtool.cfgファイル作ってsdkman.force.http=trueと入れておくと解決するはず。 ・インストールがNothingとか出たらSDKの位置変えてみる。 (C直下とか。管理者権限だとか何か知らんけどProgram Files以下に置いてたら駄目だった。) →Virtual Devicesでデバイス作成 →そこからStartで起動 SDKリファレンス 既存バグとか チップス 他
https://w.atwiki.jp/android/pages/21.html
Hello, Android! 第一印象は重要だ。それは、あなたが、このアンドロイドというフレームワークを手にして、"Hello, World!"を書いたときに受ける第一印象だ。そう、アンドロイドにおいて、それはとても簡単なのだ。下記を見て欲しい。 プロジェクトを作成する。 UIを構築する。 コードを走らせる Hello, Android 以下のセクションでそれをつまびらかに語っていこう。 UIをXMLのレイアウトにアップグレードする。 プロジェクトをデバッグする。 Eclipseなしでプロジェクトを作成する。 さあ行こう。 プロジェクトを作成する プロジェクトを作成することはできる限り簡単にしてある。Eclipseプラグインで、Androidの開発環境のスナップを作成することが可能だ。Eclipse 3.3以上(Europa)と、Eclipse用のAndroidプラグインは用意してあるかい?それらをインストールしてから次に進んで欲しい。 最初に、"Hello, World!"をビルドするための、簡単な要約を述べておこう。 File- New- Project menuから、"Android Project"を新しく作成する。 New Android Project ダイアログで、プロジェクトの詳細を埋める。 なにかを表示するための自動生成されたテンプレートコードを編集する。 さあ、行こう!以下でそれぞれのステップの詳細を説明しよう。 1.新しい"Android Project"を作成する。 Eclipseから、File- New- Projectと選択して欲しい。もし、EclipseのAndroidプラグインがきちんとインストールされているなら、表示されるダイアログの中に、"Android"と名前のついたフォルダがあり、その中には、"Android Project"があるはずだ。 "Android Project"を選択し、"Next"を押そう。 2.New Android Project ダイアログで、プロジェクトの詳細を埋める。 次の画面で、プロジェクトに関係する詳細を入力する。たとえば次の例のように: それぞれの入力欄が意味するところは次のようになる。 Project Name プロジェクトを保存したいディレクトリもしくはフォルダの名前 Package Name これはパッケージの名前空間だ。ちょうどJavaのように。あなたのソースコードは全てここより下位におかれるようにする。ここには、自動生成されたスタブのパッケージ名がすでにセットされているはずだ。パッケージ名は、システムにインストールされるすべてのパッケージ間で、ユニークである必要がる。というわけで、あなたのアプリケーションに標準的なドメイン命名スタイルを使うことはとても重要だ。上述の例では、パッケージ名として、ドメイン"com.google.android"を使用している。あなたの所属する組織にみあった、唯一の名前を使用するといいだろう。 Activity Name ここでは、プラグインによって生成されるスタブクラスの名前が書かれている。これは、AndroidのActivityクラスのサブクラスである。Activityは単純なクラスで、それ自体で実行させ、処理させることができる。希望するならUIも作れるが、そうしなくても構わない Application Name ここにはユーザーが目にするアプリケーションのタイトルを入力する。 "Use default location"チェックボックスをONにすることで、プロジェクトファイルの保存場所を変更することができる。 3.自動生成コードを編集する。 After the plugin runs, you ll have a class named HelloAndroid that looks like this プラグインを実行すると、下記のような、HelloAndroidクラスが出来上がっているがわかるだろう。 public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); } } 次のステップで、これを修正していこう! UIを構築する。 プロジェクトをセットアップしたあとは、当然、それを修正していく。以下がその完成品だ。1行ずつ解剖していこう。 public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); } } このサンプルのコンパイルをするために、インポートセクションに、"import android.widget.TextView;"を追加するしなければらいことを注意しよう。 Androidでは、ユーザーインターフェースは、Viewsと呼ばれるクラス階層で成り立っている。Viewはシンプルな描画オブジェクトである。たとえば、ラジオボタンであるとか、アニメーションであるとか、(今回のケースは)テキストラベルなどだ。テキストを扱えるVieewのサブクラスの名前は、単に、TextViewとなる。 下記が、TextViewクラスを生成する方法だ。 TextView tv = new TextView(this); TextViewクラスのコンストラクタに渡している引数は、Android Contextのインスタンスである。Contextは単にシステムへ渡すハンドルである。そのハンドルは、リソースを解決したり、データベースや設定などにアクセスするために供給されている。ActivityクラスはContextから派生している。それゆえ、HelloAndroidクラスはActivityクラスのサブクラスであり、コンテキストであるのだ。だから、"this"参照をTextViewに渡すことができる。 一度TextViewを生成してしまえば、何を表示するのか伝えてあげる必要がある。 tv.setText("Hello, Android"); とくに特筆すべきことはないだろう。 ここまでで、TextViewを生成し、どんなテキストをディスプレイに表示すべきかを伝えた。最後のステップは、実際のディスプレイに、TextViewをつなぐことである。こんな感じに。 setContentView(tv); ActivityのsetContentViewメソッドは、ActivityのUIにどのViewが関連付けられるべきかをシステムに通知する。もし、Activityがこのメソッドをコールしないなら、UIは何も表示されないし、システムは真っ白けの画面を表示することだろう。今のところの目的は、何でもいいからテキストを表示することなので、作ったばかりのTextViewを渡してしまえばよい。 これで、アンドロイドでの"Hello, World"のコーディングは完了だ。もちろん、つぎは、実行させるてみよう。 コードの実行 Hello, Android Eclipseプラグインのおかげで、とても簡単にあなたのアプリケーションを実行することができる。メニューからRunを選択すると、下のようなダイアログが表示される。 次に、"Android Application"を選択しよう。そして、アイコンの左上をクリックしよう(+印とともに、画面に描画されているやつだ)。それとも、単に、"Android Application"をダブルクリックするだけでいい。"New_configuration"と名づけられた新しいランチャーダイアログが表示されるはずだ。 名前を何か適当なもの、たとえば、"Hello, Android"と変更して、"Browse"ボタンを押下して、あなたのプロジェクトを選択しよう。(もしあなたが2個以上のAndroidプロジェクトをEclipseで開いていたら、正しいものを選択しているかどうか確かめてほしい)プラグインは、自動的に、あなたのプロジェクトからActivityのサブクラスをスキャンして、"Activity "ラベルの下のドロップダウンリストに追加してくれる。デフォルトでは、あなたは、"Hello, Android"プロジェクトしか作っていないから、単に続けるだけでいい。 "Apply"ボタンを押下しよう。こういう風になる。 これで成功だ。"Run"ボタンを押してみよう。Androidエミュレータがスタートするはずだ。起動完了したら、あなたのアプリケーションが表示されるだろう。今までいったことが全部できていれば、次のような画面を目にすることができるはずだ。 これが、Androidにおける、"Hello, World"だ。とっても簡単だったろう?チュートリアルの次のセクションでは、Androidについて、より詳細な価値ある情報を知ることができるだろう。 UIをXMLレイアウトにアップグレードする。 さっき終わらせた。"Hello, World"サンプルは、いわゆる"programmatic"なUIレイアウトだ。このことは、UI記述をソースコードに直接書いてビルドしているってことだ。UIプログラミングがおわっても、変更にもろいやりかただってことはわかるだろう。たとえば、ちょっとしたUIのレイアウトの変更が、大きなソースコードの変更につながったりとか。Viewクラス同士のつながりは忘れやすいし、それがデバッグに時間を浪費することにつながる。 そんなわけで、Androidでは、もうひとつのUI構築のモデルを提供している。それが、XMLベースのレイアウトファイルだ。このコンセプトを説明するには一例をあげるのが一番だね。ここに、今終わらせたプログラミングベースのものと同じ振る舞いをするXMLレイアウトファイルを用意しよう。 ?xml version="1.0" encoding="utf-8"? TextView xmlns android="http //schemas.android.com/apk/res/android" android layout_width="fill_parent" android layout_height="fill_parent" android text="Hello, Android"/ たいていの、Andorid XMLレイアウトファイルの構成はシンプルだ。タグのツリーからなっており、それぞれのタグは、Viewクラスの名前になっている。この例で言えば、TextView一要素だけからなる シンプルなツリー構成だ。XMLレイアウトファイルには、タグ名として、Viewクラスを継承したものなら、自作のものでも何でも使える。これは、Webの構築モデルからインスパイアされたものなんだ。ちょうど、UIの表示とデータを処理するアプリケーションロジックを分離できるみたいに。 この例では、4つのXML属性がある。以下が、その意味の要約だ。 Attribute 意味 xmlns android XMLネームスペース定義だ。これは、Androidネームスペースで定義された、共通の属性を参照するということをAndroidツールに知らせている。 android layout_width この要素は、このViewが消費する画面幅がどれくらいなのかを定義する要素だ。この場合で言えば、"fill_parent"を使っているが、画面全体の幅を指定しているってことになる。 android layout_height android layout_widthto同じようなものだが、これは高さを意味する。 android text これは、TextViewの内容をセットするものだ。この例でいえば、いつもの"Hello, Android"だ。 そう。XMLレイアウトはざっとこんな感じだ。けど、どうやってそれを組み込むと思う? resディレクトリの下に入れればOKだ。"res"は"resources"をはしょったもので、そのディレクトリには、アプリケーションに必要なコード以外の一式を詰め込んでおけばいい。たとえば、イメージや、ローカライズされた文字列や、XMLレイアウトファイルだ。 Eclipseプラグインは、XMLファイルを作成してくれる。上の例では単にそれを使わなかっただけだ。Package Explorerで、resフォルダの内容を開いて、main.xmlファイルに編集して、上のテキストをコピーして、変更を保存しよう。 Package Explorerのソースコードフォルダから、R.javaファイルを開いてみよう。次のようなものが表示されるはずだ。 public final class R { public static final class attr { }; public static final class drawable { public static final int icon=0x7f020000; }; public static final class layout { public static final int main=0x7f030000; }; public static final class string { public static final int app_name=0x7f040000; }; }; プロジェクトのR.javaファイルに全てのリソースにインデックスが定義されている。このクラスをソースコードのなかで、プロジェクトで使用しているリソースへの参照の速記方法の一つとしてつかえばいい。これはEclipseのようなコードコンプリート機能を持つIDEでは特にパワフルだ。なぜなら、その機能のおかげで、すばやく、インタラクティブに探しているリソース参照を配置することができるからだ。 この例で注意すべきは、"layout"と命名されたインナークラスと、"main"と命名されたフィールドだ。新しいXMLレイアウトファイルを追加したら、エクリプスプラグインは通知し、R.javaファイルを再生成するだろう。つまり、他のリソースファイルをプロジェクトに追加するなら、R.javaファイルも更新されるのがわかるだろう。 最後に、あなたのHelloAndroidコードを、ハードコーディングされたバージョンからXMLのUIを使うように修正する必要がある。新しいクラスはこのようになるはずだ。見ればわかるように、ソースコードはよりシンプルになった。 public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); } } この変更を加える際に、コピーアンドペーストをしないことだ。Rクラスに働くコードコンプリート機能を試してみよう。これがかなり使える機能だってことがわかるだろう。 変更を加えたら、アプリケーションを再起動してみよう。することと言えば、緑のRunと書かれた矢印アイコンをクリックし、Run - Run Last Launchedをメニューから選択するだけだ。すると、さっき見たのと同じものが表示されるはずだ!結局のところ、2つの違ったレイアウトのアプローチは同じ結果をもたらすわけだ。 XMLレイアウトの作成はもっと説明することがあるんだが、今ここで説明してもしょうがない。このアプローチのもっと詳細な情報のためには"Implementing a Uset Interface"ドキュメントを読んで欲しい。 プロジェクトのデバッグ EclipseのAndroidプラグインは、Eclipseデバッガにうまく統合されてもいる。それをデモするために、コードにバグを混入させてみよう。次のようにHelloAndroidのソースコードに変更を入れて欲しい。 public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Object o = null; o.toString(); setContentView(R.layout.main); } } これは単に、NullPointerExceptionを入れてみただけだ。もう一度アプリケーションを実行させると、すぐに次のような画面を見るだろう。 何がおかしかったのかを特定するために、ソースコードの"Object o = null;"と書かれた行にブレークを貼ってみよう。(ブレークポイントを貼るためには、Eclipseの行番号の左の領域をダブルクリックすればいい)それから、Run - Debug Last Launched を選択してデバッグモードに入ろう。エミュレータが再起動すると、セットしたブレークに到達した時点でアプリケーションは中断する。EclipseのDebug Perspectiveを通してどんなアプリケーションでもステップ実行ができる。 Eclipseなしでプロジェクトを作成する。 もし、あなたがEclipseを使用しないなら(たとえば別のIDEがいいだとか、そもそも単にテキストエディタとコマンドラインツールが使いたいなら)Eclipseプラグインはあなたの助けにはならないだろう。でも心配しなくていい。Eclipseを使用しないからといって、あなたは何も便利さを失わないのだ。 EclipseのAndroidプラグインは、Android SDKに同梱されているツール群のラッパーにすぎないからだ。(ツール群とは、エミュレータや、aapt,adb,ddmsなどだ。ほかにもどこかにドキュメントがあるだろう)それゆえ、他のツールを使って、それらをラッピングすることは可能だ。たとえば ant のビルドファイルを使うなどして。 Android SDKは、"activityCreator.py"とネーミングされたPythonスクリプトも含んでいる。それは、antと互換性のあるbuild.xmlファイルはもちろんプロジェクトに必要なソースコードとスタブディレクトリを全て作成してくれる。これは、コマンドラインでプロジェクトをビルドできることと、あなたの好きな他のIDEと統合できることを意味する。 たとえば、Eclipseを通してさっき作ったものと似たようなHelloAndroidプロジェクトを作成するためには、次のコマンドを使えばいい。 activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid プロジェクトをビルドするためには、 ant コマンドを走らせればいい。コマンドが成功すれば、 bin フォルダの下にHelloAndroid.apkと名づけられたがファイルがあるはずだ。この.apkファイルは、Android Packageで、 adb ツールを使ってエミュレータにインストールして実行できる。 これらのツールについての使用方法をもっと知りたければ、上で紹介されたドキュメントを読んで欲しい。
https://w.atwiki.jp/conn/pages/18.html
Androidプロジェクト Androidプロジェクトの中身を簡単にまとめます。 ネタ元はAndroid SDKのドキュメントと、EclipseのAndroid SDK Pluginで自動生成された雛形の動作検証です。 プロジェクトのディレクトリ構成 Androidアプリを作るなら、ごく当たり前の知識として知っておく必要があります。 プロジェクトルート src ソースコード用ディレクトリ gen ADTが自動生成したファイル用ディレクトリ。R.javaやAIDLファイルから生成されたファイルが該当。 assets 生のデータファイルを保存する。ビルド時にapkファイルへ組み入れられ、ファイルシステムと変わりない方法でアクセスできる。 bin ビルドされたファイル用ディレクトリres ビルドされたリソースファイル用ディレクトリ libs ライブラリファイル用ディレクトリ res リソースファイル用ディレクトリdrawable-**** 画像ファイルや、レイヤー定義などを記載した描画用定義XMLファイルを保存する。画面解像度ごとにディレクトリが分かれているモヨウ。 layout レイアウト定義XMLファイル用ディレクトリ menu メニュー定義XMLファイル用ディレクトリ values 文字列や設定情報等用のディレクトリ。resディレクトリ内の他のXMLファイルはファイル名ベースでアクセスするのに対し、XML要素を解析し、それぞれの要素名をR.javaファイルに展開しアクセスする点に違いがある。 raw 生のデータファイルを保存する。assetsディレクトリとの違いはアクセス方法で、こちらはR.javaファイルを通じてリソースファイルとしてアクセスする。 AndroidManufest.xml アプリの基本情報を定義する。アプリバージョン、製作者、対応・必要APIバージョン、必要な外部ライブラリなどなど、様々な情報を定義する。奥が深い。 リソースファイル用ディレクトリと、マニフェストファイルは、特に勉強が必要。 詳細が知りたければSDK Managerでドキュメントをインストールし読んでみると良い、全部英語だけども。 雛形プロジェクトの動作 ADTでプロジェクトを作成すると、HelloWorldが表示される簡単なアプリが出来上がった状態になっている。 その動作の細かな点をつついて、それぞれのディレクトリに格納されたファイルが どのように連携するかを調べてみた。 AndroidManifest.xmlを解析しアプリを起動、アクティビティの定義を読み込む。 XMLファイル中では「@」を用いることでリソースにアクセスすることができ、アプリケーション名やスタイル定義の指定に使用されている。 application android icon="@drawable/ic_launcher" <<<res/drawable-****/ic_launcher.pngファイルを参照 android label="@string/app_name" <<<res/valus/strings.xml内の文字列を参照 android theme="@style/AppTheme" <<<res/valus/style.xml内の定義を参照 activity android name=".MainActivity" <<<ここで起動するアクティビティを指定 android label="@string/title_activity_main" <<<res/valus/strings.xml内の文字列を参照 intent-filter action android name="android.intent.action.MAIN" / category android name="android.intent.category.LAUNCHER" / /intent-filter /activity /application binディレクトリ内のデフォルトアクティビティを起動する。 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); <<<レイアウト定義ファイルを指定 } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); <<<メニュー定義ファイルを指定 return true; } } レイアウト定義ファイル res/layout/activity_main.xml メニュー定義ファイル res/menu/activity_main.xml Activityの動作に従い読み込まれる。 それぞれの定義ファイルにはリソースへのアクセスが指定されている。 TextView android layout_width="wrap_content" android layout_height="wrap_content" android layout_centerHorizontal="true" android layout_centerVertical="true" android text="@string/hello_world" tools context=".MainActivity" / menu xmlns android="http //schemas.android.com/apk/res/android" item android id="@+id/menu_settings" android title="@string/menu_settings" android orderInCategory="100" android showAsAction="never" / /menu 以上が簡単な動作解説です。 マニフェストファイルが起点となり、アクティビティが実際の動作を担っており、 動作時に様々な箇所でリソース内の定義ファイルが読み込まれているのが分かる。 Webアプリケーションなどに比べると非常に単純な構成となっているが、アプリが大きくなるとファイルが増え、管理が難しくなりがち。だがディレクトリ構成の原則に従いアプリを作成することで、誰にでも分かりやすい、無論のこと自分自身にも分かりやすい管理しやすい構成にできる。
https://w.atwiki.jp/android/pages/48.html
2008/04/15 Android Developer Challenge締め切り。 2008/03/25 「Android」搭載端末、早くも2008年秋には登場か?--グーグル幹部が発言 2008/03/23 ドコモ携帯、基本ソフトの設計簡素化へ DoCoMoでAndroid採用が決定? 2008/02/18 WCMフォーラムの会員一覧が更新。OHA企業が参加 WILLCOMコアモジュールフォーラムの会員にOHA参加企業のリビングイメージという会社が参入した模様。WILLCOMからAndroid携帯が出る可能性が出てきた。 2008/02/12 Android SDKアップデート 結構変わってます。今までのアプリを新しいSDK(m5-rc14)で動かすには再コンパイル(?)が必要です。 2008/02/11 Mobile World CongressにてAndroidの実機がぞくぞく出展された 【MWC2008】「Android」搭載プロトタイプ、半導体メーカーがこぞって出展 Android実機を披露した主な企業米フリースケール・セミコンダクタ NECエレクトロニクス 米クアルコム ルネサス テクノロジ 米テキサス・インスツルメンツ 2008/02/04 ハドソン、ゲームソフトをグーグル携帯に提供 ゲーム開発のハドソンは米グーグルが提供予定の携帯電話ソフトウエア群「アンドロイド」向けに、ゲームソフトなどの娯楽コンテンツ(情報の内容)を開発する。グーグルの携帯電話はNTTドコモなどが導入を検討しているが、国内コンテンツ大手の参入が明らかになったのは初めて。 2008/01/28 Deadline Extension for the Android Developer Challenge コンテストの締め切り延長と詳細日程の発表される (この時点から)数週間以内にUIとAPIが強化されたSDKをリリースするとのこと。 2008/04/14 Deadline to submit applications for judging 応募締め切り 2008/05/05 Announcement of the 50 first round winners, who will be eligible for the final round 1回戦の上位50人を発表 2008/06/30 Deadline for the 50 winners of the first round to submit for the final round 最終戦の締め切り 2008/07/21 Announcement of the grand prize winner and runner-up 優勝者および優秀者の発表 2008/01/24 ドコモとグーグル、iモード端末でグーグルのサービス利用可能に 「Androidプラットフォームに関しても両社で協力し、ドコモでの商用化を含む検討が進められる」と発表 2008/01/14 Google Android対応の初アプリケーション登場 初ってことはないと思うけど、OHA参加以外の企業で実機で自社アプリを動かしたのは初? 2007/12/28 ビルド済みバイナリでもAndroid Zaurusが可能に 2007/12/25 ドコモ、グーグルと提携・ネット検索メールなど、新サービス開発 この時点ではAndroidとの係わりは不明。 2007/12/15 Android SDKアップデート(英語) 2007/12/6 WILLCOMコアモジュールフォーラム、AndroidでW-SIMの通話デモ Androidをザウルスに載せた(英語) 2007/11/27 WILLCOMコアモジュールフォーラム、Androidの動作を確認 2007/11/17 Androidでスーパーマリオ(ファミコン/NES)が動いた。 2007/11/12 GoogleのAndroidプラットフォーム SDK公開 Google、Android向けアプリ開発コンテストを主催、賞金1000万ドル コンテストまとめ 2007/11/5 Googleほか34社、オープン携帯プラットフォーム「Android」を発表