約 5,201,332 件
https://w.atwiki.jp/sevenlives/pages/1564.html
Linux Kernel? Hardware Abstraction Layer Androidランタイム? Java API フレームワーク? OHA? AIDL? Dalvik VM Androidランタイム? ART? アンドロイド・マーケット? Intent? Over The Air? ブラウザ(Android) Droid Font? Board Support Package? Trebleプロジェクト? Google Play? Android Studio? Android SDK? ■ アプリケーション・フレームワーク Activity Manager? Window Manager? Content Provider? Package Manager? View System? Resource Manager? Location Manager? Notification Manager? ■ Android UI Action Bar Activity(Android) Fragments(Android) Droid Font? Android 2.X? Android 3.X? Android 4.X Android Cupcake? Android Donut? Android Eclair? Android Froyo? Android Gingerbread? Android Honeycomb? Android Ice Cream Sandwich? Android Jelly Bean? Android KitKat? Android Lollipop? Android Marshmallow? Android Nougat? Android Oreo Google HAXM
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/interaction_android/pages/15.html
@Android Project ここでは、大阪工業大学情報科学部のプロジェクトの1つであるAndroid Project Team[○○]の情報共有Wikiです. 基本的には、何かあればこちらを編集して、情報共有を行っていきたいと思います. 学内課題サイト(学内課題 http //interactiondesign.web.fc2.com/index.html) @目的(作成するもの) @会議結果 第1回 第2回 @方針 基本的にLineかSkypeで行う(リーダーのidea) 時間帯は @メンバー リーダー堤下 裕介 サブリーダー高 潔 プログラムリーダー野田 尚吾 デザインリーダー金元 優香 ビジネスモデルリーダー黒澤 一郎 他のメンバー大井 翔 幸 孝明 加藤 嘉寿 @デザイン @セットアップ セットアップページ @アンケートページ アンケート結果 @更新情報 日 付 内 容 2012/08/01 AndroidProjectページ開設 2012/08/03 Androidセットアップページ開設 2012/08/15 アンケート結果ページ開設
https://w.atwiki.jp/conn/pages/21.html
このページは現在作成中です Androidアプリの基本構成 Androidアプリは幾つかのコンポーネントを組み合わせて作成する。コンポーネントはその役割ごとに幾つかに分類される。 Androidアプリを構成する4つのコンポーネント もっとも基本的なコンポートネントは次の4種類。 Activities 画面。アクティビティはそれぞれが独立したコンポーネントとして作成され、その組み合わせでアプリを動作させる。別のアプリから、また別のアプリ内のアクティビティを動作させることも可能。 Services 裏側でこっそり働く子。ユーザーインターフェースは持たない。ネットワークからデータをダウンロードしてきたり、別のアプリを操作中に音楽ファイルを再生したり、ユーザーの操作を邪魔することは無い。アクティビティのような他のコンポーネントから起動され、動作を指定される、サービス精神の塊のような存在。 Content Providers アプリケーションのデータへのアクセス共有を管理しデータの読み書きを行う。ファイルシステムやSQLiteなどのDB、インターネット上のデータなど、さまざまな場所に対応する。許可すれば他のアプリからデータの読み書きが可能だし、その逆も可能。動画を配信してくれる業者ではない。 Broadcast Reciever システムからの通知を受け取ったり、システム全体へ通知を発信したりする。例えばスリープに入った、バッテリーが切れ掛かっている、写真を撮った、などなどの通知を受けたり、発信したりできる。 電話を自動録音するアプリなんかだと、電話が掛かってきたという通知を受けサービスを起動し録音する、という使い方が想定される。 他にもコンポーネントには分類されないが、Androidアプリを構成する重要な要素がある。 マニフェスト アプリに属するコンポーネントを規定するのがマニフェストファイル。XML形式で記述する。 Intentフィルターで、アプリのエントリポイント(初期起動するアクティビティ)を指定する。 例:雛形アプリの AndroidManifest.xml。Intentフィルターが Activityの子要素で指定されている。 activity android name=".MainActivity" android label="@string/title_activity_main" intent-filter action android name="android.intent.action.MAIN" / category android name="android.intent.category.LAUNCHER" / /intent-filter /activity 他にも幾つかのIntent Filterアクションおよびカテゴリーがあるが、アプリアイコンから起動する場合はこの指定が必要だと覚えておけばよい。 他のアプリから 特定の Intentアクションにより起動されるアプリは、別の指定を追加する必要がある。 Intent(インテント:意図) 特定のアクティビティを指定、または「何をしたいのか」を指定し別のアプリを起動する。 同アプリ内のアクティビティ間連携にも使用される。 例:明示的に特定のアクティビティを指定し、EditTextボックスの入力値を渡している Intent intent = new Intent(this, DisplayActivity.class); EditText editText = (EditText) findViewById(R.id.input_message); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); startActivity(intent); 例:データ表示を指定し、Webページを開く Uri uri = Uri.parse("http //www.android.com"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 簡略化のため省いているが、通常は事前に実行可能なIntentかチェックするためPackageManagerを使用する。この Intentで開かれるアプリは Intent Filterにて ACTION_VIEWアクションを受け付ける指定があるものの中から選ばれる。 リソース アプリが利用する画像ファイル、レイアウト定義、言語ごとの文字列ファイルなどをひとまとめにし、Rクラスを通じた共通のアクセス方法を提供する。画像、動画、音声などのデータファイル、XMLファイルで構成される。 リソースは異なる解像度、画面サイズ、言語に対応するディレクトリに分けて構成することで自動的に対応するディレクトリ内のファイルが利用されるように最適化される。詳細はこちら その他 基本の4コンポーネント種とリソースの他に、これらをサポートするコンポーネントが幾つかある。 Intent Fragment
https://w.atwiki.jp/android/pages/36.html
Androidアプリケーション解体新書 Androidアプリケーションには以下の4つの構成ブロックがあります。 Activity(アクティビティ) Intent Receiver(インテントレシーバー) Service(サービス) Content Provider(コンテンツプロバイダ) すべてのアプリケーションが上記の4つ全てが必要なわけではなく、いくつかを組合せてアプリケーションを作成します。 まず、あなたのアプリケーションにどんなコンポーネントが必要かを決めて、AndroidManifest.xmlと呼ばれているファイルに記述する必要があります。 これは、あなたのアプリケーションの能力と必要とするコンポーネントを宣言するXMLファイルです。 詳細はAndroidManifest.xml?を見てください。 Activity(アクティビティ) アクティビティは、4つのAndroidの構成ブロックの中で最も一般的です。アクティビティは、通常あなたのアプリケーションの一つの画面を意味します。各々のアクティビティは、Activity?ベースクラスを拡張した単独のクラスとして実装されます。 あなたのクラスはViews?から成るユーザインタフェースを表示することや、イベントに対応しています。 大部分のアプリケーションは、複数の画面から構成されています。 たとえば、テキストメッセージングアプリケーションは、送信先のコンタクトリスト画面、メッセージ作成画面、メッセージ閲覧画面、設定変更画面を持っているかもしれません。 これらのスクリーンの各々は、アクティビティとして実行されます。 新しいアクティビティの起動によって別のスクリーンに移る。アクティビティは前のアクティビティに値を返す場合があります。たとえば、ユーザーに写真を選ばせるアクティビティはコール元に選ばれた写真を返します。 新しいスクリーンが開くとき、前画面はヒストリースタックの上に中断されて、置かれます。 ユーザーは、ヒストリーで直前にオープンされたスクリーンによって後ろに操縦することができます。 スクリーンは、彼らが残ることが不適当であるヒストリースタックから取り外されるほうを選ぶこともできます。アンドロイドは、ホームスクリーンから起動されるアプリケーションごとに、ヒストリースタックを保持します。 Intent and Intent Filters(インテントとインテントフィルター) アンドロイドは、スクリーンからスクリーンへ移るインテントと呼ばれている特別なクラスを使用します。インテントは、アプリケーションが何がされることを望むかについて述べます。インテントデータ構造の2つの最も重要な部分は、作用する行動とデータです。行動のための典型的価値はMAIN(アクティビティの前のドア)、VIEW、PICK、EDIT、その他です。そして、データはURIとして表されます。たとえば、人への連絡先を見るために、あなたはその人を代表しているURIに、VIEWアクションとデータセットでインテントをつくるでしょう。 IntentFilterと呼ばれている関連したクラスが、あります。インテントが効果的に何かする要請である間、インテントフィルタはインテントアクティビティ(または、インテントレシーバ、下記参照)が取り扱うことができるものの説明です。人への連絡先を示すことができるアクティビティは、人を代表しているデータに適用されるとき、それがアクションVIEWを取り扱う方法を知っていると言ったインテントフィルタを発行します。アクティビティは、彼らのIntentFiltersをAndroidManifest.xmlファイルで発表します。 映るためにスクリーンから操縦することは、インテントを解決することによって達成されます。前方へ操縦するために、アクティビティはstartActivity(myIntentな)を呼びます。システムは、それからすべてのインストールされたアプリケーションのためにインテントフィルタを見て、試合が最もインテントフィルタをmyIntentする活動を選択します。新しいアクティビティは意図を知らされます。それはそれがラウンチされる原因になります。startActivityが呼ばれるとき、インテントを分解するプロセスは実行時で起こります。そして、それは2つの鍵となるベネフィットを提供します: アクティビティは、単にインテントのリクエストフォームの中にを作ることによって、他の構成要素から機能を再利用することができます アクティビティは、等しいインテントフィルターでいつでも新しいアクティビティと取り替えられることができます Intent Receiver(インテントレシーバー) 例えば、電話が着信した時、ネットワークが利用可能になった時、真夜中になった時といった外部のイベントに反応するアプリケーションを作成したい時には、IntentReceiverを使えます。インテントレシーバーはUIを表示しません。ただし、注意を引くことが発生したらユーザーに知らせるために、インテントレシーバーはNorificationManagerを使うでしょう。インテントレシーバーは、AndroidManifest.xmlに登録されますが、Context.registerReceiver()を使うことによって、コード中で登録することもできます。アプリケーションは、コールされる時に、そのアプリケーションのインテントレシーバーが動いている必要はありません; システムは、必要であればそのアプリケーションを起動し、インテントレシーバーが開始されます。アプリケーションは、Context.broadcastIntent()を使うことによって、そのアプリケーション独自のインテントを他のインテントレシーバーにブロードキャストすることもできます。 Service(サービス) サービスは、永続的に、UIなしで動くコードです。サービスのよい例として、プレイリストから曲を再生するメディアプレイヤーがあります。メディアプレイヤーアプリケーションでは、多分、ユーザーに曲を選択させたり、選択された曲の再生を開始させたりするための、1個かそれ以上のアクティビティがあるでしょう。しかし、ユーザーは、新たな画面に移動した後でも、音楽を再生し続けることを期待するでしょうから、音楽再生自体がアクティビティによって制御されるべきではありません。このケースでは、メディアプレイヤーアクティビティはバックグラウンドで音楽を再生し続けるために、Context.startService()を使うことによって、サービスを起動します。システムは音楽が終わるまで再生サービスを走らせつづけます。(システムでサービスにプライオリティを与える方法についての詳細は、Androidアプリケーションのライフサイクル?を参照してください。)Context.bindService()メソッドでサービスに接続できる(そしてサービスがまだ走っていなければ、起動できる)ことに注意してください。サービスに接続中は、そのサービスによって公開されたインタフェースを介して、あなたはそれと通信できます。音楽サービスにおいてこのことは、あなたに音楽の一時停止や巻き戻し等の余地を与えるかもしれないことを示します。 Content Provider アプリケーションは、それらのデータをファイル、SQLiteデータベースまたは意味をなす他のどのメカニズムにも格納することができます。 アプリケーションのデータが他のアプリケーションと共有したい場合、コンテントプロバイダーが使えます。 コンテントプロバイダーは、他のアプリケーションをそのコンテントプロバイダーによって取り扱われるデータの型を格納・読み出しさせるために方法の標準的なセットをインプリメントするクラスです。 コンテントプロバイダーに関するより多くの詳細を得るために、Accessing Content Providersを見てください。
https://w.atwiki.jp/devandroidknowledge/pages/14.html
≪Android Tips≫ ◆なんと、Androidには温度センサーが付いているみたい! 【温度センサーから温度を取得するには(概要)】 Sensorインスタンスの生成 Sensorインスタンスに温度センサーを指定する SensorManagerインスタンスにリスナ―指定する。( 温度変化があったごとに記録するには、左記にプラスして下記が必要。) Andoridのセンサーには加速度センサーとか磁気センサーなどがある リスナーに設定すると、センサーの値が変更されたタイミングでonSensorhangedというメソッドが呼び出され、センサーの値を取得することが出来る。 SensorManagerインスタンス センサーを管理するためのSensor系のインスタンス。センサーを管理するためのメソッドも用意されている。 【温度センサーから温度を取得するには(詳細)】 getSystemServiceメソッドでSensorManagerインスタンスを取得 SensorManager.getDefaultSensorメソッドにSensor.TYPE_TEMPERATURE(温度センサー)を指定する。 SensorManager.registerListenerメソッドに②で生成したSensorインスタンスを指定。 by nakamura ◆GoogleMap活用法系 GoogleMap使用準備 GooglMapAPIのKeyを取得する。 AndroidManifestにインターネット接続のパーミッションとGooglMaoAPIを利用する記述を行う。 GoogleMap使用準備 さぁ、準備が出来たら画面に表示だ! 画面に表示させるにはあ以下のことを行う必要がある。 MapActibityクラスの継承 そのクラスの中でonCreateするときにsetContentView(R.layout.main)で地図をセットする。 ※main.xmlにMapViewを配置しておく。 ※MapView・・・Googleから取得したAPIキーの記述や、地図に関する表示をクリックの可否の記述を行う isRouteDisplayedメソッドをオーバーライドしてfalseを返すようにする ※isRouteDisplayedメソッド・・・?? ※MapViewインスタンスからマップ表示させることも可能 MapView mapView = new MapView(this,getResources().getString(取得したキー)); mapView.setEnabled(true); mapView.setClickable(true); setContentView(mapView); by nakamura ◆画面系いろいろ入門編 1画面につき1つActivityクラスが対応する。 バックグラウンドの処理はServiceクラスに実装する。 AvtivityからService,ServiceからServiceを呼び出す際はIntentを使う。 アプリ起動時の画面はAndroidManifest.xmlのintent-filterに設定する。 参考にしたページ Androidアプリ作成のための基礎知識 Androidプログラミング入門 Android入門
https://w.atwiki.jp/bagpack/pages/14.html
Google Android プログラミング入門メモ Androiのアプリケーションを構成する4大要素 コンフィギュレーションの変化 Intentdata category extra type flag Androiのアプリケーションを構成する4大要素 Activity ユーザとアプリケーションとの間で行われるやりとり全般を仲介する Service ユーザの画面に対する操作に依存することなく処理を実行する Content Provider アプリケーション間で情報を共有する Intent アプリケーションの実行時に各要素を紐づける コンフィギュレーションの変化 アクティビティは、コンフィグレーションが変更された際に、ライフサイクルのプロセスに従って終了し、再生成される。 [終了サイクル]onPause - onStop - onDestroy [生成サイクル]onCreate- onStart - onResume Intent インテントには「何をやりたいのか」という意思表示(action, data)や、そのインテントを送り届ける宛先の情報などが詰まっている。 インテントの構成は、次のようになっている。 分類 名称 説明 基本構造 action インテントが期待しているふるまいや、インテントが知らせたい事柄 data インテントの取扱い方に関する情報 基本情報を補足する情報 category アクションに対する追加情報 type データの形式 flag アクティビティの起動方法 アクションは単なる文字列にすぎないため、他のアプリケーションで使われるアクションと値が重複しないようにユニークでなければいけない。アプリケーションのパッケージ名から命名することが推奨されている。 data データは、インテントの取扱い方に関する情報をUriクラスとして表現したもの。 category カテゴリとは、アクションに対する追加情報を示すもので、アクションとセットで用いられる。 extra extraとは、他のオブジェクトに与えたい情報を示すBundleクラスのインスタンス。 Bundleクラスは文字列がキーとなるHashMapを内部的に持っている。 引数みたいなノリで使える。 関連メソッド Intent putExtra Bundle getExtra type タイプとは、インテントが表現しているデータの型を、MIMEの形式で示したもの。 flag フラグとは、当該インテントを取り扱えるアクティビティが起動されるさいに、どのように起動してほしいかの要望をシステムに対して伝えるもの。
https://w.atwiki.jp/api_programming/pages/195.html
下位ページ インテントとインテントフィルタ サービス(Service) ストレージオプション フラグメント(Fragment) プロセスとスレッド(processes and threads) リストビュー(List View) レイアウト(Layout) 入力コントロール(Controls) 設定(Setting) 通知(Notification) Content スピナーコントロールの設定レイアウトの準備 選択肢の設定string.xmlでの設定 プログラム側から値を選択する アクティビティアプリの閉じられ方で、挙動が異なる アクションバーの代わりに、ツールバーを使うアクションバーを消す ツールバーをレイアウトに追加する Activity内で、アクションバーの代わりに使う記述をする スライドメニューを実装するドロワーレイアウトを作成する ドロワービューの中身を準備するListViewで作る 別のXMLファイルで作る ドロワーのオープン・クローズを実装する バックグラウンド処理(サービス) 閉じられても動作するサービスを動かすServiceクラスの作成 Activityから、作成したサービスを動かす 加速度センサの情報を受ける 回転角の情報を受け取る回転角の解釈 画面の回転を抑制するAndroidManifest.xmlで抑制する 動的に(プラグラム内で)で抑制する インテントにオブジェクトの情報を乗っけるparcelable をインプリメントしたクラスをつくるParcelable.Creater フィールドの実装 BundleやIntentに情報を乗せる Activity側で受ける 複数の情報をリストにして表示する バイブレーションを一定時間、作動させるパーミッションの追加 Vibratorオブジェクトを生成する vibrateを実行する 通知バーにバックグラウンド起動中の表示を出す 裏返したときの方向で、記録を分ける メニューのバーを設定するメニューリソースを準備するフォルダの作成 リソースファイルの作成 設定したメニューファイルを、Activityのメニューバーに評させる メニューの選択を受け取る処理を作る チェックボックスを動作させる 設定画面を設定する/設定情報をローカルストレージに残す 記録内容をGoogleスプレッドシートに記録する 記録内容をGoogleカレンダーに記録するブラウザでURLを開く ブラウザを開くURIとして、認証ページを指定する リダイレクトを受け取る 受け取ったリダイレクトをデータに紐解く codeを送って、tokenを受け取る tokenを保存する 終了時間と開始時間から、時間の計算をする リストビューで独自レイアウトを設定する USBデバッグ リリースビルド スピナーコントロールの設定 [部分編集] レイアウトの準備 Spinner android id="@+id/planets_spinner" android layout_width="fill_parent" android layout_height="wrap_content" / 選択肢の設定 string.xmlでの設定 まずは、string.xmlに文字配列を作る string-array name="planets_array" item Mercury /item item Venus /item item Earth /item /string-array この文字配列をアダプタにして、スピナーコントロールにアダプタをするリソースのアダプタ化には、ArrayApapter.createFromResource を使用できる。simple_spinner_item はデフォルト外観を設定している。通常はこれで良し。 setDropDownViewResource(int) は選択時に一覧を表示するのに使う。なくても一応ドロップダウンは出てくるが、ちょっとしょぼい? Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter CharSequence adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); createFromResource - ArrayAdapter | Android Developers setDropDownViewResource - ArrayAdapter | Android Developers プログラム側から値を選択する Spinner.setSelection で位置を指定する。その位置を取得するにはAdapterを使う。 使っているアダプタを取得するobjSpinner.getAdapter でアダプタを取得できる objAdapter.getPosition("...") でセレクタの位置を取得値が見つからなかったら -1 が返る objSpinner.setSelection に先程取得した位置を設定する ArrayAdapter spinnerAdapter = (ArrayAdapter) objSpinner.getAdapter(); int i = spinnerAdapter.getPosition("value"); objSpinner.setSelection(i); getAdapter - AbsSpinner | Android Developers getPosition - ArrayAdapter | Android Developers setSelection - AbsSpinner | Android Developers アクティビティ アプリの閉じられ方で、挙動が異なる onDestroyが呼ばれない限りは、Serviceを使わずとも、 ↓にある通り、ホームボタンとバックボタンでアプリケーションから離れた場合で挙動が違う。 https //kokufu.blogspot.jp/2011/03/activity.html 説明として、 ホームボタン:ホームアプリケーションが起動している バックボタン:Activityスタックからポップしている と書いてあったが、気持ち悪いのは、□ボタンを押すとあたかもまだ生きているかのように、アプリケーションリストに表示されるから。画面上に残っているが実際には onDestroy で消えている。 このあたりが、「アプリケーションをスワイプして消しても消さなくてもメモリにはそれほど影響しない」ということなんだろうか。 アクションバーの代わりに、ツールバーを使う [部分編集] 今後の拡張性から、アクションバーよりツールバーを使ったほうが良い、という記述をちょこちょこ見かけるが、Android Studioでプロジェクトを作ると、基本はアクションバーが設定されている。これをツールバーに置き換える。 アプリバーの追加 | Android Developers Toolbar | Android Developers AndroidのToolBar(新しいActionBar)メモ | Qiita アクションバーを消す res/values/styles.xmlで AppThemeのテーマを変更する style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" ツールバーをレイアウトに追加する android.support.v7.widget.Toolbar android id="@+id/toolbar" android layout_width="match_parent" android layout_height="wrap_content" / レイアウトの@android */* ,?attr/* ,?* ,?android attr/* の違い | Qiita Activity内で、アクションバーの代わりに使う記述をする /* ToolBarの設定 */ Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); toolbar.setTitleTextColor(Color.WHITE); // 設定をしておく setSupportActionBar(toolbar); // アクションバーの代わり、という設定 これを書かないと、画面上では何も表示されない(空間だけはある) スライドメニューを実装する [部分編集] NavigationDrawer が正式名称? DrawerLayout | Android Developers ナビゲーションドロワーの作成 | Android Developers ドロワーレイアウトを作成する レイアウトxmlにて、DrawerLayout オブジェクトをレイアウトのルートビューとして指定する。 ルートの中にドロワービューとメインビューを設定する順序はメインビューを先にする高さはルートに合わせる(match_parent) 次にドロワーのビューを指定するlayout_gravityを指定する(layout_gravity:どっちにくっつけるか、どちら方向から出てくるか?)右から左に出す場合にはstart layout_heightは親ビューと同じ高さを指定する layout_widthはすべての情報が見える幅を指定する ドロワービューの中身を準備する ListViewで作る ListViewの中に android layout_gravity="..." を入れないと、スライドで入ってくる設定にならず、重ねて見えている状態になる android background="#111" 背景がないと、中途半端にすけた状態で表示される。 別のXMLファイルで作る NavigationViewで作った場合、ヘッダ部分とメニュー部分をそれぞれレイアウトとメニューで作成する app headerLayout="@layout/drawer_header" app menu="@menu/drawer" ドロワーのオープン・クローズを実装する DrawerLayout にリスナーをセットする。このリスナーは DrawerLayout.DrawerListener を実装して、使う。 Activity にアクションバーがセットされている場合は ActionBarDrawerToggle が DrawerLayout.DrawerListener を実装する。 DrawerLayout mDrawerLayout = ...; ActionBarDrawerToggle mDrawerToggle; mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) { public void onDrawerClosed(View view) {...} public void onDrawerOpened(View drawerView) {...} }; // Set the drawer toggle as the DrawerListener mDrawerLayout.setDrawerListener(mDrawerToggle); 【Android】スライドして表示されるメニュー | Qiita Navigation Drawer の概要 | Android 開発入門 Navigation Drawer の基本的な実装方法 | Android 開発入門 バックグラウンド処理(サービス) サービス - Android Developers Androidアプリでのバックグラウンド処理と通知機能 | Android Studio 2で始めるアプリ開発入門 - CodeZine 流れ Serviceのサブクラスを作成する AndroidManifest.xmlにサービスを登録 サブクラスで、必要なクラスをオーバーライドする。次のあたり。onCreate() onStartCommand() onDestroy() アクティビティからサービスを起動する (きちっと止まるように設計しておく) 閉じられても動作するサービスを動かす バックグラウンドで動作させるためにはServiceを用いる。 Serviceクラスの作成 Activityのように、作成・開始などのイベントで動くが、おもに3つ。 onCreate onStartCommand onDestroy Service | Android Developers Activityから、作成したサービスを動かす startServiceで起動、stopService(stopSelf)で停止。忘れずにServiceを止めないと、いつまでも動き続ける。 startService、stopServiceなどには、インテントを準備して、サービスにそれをなげる形をとっている。 startService - Context | Android Developers stopService - Context | Android Developers stopSelf - Service | Android Developers 加速度センサの情報を受ける 回転角の情報を受け取る センサーは加速度まではそのまま読み取れるが、回転角は加速度情報、地磁気情報から計算する必要がある。まず getRotationMatrix で回転行列を求め、getOrientation で回転行列を回転角に変換する(計算する) getRotationMatric - SensorManager | Android Developers getOrientation - SensorManager | Android Developers 引数に取った2つの配列には、傾斜行列、回転行列(の情報)が計算されて入ってくる。情報が不要ならnullでよい。 回転角の解釈 正位置として Zは天を指す Yは磁北を指す Xは Y,Z の外積を指す 画面の回転を抑制する AndroidManifest.xmlで抑制する 回転させないActivityに android screenOrientation="portrait" を追加すると、縦向き固定になる activity | Android Developers 動的に(プラグラム内で)で抑制する Activity内で、setRequestedOrientation を呼び出す setRequestedOrientation - Activity | Android Developers screenOrientation - ActivityInfo | Android Developers インテントにオブジェクトの情報を乗っける bundleで多くの情報をわたすような方法として、putParcelableArrayList くらいしか見当たらないので、これを使う。そのためには、Parcelable をimplements したようなクラスを作る必要がある。 Bundle | Android Developers parcelable をインプリメントしたクラスをつくる Parcelable実装にはParcelable.Createorというstatic fieldが必要。そのフィールドの初期化にて、Parcelに保存したデータを復元するためのコンストラクタを呼ぶ。 Parcelable | Android Developers Parcelable.Creater フィールドの実装 Parcelable.Creater | Android Developers createFromParcel(Parcel source)Parcelable.writeToParcel() で書き出されたParcelデータをインスタンス化する → コンストラクタを作っておく newArray(int size)ParcelableクラスのArrayを作る BundleやIntentに情報を乗せる IntentならputParcelableArrayListExtra、BundleならputParcelableArrayList で情報を登録 putParcelableArrayListExtra - Intent | Android Developers getParcelableArrayList - Bundle | Android Developers Activity側で受ける IntentならgetParcelableで受けられる。受けたときにすでにParcelableをimplementしたオブジェクトで受けられる。 getParcelableArrayListExtra - Intent | Android Developers getParcelableArrayList - Bundle | Android Developers 複数の情報をリストにして表示する [https //www54.atwiki.jp/api_programming/pages/202.html] バイブレーションを一定時間、作動させる Vibratorインスタンスからvibrate()を実行する。バイブレーションの実施にはAndroidManifest.xmlにパーミッションの追加が必要。 パーミッションの追加 マニフェストにパーミッションを追加する - パーミッションの宣言 | Android Developers Vibratorオブジェクトを生成する getSystemServiceでVibratorオブジェクトを生成する Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); getSystemService - Context | Android Developers Vibrator | Android Developers vibrateを実行する 幾つかパターンはあるが、かんたんなところで、これ。 vibrator.vibrate(500); vibrate - Vibrator | Android Developers 通知バーにバックグラウンド起動中の表示を出す 裏返したときの方向で、記録を分ける メニューのバーを設定する メニューリソースを準備し、表示させる。そのうえで、メニューのタップ動作に対する反応を記述する メニュー | Android Developers メニューリソースを準備する フォルダの作成 デフォルトではメニュー用のフォルダが無い(かもしれない)ので、res/menuを追加し、ここに入れておく。 resフォルダ右クリック [New]>[Android resource directory]を選択 ダイアログで、「Resource type 」から「menu」を選択し、OK リソースファイルの作成 menuフォルダを右クリック [New]>[Menu resource file] ファイル名を入力し、OK ファイル内に menu item / item / /menu を記述(実際はidやタイトルを設定する必要あり) Menu Resource | Android Developers 設定したメニューファイルを、Activityのメニューバーに評させる onCreateOptionMenuをオーバーライドして、この中でリソースの指定などを行う。XMLのメニューを実際?のメニューオブジェクトに変換するのに、inflatorを使用できる。 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); //(1) inflater.inflate(R.menu.menu_options_menu_list, menu); //(2) return super.onCreateOptionsMenu(menu); //(3) } onCreateOptionMenu - Activity | Android Developers メニューの選択を受け取る処理を作る オプションメニューを作っていれば、その受取はonOptionsItemSelectedをオーバーライドして処理できる。 @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } このとき、itemにクリックされた情報が入っているので、これを紐解いて、どのメニューがクリックされたか判断し、switchなどで処理する。 int itemId = item.getItemId(); Android 3.0(APIレベル11)以降では メニューリソースXMLのitemに、android onClick を記述しておくことで、動作を定義させることもできる。 チェックボックスを動作させる Android/入力コントロール(Controls) 設定画面を設定する/設定情報をローカルストレージに残す Android/設定 記録内容をGoogleスプレッドシートに記録する http //qiita.com/konnobu/items/8bec3d5a45235fc88a08 記録内容をGoogleカレンダーに記録する 多分、クライアント用のライブラリが作られていて、簡単に認証処理をしたり、データを取得したりできるようになっていると思われるが、別サイトでも転用が聞くように、地道な方法を取ってみる。というか、専用のライブラリの使い方をよくわかっていない。 流れは OAuth2.0で認証Google API にプロジェクトと登録(キーの発行) 認証コードを発行 受け取り コードを access token と交換 access token も使って、リクエスト送信 こまごまと引っかかった場所が多数。 AndroidManifest.xmlにパーミッションの設定が必要 ブラウザでURLを開く Android/インテントとインテントフィルタ ブラウザを開くURIとして、認証ページを指定する GoogleのOAuth2認証 OAuth2認証 | Android Developers Step 1 Send a request to Google's OAuth 2.0 server | Google Identify Platform リダイレクトを受け取る 大概の(google 以外でも)場合は、認証後に指定したリダイレクト先に飛ばしてくれる。そのスキーム名に応じて、Android側でどのアプリで開くのかを考えてくれる。Android に「このスキームがきたら、俺のアプリで開いて」と指示するためには、AndroidManifest.xml に記述する必要がある。 scheme // host port / path intent-filter内で、action, category, data を指定する。上記のリダイレクト先に対応する内容を書くのは data で、scheme は data android scheme="com.example.testproject" / のようになる。 Intent の 定数として ACTION_VIEW などが定義されているが、実体は文字列で、それが android.intent.action.VIEW などになる(ので、どれを設定するかはIntent を参照)。ブラウザでどんなスキームがきたらヨソになげるのか、どんな action として投げるのか、説明されている場所がわからないが、ひとまず action ACTION_VIEW category CATEGORY_BROWSABLR scheme ここは各自で で開けた。redirect_uri で scheme //~ が指定できない( /だけ)なので、hostは存在せず、pathだけ。 インテント解決 - インテントとインテント フィルタ | Android Developers Intent - Android Developers 受け取ったリダイレクトをデータに紐解く 一旦受け取れれば、中身は getIntent() を経由して、中身を見られる(Intent.getAction(), Intent.getCategories() など)。OAuth では、path のなかに code を入れて返してくるので、Dataのなかを探せばある Intent intent = getIntent(); String data = intent.getDataString(); とすると、googleの認証で指定した redirect_uri のあとに code がくっついて返ってきている。以下、サンプル com.example.####.#### /oauth2callback?code=4/8abcdefg# 上記の場合、oauth2callback を uri.getPath() で、4/8abcdefg# を getQueryParameter("code") で受け取れる。 getIntent - Activity | Android Developers getData - Intent | Android Developers getQueryParameter - Uri | Android Developers codeを送って、tokenを受け取る コードと必要情報を POST することで、access token との交換をする。この処理は、UIスレッドだとエラーになるので、AsyncTaskで実行する必要がある。 また、交換がうまく行かなかったときは、HttpURLConnection の getInputStream ではなく、 getErrorStream に情報が流れるため、プログラムの確認作業では注意。(この辺をよくわかっていなくて、エラー原因を探すのに苦労した。) redirect_uri はスキームもパスもコード発行依頼時と同じものを使う。 Android/プロセスとスレッド(processes and threads) Async Task | Android Developers tokenを保存する プレファレンスへの保存 終了時間と開始時間から、時間の計算をする リストビューで独自レイアウトを設定する https //www54.atwiki.jp/api_programming/editx/202.html USBデバッグ http //www.aiseesoft.jp/tutorials/android-debug-mode.html リリースビルド http //androidstudio.hatenablog.com/entry/2014/07/26/154043
https://w.atwiki.jp/roid/pages/13.html
まえがきはじめに Androidとは Android登場の経緯 本書について 本書が想定している読者 本書の構成と読み方 サンプルプログラムの入手先 本書が想定している環境とそのバージョン 参考となる情報源 第一部 基礎知識第1章 Android SDKの概要1.1 Android SDKが提供する機能の概要 1.2 アプリケーション開発の流れ 1.3 アプリケーションを構成する要素 1.4 Androidのライセンス 第2章 Android 開発環境2.1 本書で説明する開発環境について 2.2 開発環境のセットアップ手順 2.3 AVD(Android仮想デバイス)の作成 2.4 Androidアプリケーションの作成 第3章 開発ツール3.1 Android SDK 3.2 Android シミュレータ 3.3 DDMS パースディテクティブ 3.4 Android Debug Bridge(adb) 3.5 開発時のTIPS 第二部 開発の基本第1章 Androidアプリケーションの4大要素1.1 4大要素とは 1.2 4大要素を用いたサンプル 1.3 アクティビティ(Activitiy) 1.4 サービス(Service) 1.5 コンテントプロバイダ(Content Provider) 1.6 インテント(Intent) 第2章 アクティビティ2.1 概要 2.2 画面にウィジェットを表示する 2.3 ボタンが押されたイベントを取り扱う 2.4 アクティビティのライフサイクル 2.5 拡張されたアクティビティ 第3章 インテント3.1 インテントの基礎構造 3.2 インテントのもっとも基本的な使い方 3.3 インテントを使いこなす~暗黙的なインテント3.3.3 ブロードキャストレシーバー 3.4 暗黙的なインテントの使い方 3.5 暗黙的インテントを使ってアクティビティを起動する方法3.5.4 端末をバイブレーションさせる - p.145NotificationManagerクラス Vibratorクラス 3.5.5 スティッキーインテントを送る - p.147 3.6 ウィジェットを他のアプリケーションに組み込む方法(AppWidget Framework)3.6.1 AppWidget Frameworkを構成するクラスAppWidgetHost AppWidgetProvider 3.7 暗黙的なインデントを使って標準で組み込まれているアプリケーションを起動する方法3.7.1 インテントで起動することができる主なアプリケーションWebブラウザ 電話 地図 第4章 サービス4.1 インテントによるサービスの起動 4.2 バインド4.2.1 AIDLファイルでサービスが提供する機能を定義 4.3 コールバック 4.4 常駐型のサービス 4.5 サービスの使いどころ 第5章 データ入出力と永続化5.1 プリファレンス 5.2 SQLiteによるデータ永続化 5.3 ファイル 5.4 コンテントプロバイダ 5.5 コンテントプロバイダの活用 第三部 画面要素第1章 ユーザーインターフェイス1.1 はじめに 1.2 導入編 1.3 基礎編 1.4 応用編 1.5 付録、UIに関する各種ツール 第2章 グラフィックス2.1 アニメーションによる描画の概要 2.2 アニメーションによる描画の基本1(設定がシンプルな場合) 2.3 アニメーションによる描画の基本2(設定を組み合わせた場合) 2.4 アニメーションによる描画の基本(AnimetionDroeableを使用した場合) 2.5 Drawableクラスを使用した描画の概要 2.6 Drawableクラスを使用した描画(ShapeDrawableを使用した場合) 2.7 Drawableクラスを使用した描画(GradientDrawableを使用した場合) 2.8 Canvasクラスを直接使用した描画 2.9 OpenGL ESライブラリによる描画の概要 2.10 OpenGL ESライブラリによる描画の基本 2.11 まとめ 第四部 実践開発第1章 アプリケーションモデル1.1 アプリケーションとタスク 1.2 アプリケーションとプロセス 第2章 セキュリティ2.1 はじめに 2.2 ソフトウェア開発時に考慮すべきセキュリティ 2.3 Androidのセキュリティ・アーキテクチャ 2.4 Androidのセキュリティ機能 2.5 ファイルアクセス制御 2.6 許可情報 第3章 リソースと国際化3.1 リソースファイル概要 3.2 リソースファイルの利用 第4章 センサーAPI4.1 センサープログラミングをマスターしてハードウェアと仲よくなろう 4.2 センサーとは 4.3 センサー関連のクラスとインターフェイス 4.4 加速度センサー 4.5 傾きセンサー 第5章 地図表示とロケーション5.1 地図表示API 5.2 ロケーションAPI 5.3 まとめ 第6章 テスティングフレームワーク6.1 はじめに 6.2 Androidのテスティングフレームワーク 6.3 Androidのテスティングフレームワークを利用する 6.4 テストで利用できる開発ツール「Monkey(モンキー」 第五部 応用開発第1章 Input Method Framework1.1 はじめに 1.2 Input Method Frameworkの概要 1.3 IME開発の準備 1.4 Input Viewの追加 1.5 Candidates Viewの追加 1.6 IME実装TIPS 1.7 最後に 第2章 ConnectivityManager2.1 ConnectivityManagerの概要 2.2 ネットワークの状態変化をハンドルしよう 第3章 カメラ3.1 Android SDKが提供するカメラ機能の概要 3.2 基本的な機能を持ったカメラアプリケーションの作成 3.3 カメラアプリケーションへの機能の追加・変更 第4章 メディア4.1 はじめに 4.2 MediaPlayer 4.3 MediaRecorder 第5章 JNI(Java Native Interface)5.1 はじめに 5.2 サンプルアプリケーションの概要 5.3 Javaプログラムを実装する 5.4 Cプログラムを実装する 5.5 ビルド環境を構築する 5.6 ビルド環境でCモジュールをビルドする 5.7 Androidにモジュールを配置する 第6章 アプリケーションの実行結果を解析する6.1 実行ログ(プロファイリングレポート)を収集する 6.2 Traceviewを利用する 6.3 実行ログをグラフに変換する 6.4 実行ログをHTMLに変換する 第7章 ソースコードの探訪7.1 ソースコードの取得方法 7.2 ソースコードのプロジェクト構成 7.3 Eclipseからのソースコード参照 7.4 まとめ 第8章 Androidの開発用端末「Android Dev Phone1」8.1 Android Dev Phone 1 8.2 Android Dev Phone 1を購入可能な国と地域 8.3 Android Dev Phone 1の購入に必要な費用 8.4 Android Dev Phone 1の購入 8.5 Android Dev Phone 1の設定・利用 第9章 アプリケーションの配布9.1 アプリケーションへの署名 9.2 アプリケーションのバージョン 9.3 動作対象とするAndroidプラットフォームの指定 付録A ウィジェットカタログ まえがき はじめに Androidとは Android登場の経緯 本書について 本書が想定している読者 本書の構成と読み方 サンプルプログラムの入手先 サンプルソースのダウンロード 本書が想定している環境とそのバージョン 参考となる情報源 第一部 基礎知識 第1章 Android SDKの概要 1.1 Android SDKが提供する機能の概要 1.2 アプリケーション開発の流れ 1.3 アプリケーションを構成する要素 1.4 Androidのライセンス 第2章 Android 開発環境 2.1 本書で説明する開発環境について 2.2 開発環境のセットアップ手順 2.3 AVD(Android仮想デバイス)の作成 2.4 Androidアプリケーションの作成 第3章 開発ツール 3.1 Android SDK 3.2 Android シミュレータ 3.3 DDMS パースディテクティブ 3.4 Android Debug Bridge(adb) 3.5 開発時のTIPS 第二部 開発の基本 第1章 Androidアプリケーションの4大要素 1.1 4大要素とは 1.2 4大要素を用いたサンプル 1.3 アクティビティ(Activitiy) 1.4 サービス(Service) 1.5 コンテントプロバイダ(Content Provider) 1.6 インテント(Intent) 第2章 アクティビティ 2.1 概要 2.2 画面にウィジェットを表示する 2.3 ボタンが押されたイベントを取り扱う 2.4 アクティビティのライフサイクル 2.5 拡張されたアクティビティ 第3章 インテント 3.1 インテントの基礎構造 3.2 インテントのもっとも基本的な使い方 3.3 インテントを使いこなす~暗黙的なインテント 3.3.3 ブロードキャストレシーバー 特定の条件でのみブロードキャストレシーバーを動作させるために、マニフェストファイルに静的に定義するのではなく、プログラム内で動的にブロードキャストレシーバーを登録/解除(registerRecever/unregisterRecever)することが可能です。 3.4 暗黙的なインテントの使い方 3.5 暗黙的インテントを使ってアクティビティを起動する方法 3.5.4 端末をバイブレーションさせる - p.145 NotificationManagerクラス Vibratorクラス バイブレーションさせたいだけであれば、インスタンス化して、vibrateメソッドを呼ぶだけ。 3.5.5 スティッキーインテントを送る - p.147 ブロードキャストしたインテントをシステム内に保存しておき、後から取り出せるインテントのこと。 3.6 ウィジェットを他のアプリケーションに組み込む方法(AppWidget Framework) 3.6.1 AppWidget Frameworkを構成するクラス AppWidgetHost ウィジットを自画面に組み込むことを許可するための仕組みを提供するクラス。 AppWidgetProvider ウィジットを提供するための処理を行うクラス。 ブロードキャストレシーバーであるため、下記の制限がある。 ステートレスである。 時間がかかる処理を行うべきではない。(時間がかかる処理は、サービスに依頼すべき) 3.7 暗黙的なインデントを使って標準で組み込まれているアプリケーションを起動する方法 3.7.1 インテントで起動することができる主なアプリケーション Webブラウザ アクション:Intent.ACTION_VIEW (android.intent.action.VIEW) URIの例:「http //」「https //」など 電話 電話(ダイアラーの起動のみを行う場合)・・・通常はこちらを利用すると思う。 アクション:Intent.ACTION_DIAL (android.intent.action.CALL)、またはIntent.ACTION_VIEW (android.intent.action.VIEW) URIの例:「tel 電話番号」 電話(即時電話を掛ける場合) アクション:Intent.ACTION_CALL (android.intent.action.CALL) URIの例:「tel 電話番号」 ヴォイスメール(留守電サービスのようなものらしい) アクション:Intent.ACTION_CALL (android.intent.action.CALL) URIの例:「voicemail 電話番号」 地図 地図 アクション:Intent.ACTION_VIEW (android.intent.action.VIEW) URIの例:「geo 緯度,経度」など ストリートビュー アクション:Intent.ACTION_VIEW (android.intent.action.VIEW) URIの例:「google.streetview cbll=緯度,経度 cbp=1,ヨー,,ピッチ,ズーム」など 第4章 サービス 4.1 インテントによるサービスの起動 4.2 バインド 4.2.1 AIDLファイルでサービスが提供する機能を定義 AIDL(Android Interface Definition Langage)は、Javaのインターフェースと類似の記述方法ですが、メソッドの引数および返却値は下記に限定されています。 プリミティブ型 String, List, Map, CharSequence AIDLファイルに定義されたインターフェース Parcelableインターフェースを実装したクラス AIDLファイルは「 インターフェース名 .aidl」というファイル名で保存します。 4.3 コールバック 4.4 常駐型のサービス 4.5 サービスの使いどころ 第5章 データ入出力と永続化 5.1 プリファレンス 5.2 SQLiteによるデータ永続化 5.3 ファイル 5.4 コンテントプロバイダ 5.5 コンテントプロバイダの活用 第三部 画面要素 第1章 ユーザーインターフェイス 1.1 はじめに 1.2 導入編 1.3 基礎編 1.4 応用編 1.5 付録、UIに関する各種ツール 第2章 グラフィックス 2.1 アニメーションによる描画の概要 2.2 アニメーションによる描画の基本1(設定がシンプルな場合) 2.3 アニメーションによる描画の基本2(設定を組み合わせた場合) 2.4 アニメーションによる描画の基本(AnimetionDroeableを使用した場合) 2.5 Drawableクラスを使用した描画の概要 2.6 Drawableクラスを使用した描画(ShapeDrawableを使用した場合) 2.7 Drawableクラスを使用した描画(GradientDrawableを使用した場合) 2.8 Canvasクラスを直接使用した描画 2.9 OpenGL ESライブラリによる描画の概要 2.10 OpenGL ESライブラリによる描画の基本 2.11 まとめ 第四部 実践開発 第1章 アプリケーションモデル 1.1 アプリケーションとタスク 1.2 アプリケーションとプロセス 第2章 セキュリティ 2.1 はじめに 2.2 ソフトウェア開発時に考慮すべきセキュリティ 2.3 Androidのセキュリティ・アーキテクチャ 2.4 Androidのセキュリティ機能 2.5 ファイルアクセス制御 2.6 許可情報 第3章 リソースと国際化 3.1 リソースファイル概要 3.2 リソースファイルの利用 第4章 センサーAPI 4.1 センサープログラミングをマスターしてハードウェアと仲よくなろう 4.2 センサーとは 4.3 センサー関連のクラスとインターフェイス 4.4 加速度センサー 4.5 傾きセンサー 第5章 地図表示とロケーション 5.1 地図表示API 5.2 ロケーションAPI 5.3 まとめ 第6章 テスティングフレームワーク 6.1 はじめに 6.2 Androidのテスティングフレームワーク 6.3 Androidのテスティングフレームワークを利用する 6.4 テストで利用できる開発ツール「Monkey(モンキー」 第五部 応用開発 第1章 Input Method Framework 1.1 はじめに 1.2 Input Method Frameworkの概要 1.3 IME開発の準備 1.4 Input Viewの追加 1.5 Candidates Viewの追加 1.6 IME実装TIPS 1.7 最後に 第2章 ConnectivityManager 2.1 ConnectivityManagerの概要 2.2 ネットワークの状態変化をハンドルしよう 第3章 カメラ 3.1 Android SDKが提供するカメラ機能の概要 3.2 基本的な機能を持ったカメラアプリケーションの作成 3.3 カメラアプリケーションへの機能の追加・変更 第4章 メディア 4.1 はじめに 4.2 MediaPlayer 4.3 MediaRecorder 第5章 JNI(Java Native Interface) 5.1 はじめに 5.2 サンプルアプリケーションの概要 5.3 Javaプログラムを実装する 5.4 Cプログラムを実装する 5.5 ビルド環境を構築する 5.6 ビルド環境でCモジュールをビルドする 5.7 Androidにモジュールを配置する 第6章 アプリケーションの実行結果を解析する 6.1 実行ログ(プロファイリングレポート)を収集する 6.2 Traceviewを利用する 6.3 実行ログをグラフに変換する 6.4 実行ログをHTMLに変換する 第7章 ソースコードの探訪 7.1 ソースコードの取得方法 7.2 ソースコードのプロジェクト構成 7.3 Eclipseからのソースコード参照 7.4 まとめ 第8章 Androidの開発用端末「Android Dev Phone1」 8.1 Android Dev Phone 1 8.2 Android Dev Phone 1を購入可能な国と地域 8.3 Android Dev Phone 1の購入に必要な費用 8.4 Android Dev Phone 1の購入 8.5 Android Dev Phone 1の設定・利用 第9章 アプリケーションの配布 9.1 アプリケーションへの署名 9.2 アプリケーションのバージョン 9.3 動作対象とするAndroidプラットフォームの指定 付録A ウィジェットカタログ
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」で閲覧可能。