Browsing articles in "アプリケーション"

CountDownTimerを利用してタイマー機能を実装する

8月 30, 2011   //   by UpDown-G   //   アプリケーション  //  1 Comment

Androidでは、CountDownTimerを用いて、簡単にタイマー機能を実装することが可能です。 ポイントは以下の二つです。

  • コールバック関数を実装したCountDownTimerを継承したクラスの作成
  • カウントダウンの開始と中止メソッドの実装

今回は、ボタンを押すと3分間のカウントダウンを開始するサンプルアプリを例に、タイマー機能の実装方法を解説します。

それでは続きをどうぞ

Read more >>

sharedUserIdを使って他のアプリケーションデータにアクセスする

8月 28, 2011   //   by UpDown-G   //   Android, アプリケーション  //  No Comments

Androidのアプリケーションは、基本的に1アプリケーション1プロセス(1UserId)で実行されます。
本エントリで紹介するAndroidManifestに指定するsharedUserId要素を使用することで、
複数のアプリケーションを同一プロセス(同一UserId)で起動することができ、
相互にアプリケーションデータにアクセスすることが可能となります。

サンプル実行時psコマンドの実行結果
org.techbooster.sampleA     → 本エントリで作成する「SampleA」プロジェクト
org.techbooster.SQLiteSample → 以前紹介した「SQLiteSample」プロジェクト

本エントリでは、sharedUserIdを以下サンプルを用いて解説していきます。

【作成するサンプル】SampleA
TechBoosterで以前にご紹介したSQLiteのサンプル(以下記事リンク)にアクセスし、最後に追加されたテーブルにアクセスするサンプル

以前に紹介した、SQLiteSampleは以下リンクを参照ください。

それでは、続きをどうぞ

Read more >>

XMLを生成する

8月 25, 2011   //   by furusin   //   アプリケーション, リソース  //  No Comments

アプリを開発していて、アプリ内でXMLを生成し、その情報を利用したアプリを作りたい、ということが出てくると思います。

以前TechBoosterでは、XMLをパース(解析)する方法を解説しました。

今回は、自分でオリジナルのXMLを生成する方法を解説します。

XMLをパース(解析)する方法は、こちらを御覧ください。

それでは続きをどうぞ

Read more >>

PreferenceActivityからIntentを呼び出す

8月 11, 2011   //   by UpDown-G   //   Hacks, アプリケーション  //  No Comments

アプリケーションの設定画面の作成時に、設定項目の中で別画面を呼び出したい時など、
PreferenceActivityの内部でIntentを使用したいケースがあると思います。
本エントリでは、PreferenceActivityからIntentを呼び出す方法を紹介します。

過去にTechBoosterでは、PreferenceActivityの使用方法を以下エントリで紹介しています。

PreferenceActivityからIntentを呼び出す方法は、設定画面を簡単に作るのエントリでも少し触れていますが、

本エントリでは、

1.onPreferenceClickメソッドを使用したIntent呼び出し
2.XML内部でのIntent呼び出し
cf. PreferenceCategoryについて

の2種のIntent呼び出しとPrefereneCategoryについて、紹介していきます。

Read more >>

xmlファイルを用いてカスタムViewを作る

8月 1, 2011   //   by UpDown-G   //   アプリケーション, リソース  //  No Comments

Androidでは、Viewを自在にカスタムすることが可能です。

Viewをカスタムした例は、以下の記事にも書かれていますので参考にしてみてください。

今回は、タップした際に、指定したアクティビティに画面遷移を行うButtonを作成してみます。さらに、遷移先のアクティビティは、layoutファイルのxmlファイルの属性にて指定できるようにします。
ポイントは以下の点です。

  • attrs.xmlファイルにて、独自に属性を定義する
  • main.xmlファイルにて、独自に定義した属性に値をセットする(カスタムViewをレイアウトに配置)
  • カスタムViewを作成し、独自に定義した属性の値をViewに反映させる

以下が今回のサンプルのキャプチャ画像です。今回は、独自の属性として、ボタンに表示するテキスト、テキストの色、テキストのサイズも設定できるようにしています。

※なお、本文中の「属性」は属性の名称を、「属性値」はその属性にセットされた値をそれぞれ示します。

それでは続きをどうぞ

Read more >>

HoneyComb端末にゲームコントローラを接続する

7月 31, 2011   //   by UpDown-G   //   Android, アプリケーション  //  No Comments

Android3.1(HoneyComb)から、AndroidはUSB Hostに対応しました。
USB Hostに対応したことで、XboxやPS3などのコントローラを接続し、
Applicationの制御に使用することができるようになりました。

※USBコントローラの接続には、USBホストケーブルが必要になります。

アマゾンリンク

Techboosterでは、InputDevice系統の記事として、以下記事を過去に公開しています。
本エントリでも同様に参考になるので、ご参考に。

Read more >>

Parcelableでオブジェクトを一時的に保存する

7月 30, 2011   //   by kkato   //   Android, アプリケーション  //  No Comments

今回はParcelableインタフェースを用いて、インスタンスの状態を保存する方法を説明します。

状態の保存と言うとシリアライズを思い浮かべる方もいると思いますがシリアライズは永続化を目的としていますが、Parcelableはプロセス間通信のときなど、一時的に状態を保存したいときに利用します。

シリアライズの方法に関しては以下の記事を参考にしてください。

それでは続きでParcelableインタフェースを用いて、インスタンスの状態を保存する方法を説明します。

Read more >>

Android開発者のためのJNI入門

7月 28, 2011   //   by @mhidaka   //   アプリケーション  //  2 Comments

今回はJNIについて解説します。
本記事はAndroid Developersの開発ガイドラインを意訳(一部わかりやすい表現に変更しています)しています。Android NDKを使いたいなど、より高速化を求める、効率的な処理を知りたい開発者にはおすすめの内容です。
興味を持ったら是非、元記事もご確認ください。

JNIはJava Native Interfaceの略称で、Javaとネイティブコード(C/C++)を連携するための仕組みです。共有ライブラリからの動的読み込みをサポートしています。今から説明する利用方法は、ややこしいですが理解して使いこなせば、Javaとネイティブコードをつないだ非常に効率的なコード生成が可能です。

さらに詳細な仕様については JNI spec for J2SE 6 を参照して下さい、より実践的なJNIプログラミングを習得したければ、JNI Programmer’s Guide and Specificationが便利です。

1. JNIを理解する上で最も大事なオブジェクト:JavaVMとJNIEnv

(JavaVM and JNIEnv)

JNIには2つ(JavaVMとJNIEnv)、とても重要なオブジェクト(構造体)があります。これらの役割はオブジェクトへの関数テーブルを保持することで、ダブルポインタ(関数テーブルへのポインタのポインタ)で表現されています。

JavaVMオブジェクト

JavaVMオブジェクトはバーチャルマシン(VM)の生成/破棄を行う呼び出しインターフェイス(invocation interface)を提供します。
Java/JNIのセオリーに従うなら複数のVMを保持できますが、Android上では1つのVMしか保持できません(これはAndroidでの制限です)。

JNIEnvオブジェクト

JNIEnvオブジェクトはJNI関数のほとんどで利用されます。作成した(もしくは作りたいネイティブコードの)関数の最初の引数がJNIEnvオブジェクトとなります。
※マルチスレッドプログラミングでの注意として、多くのVMではスレッドローカルな領域にJNIEnvが保存されます。つまり、スレッド間でJNIEnvを共有することができません

JNIEnvを取得する方法がないケース(使いたいのに引数を保持していないなど利用できないケース)は、
JavaVMオブジェクトを共有しておくことをお勧めします。JavaVMオブジェクトのGetEnvメソッドをつかって、現在のスレッドのJNIEnvを見つけられるからです。

CとC++でJavaVM/JNIEnvオブジェクトの構造が異なる

JNIEnvとJavaVMはC言語とC++言語で異なったものが提供されます。提供元のインクルードファイル、”jni.h”ファイルではCとC++どちらのファイルに含まれているかを判断してJNIEnvとJavaVMを定義しています。
cファイルとcppファイル両方でjni.hをインクルードしてJNIEnvを使うと、混乱のもとになるので、どちらか片方でのみ利用する方が良いでしょう。

もっと多くのJNI Tipsは続きから。
Read more >>

ハードウェアアクセラレーションを使用する(2)

7月 27, 2011   //   by kei_i_t   //   アプリケーション  //  No Comments

ハードウェアアクセラレーションを使用する(1)ではハードウェアアクセラレーションの実装方法を紹介しました。
今回はハードウェアアクセラレーションが最大限に効果を発揮させるために検討しなければならないことを紹介します。

詳細は以下から。

Read more >>

Intentでオブジェクトを渡す

7月 23, 2011   //   by UpDown-G   //   Hacks, アプリケーション  //  No Comments

本ブログでも以下の記事にて紹介していますが、Androidには、Intentという強力なAPIが用意されています。

Intentを使って画面を遷移する(明示的Intent)
Intentを使ってアプリを連携させる(暗黙的Intent)

Intentを用いることで、異なったActivity間でデータ(文字列や数値など)を受け渡すことが可能です。
今回はこのIntentを用いて、オブジェクトを受け渡す方法を解説します。

Intentでオブジェクトを受け渡し可能にするには、少し工夫が必要です。
ポイントは、java.io.Serializableインタフェースimplementsすることで、受け渡すオブジェクト(クラス)をシリアライズする点です。
シリアライズについては、以下の記事も参考にしてみてください。

データを簡単に保存する方法(シリアライズ編)

今回は、英語、数学、理科、社会のテストの点数を格納したクラスのオブジェクトを渡し、受け側で情報を取り出して表示させるサンプルを例に解説します。

それでは続きをどうぞ

Read more >>

ページ:«1234567...14»

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です