サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
blog.cnu.jp
組み込みAndroidの本が出ますで紹介した、組み込みAndroidの入門書として執筆した基礎から学ぶ 組み込みAndroidですが、お陰さまで販売状況もよく、増版も早々に決定しました。ありがとうございます。 で、「twitterのハッシュタグ無いの?」との要望があったので、ハッシュタグ決めました。 ハッシュタグは、#embandbook です。このハッシュタグをつけてつぶやくことで、twitterでの情報共有ができますし、次回作の要望が多いと出版されるかもしれません(ジャンプのアンケートのようだ…) それはともかく、本の感想、要望etc…などつぶやいていただけるとうれしいです。よろしくお願いします。
ようやく公表できるようになったので本の告知など。 共著で組み込みAndroidの入門書を書きました。発売は12/23あたり。 概要 基本的には、BeagleBoard-xM + Froyo(Android 2.2)を利用して組み込みAndroidをやってみよう、という内容。なので、Androidの成り立ちや構成、BeagleBoard-xMでFroyoを動かす方法、Androidアプリケーション開発の手法などが掲載されている。 ただ、「BeagleBoard-xMでAndroidが動きました。おしまい」では、BeagleBoardで動かす意味があまり無いので、BeagleBoard-xMでAndroidを動くようになったあと、外部ハードを接続して外部デバイスを制御する実例も掲載されている。 ターゲットとしては、理系学生さんやAndroid組み込み初心者を想定。 目次 CHAPTER01 組
ってことで、GingerBread(Andoid 2.3)対応Android SDKのリリースと同時にAndroid NDK r5もリリースされた。 新しいAndroid SDKについては、他の方がいろいろまとめているのでそちらを見てもらうとして、こちらはAndroid NDKr4からAndroid NDKr5で変化した事をまとめてみた。 バージョンアップ概要 Android NDKr5へのバージョンアップで大きく変化した事は大きく分けて3つ。他にも多数の変化があるけど、とりあえずは、これだけ押えておけばよいかと。 C/C++だけでAndroidアプリが作成可能 ゲーム制作が、よりしやすくなった toolchain(C/C++コンパイラ)の機能強化 では、これらについて詳細を解説していく。 C/C++言語だけでAndroidアプリが作成可能 Android NDKr5では、APILevel
これからBeagleBoard-xMで開発を始める人に送る必要な機材をリストアップ。前から書こうと思って忘れてた。 以前のBeagleBoardよりオンボードでEthernetなどの様々なインターフェイスが搭載されたので、購入すべき機材は減った。まあその分単価は上ったけどね。 ということで、以下機材リスト。 まずは、これが無いとはじまらない。日本のdigikeyから購入。海外からの輸入品になるのだが日本語でオーダーできる。他、商社などでも扱っているようだが、当然ながらdigikeyから購入するよりは高くなる。 購入する際のヒントを出しておくと、法人より個人で購入した方が輸入に関するやっかい事が少ない(軍事転用などの確認が行われる)ので、手早く入手したい時は個人として購入する事をお勧めする。 microSDカード 基本的には、どのカードでも動くはず。ただ、カードによって起動時間が異なる(Re
このTraceViewは、実は@androidzaurus氏に教えてもらうまでは、存在そのものを知らなかったツールだったりする。一言で言えばプロファイラ(Profiler)の事。プロファイラとは、関数単位で処理時間を測定してくれるツールを指す。公式ドキュメントはTraceview: A Graphical Log Viewer | Android Developersに。 プロファイラは、ちゃんと使えば結構有用なツールなので、どんな時にどんな風に使えばよいのかをざっと解説してみる。 最適化の手掛りとして 例えば、あるAndroidアプリが完成したとする。そのアプリは、バグらしきものは無いのだが、今イチ動作がキビキビせずに”もっさり”している、もしくは、ある条件で操作するとやたらと処理がかかってしまう、という問題を抱えていたとする。 そんな時に利用するのがプロファイラ。たとえば、先のもっさり
ちょっと間が開いたが、これまた続き。 前回はインストールされた標準的なアプリケーションのソースコードについていろいろ書いてみた。 で、まだ見るべきソースコードがあると書いたが、今回はAndroid Frameworkのソースコードを見ていく。アプリケーション開発をしている時にいつも見ているリファレンスマニュアルの元となっているソースコードなのだ。 この読み方を知っていると「このメソッド、マニュアル通りに設定しているのに、なんでその通り動かんのじゃ、うがー」というムダなイライラとオサラバできるというメリットがある。 まあ、オープンソースではないプラットフォームでは、このような時は試行錯誤することでようやく解決なんて事もあったりするが、Androidはフレームワークのソースが読めるというメリットのおかげで、こういったムダなイライラをあまりしなくて済ませる事ができる。 Android Frame
以前BeagleBoardを使用して開発する際に必要な機材をスライド中に一通り紹介したが、じゃあどれを買えばよいのよ? という方の為にその一覧を用意してみた。 以下のものは、私がAndroid & BeagleBoardで実際に使っているもの(もしくは同等品)。何をどのように使うのか解説も付けてみた。
前回のエントリーについた、はてブのコメントで、TraceViewでの結果が知りたい、というリクエストが上っていたので、TraceViewを使って計測してみた。 というかその前にTraceViewを知らなかったので、まずはその解説から。 TraceViewとは グラフィカルなログビュアーの事で、これを知る事でデバッグの助けや、どこで処理時間がかかっているかパフォーマンスを視覚的に確認できるツール。 TraceViewの詳細は別エントリーで解説するつもり(説明する量はそんなに多くはないが) TraceView対応版 前回はシステム時刻を利用して時間計測を行ったが、それをTraceViewに対応させた。 package com.example.android.ndkbench; import android.app.Activity; import android.graphics.Point;
IntelliJ IDEA 10 Community Editionで、Androidアプリケーションの開発ができるようになったので、ちょっと試してみた。 IntelliJ IDEA 10: free IDE for Android development | JetBrains IntelliJ IDEA Blogが元情報 IntelliJ IDEA とは Eclipse, NetBeansと同じように無料で利用できるJava IDE(統合開発環境)のひとつ。Java IDEとしては評判も高い(らしい)。 前提条件 JDK6 & Android SDKがインストールされているのが前提。 いちおうEclipseでAndroid SDKを利用できるようにしておくといいかもしれない。参照: Android SDK 2.0インストールメモ インストール 今回はMac版をSnowLeopard(M
いつも言われるのが「NDKを呼び出すときはオーバーヘッドがあるから頻繁に呼び出さない方がいいよ」という話。 それじゃどれだけのオーバーヘッドがあるのよ? という事で実際に計測してみた。 今回計測したのは、JNI呼び出しとして int addInt(int i, int j); // 引数 int x 2 返値 int int getInt(); // 返値 int を10000000回呼び出すパターン。あまり凝った事はしてない。 以下、内容と報告を。 計測環境 HTC Desire + Froyo(2.2) + Android SDK 2.2 ソースコード こんな感じで作成してみた。あくまで簡易ベンチマークとしての役目しかない。 つうか、ベンチマークってこんな作りでいいのかな? 教えてエラい人。コンパイラの最適化にあまり影響されないようにはしたつもりなのだが。 package com.ex
たまに忘れるので、メモとして。 例えば1台のPCでAndroid emulatorとPHPなどのWeb Server側の両方を平行して制作していたとする。 この時に、何も考えてないとAndroid エミュレータからサーバに接続しようととして、Android エミュレータでIPアドレスにlocalhost(127.0.0.1)を指定してしまう。 実はこれは意味がない。何故ならlocalhostだと自分自身(つまりAndroidエミュレータ)を指すから。なので、当然サーバーにはアクセスできない。 で、その解決方法は以下の通り。 解決方法 このあたりは、Android エミュレータではちゃんと考えられており、特別なIPアドレスが用意されている。先の例では「10.0.2.2」を指定するとサーバに接続できる。このような特別なIPアドレスは他にもいろいろ用意されている。 IPアドレス 概略
先日のMacBookPro故障時から、次に購入するPCを検討している。Macに関しては不穏な声しか聞こえてこない(AppleはもうJavaをサポートしないとか、どうとか)ので、次に購入する時はThinkPadにUbuntu載せて使おうかなーと考えている。購入するとしても来年になるだろうけど。 という事もあり、ここしばらくThinkPadのプライスウオッチャーをしているのだが、ここで一つ気付いた事がある。 ThinkPadは週末の方が安く購入できる という事。ちなみにこれはLenovo Web 広告限定ストアでの話。 私のように英語キーボードじゃなきゃヤダとか、カスタムしたThinkPadが欲しい人はLenovo Web 広告限定ストアにお願いしてBTOしてもらうしかない。まあ大抵の人は価格.comなどで価格比較して1位の店で購入した方がLenovoの直販より安く買えるはず。 週末はThin
Windows7でgitが使えるように設定したので、忘れないうちに設定した内容を一通りメモしておく。設定したのはgit bashのみのハードな環境。Git GUI、Tortoise Gitは設定しない。 msysgitダウンロード、インストール msysgit – Project Hosting on Google Codeからダウンロードする。 ダウンロードファイルが Git-x.x.x.x.exe PortagleGit-x.x.7z msysGit-fullinstall-x.x.exe msysGit-netinstall-x.x.exe といくつかあるのだが、通常はGit-x.x.x.x.exeをダウンロードした。そしてインストール。今回はGit bash(ターミナルからgitを利用)のみを設定した。 Tortoise Gitの利用まで考えるとインストール先は下手に設定しない方が
この日は、石川県某所でAndroidアプリケーションプログラミングのハンズオンがあったのだが、こちらが先約だったので参加してきた。会場でも「Androidの方に参加するのだと思ってました」とよく言われた(笑) で一つ発表してきた。「OpenGL|ESからXNAへ」というタイトルでOpenGL|ES、Android, iPhoneとXNA双方でのゲーム開発のメリット、デメリットについて発表してきた。 いろいろネタを盛り込んでしまったので、ここには掲載しない。 iPhone,Androidに対するアドバンテージ この発表資料を作成しながら調べたり、発表した後でのMSのなかの人とやりとりで確信した事がある。それは WindowsPhone7はスマートフォンとしては最強のゲームプラットフォームになりえる可能性を秘めている 事。WindowsPhone7が唯一他プラットフォームに先行しているジャンル
この間まで知らなかったのだが、日本では有名な地図ソフトの会社であるマピオンがAndroid Maps APIを提供開始していた。つまり、GoogleMapsを利用しないでも地図アプリが作成できるようになった。 ってことで試しにGPS連動の地図アプリを作ってみた。このアプリでは、GPSで緯度経度を取得した後、その位置を中心にして地図を表示させている。ほんと動くだけのサンプル。 ソースコード とりあえずメインだけ。 package com.example.android.mapionmap; import jp.co.mapion.android.maps.*; import android.content.Context; import android.location.*; import android.os.Bundle; import android.widget.LinearLayo
忘れないようにメモ。GoogleAppEngine/Javaでローカル環境からでもDatastoreのデータを見る事ができる。あくまでViewerなので、編集はできないようだが。 サーバを起動してから、以下のURLにアクセスする http://localhost:8888/_ah/admin/ 左のメニュにある、Datastore Viewerってのがそう。 Datastore Viewer以外にも いろいろできるようで、 Datastore Viewer Task Queues XMPP Inbound Mail って項目があった。Datastore Viewer以外はよく分かってない(おいらが)
このフォルダには、Androidケータイにあって、オープンソース版に含まれていないアプリがある。それは、Google Mapsアプリ。これはGoogle Mapsを利用するにはGoogleとのライセンス契約が必要になってくるので、オープンソース版には含まれていないのだ。ちなみに、オープンソースでビルドされるSDKもGoogle Maps対応のものは生成されない。あと、マーケットアプリも。 それでも、これだけのソースがあれば、ソースを読んでみたいアプリが1つぐらいあるはず。 ソースコードの構成 これらのアプリのソースコードのファイル構成は通常のAndroidアプリケーションと同じ構成になっているのでご安心を。ちなみにCameraアプリのTopフォルダはこのような構成になっている。 . ├── Android.mk ├── AndroidManifest.xml ├── CleanSpec.m
最近なにかとAndroidアプリを作る機会があるのだが、その最中にある出来事の一つとして、”ググっても解決方法が分からない”というのがある。クラス名、メソッド名でググってもリファレンスしか検索結果に表示されないなど。特にマイナーなAndroid Frameworkのクラスを使おうとしている時がそう。イライラが頂点に達する瞬間でもある。 あと、Android フレームワークの使い方を調べるときは、大抵Android developersのリファレンスマニュアルを見ているのだが、”説明がまったくないメソッドに出くわし”たり、”マニュアル通りに設定しているのに、その通り設定されなかった”という出来事もあったりする。 そんな時はAndroid フレームワークのソースコードを読んで解決している。先の”マニュアル通りに設定して動かなかった”原因は、設定したパラメータが実はAndroidフレームワークの
今回はAndroidのLinuxカーネルな話題をひとつ。 AndroidのLinuxカーネルには、メモリの空き容量が少なく(ある一定値以下に)なった場合に、プロセスを強制終了(殺す)仕組みが備わっている。 AndroidのLinuxカーネルにはその機能が2つ備わっていて、一つがOOM(Out Of Memory) KillerというLinux本家での実装と、もう一つLow Memory KillerというAndroid特有の機能として実装されているものがある。 じゃあ、OOM KillerとLow Memory Killerと何が違うのか? その答がAndroid Kernel Features – eLinux.orgのoom handlingに書いてあったので紹介(Thanks @androidzaurus) OOM Killerは、シンプルな機構で空きメモリが足りなくなったらサクっと
って事で、gitの設定でちょっと知らなかった(というか忘れてしまっていた)事があったのでメモしておく。 gitではバックアップファイルなどcommitして欲しくないファイルを指定するために、.gitignoreファイルで無視するファイルを設定する必要がある。 で、.gitignoreをユーザのホーム直下に置けば、すべてのプロジェクトに適用されるものだと思っていたのだが、どうも違うらしい。githubにcommitしたファイルを見て気がついた。 で、解決方法は次の通りになった。 解決方法 まず、.gitignoreを設定する。例えばこんな感じで。
久しぶりでのC++でのプログラミング、なにげに作成してコンパイルしてみたところ、hppファイルで expected unqualified-id before ‘using’ とコンパイルエラーが表示されてしばらくハマった。 原因は、usingの前で宣言していたClassの最後に「;」が無いからだった。 うーむC#生活が長いせいか、つい忘れてしまう。というか、ただのSyntaxエラーなんだから、最初からそう言ってくれないもんかなーと思ったり、思わなかったり。 ただのグチだな、こりゃ。
ってことで、rvmをインストールしたあと、CarbonEmacsからrubyのスクリプトを作成しよううると、こんな警告が。 rubyが見つからないから、flymakeは止めちゃうよというメッセージ。 rvmを利用したruby環境では、$HOME/.rvm以下にインストールされるので、そのままではflymakeは利用できない。.emacs.el内でPathの設定を行えばちゃんとflymakeは利用できるのだが、フルパスでrubyを指定するのでrubyのバージョンを切り替えるたびに.emacsの設定を変更しなくてはいけなくなり、非常に面倒な事に。 で、いろいろ調べてみて解決方法が分った。 rvm.el rvmを利用したrubyをemacsから扱えるようにするためのrvm.elが配布されていたのでそれを利用する事に。これをダウンロードして.emacs.d以下にインストール。 あとは、.emacs
先日届いたWeb+DB Press vol58はRails3の特集だった。ちょうどRailsを使って考えていたサービスを構築しようかと考えていた最中なので自分的にはナイスタイミングな特集であった。 rails3ではruby1.9系を積極的にサポートしていくそうなので、この機会にruby1.8系からruby1.9系をメインに使っていこうかと考えたのだが(まあ今さら感があるのは否めない)、ただ、過去の資産などもあるのでruby1.8.7をすっぱり切り捨てる訳にもいかず。という事でSnow Leopard上にruby1.8.7, ruby1.9.2を共存インストールしたメモ。私と同じようにrubyを利用しているほとんどの開発者はruby1.8系とruby1.9系の両方をインストールする必要があるのではないかと思われる。 rubyを普通にインストールしたのでは、1.8系と1.9系を共存して利用する
プログラミング時に最適なフォント「Inconsolata」 | Weboo! Returns.でも紹介されていたフォントをSnow Leopard + CarbonEmacsでも使えるようにした。 適応すると、こんな感じになる。 で、設定方法は以下の通り。 なにはともあれダウンロードから ダウンロードはこちらから。 Inconsolata.otf Inconsolata.ttf Takaoフォント ダウンロードしたあとは/Library/Fontsにコピーする。 CarbonEmacsの設定 こんな感じ。今回はinconsolataは15p, 日本語表示にはTakaoExゴシックを利用した。 ;; フォント設定 (set-face-attribute 'default nil :family "inconsolata" :height 140) (set-fontset-font "fon
実機で動作させるには iPhone iPhone Developers Programに入会する必要有 Android 登録の必要無し 特定企業向けアプリケーションを配布 iPhone エンタープライズプログラムに加入する必要がある($299/年) Android 特に無し 開発者向け端末 iPhone 特に無い。市販のiPhone/iPod touchを使用 Android Android Dev Phone 1 / Android Dev Phone 2がある。HT03Aでも可能(?) iPhoneアプリ開発、Androidアプリ開発するなら、これらの本がお勧め。
日本Andoridの会 金沢支部 第5回勉強会で「Android & BeagleBoard で組み込み入門」というタイトルの話をしてきた。 発表の冒頭でも言ったけど、もともとこの内容は金沢の学生さん相手にこじんまりとやるつもりだったのが、あれよあれよと正式(?)な勉強会になって、しかも今回は今までで一番参加人数の多い勉強会となった経緯があった。 参加数を見ても金沢近辺で組み込み系に興味ある人って多いんだと改めて感じた次第。あとは、ROM焼きをしていた時代から比べてSDカードからブートできるようになっているのが当たり前になっている今の開発に驚く人など、様々な反応が見られて非常に面白かった。また組み込み関連の人達と勉強会したいな。 で、発表時に使用したスライドを設置しておきます。若干の手直ししてありますが内容の変更はありません。
今までは関数を検索する時はgrepをフル活用して検索していたのだが、最近cscopeの存在を知り、使ってみる事にした。 javaでも使えると様々なサイトで紹介されているのだが、javaは正式サポートされておらず、いろいろを手を加える必要があるので忘れないうちにメモ。 環境はcarbon emacs + Snow Leopard(10.6) インストール
NexusOneの雰囲気を少しでも味わいたいと思い、手元にあったGDD Phoneに野良2.1ROMを入れてみた。某イベントに持っていくため。すみません、NexusOneじゃなくて > 関係者 今までこのようなROM入れ替えをした事がなかったがいろいろ調べてみてようやく理解した。忘れないうちにメモとして残しておく。以下の内容は、すべてGDD Phoneで行った。 今回の件に関してFrontPage | Android Custom Cookbookが非常に参考になった。ありがたや。 基本的な流れ 基本的には「リカバリーツールの入れかえ」→「ROMの書き換え」となる。改造されたリカバリーツールをイントールする事で本体のみでROMの書き換えができるようになり、バックアップ/リストアも簡単にできる。 もちろん純正ROMに戻す事も可能(リカバリーツールも元に戻る)。開発にも活用できるので、開発者は
このページは、スマートフォンビジネス講演会についてお知らせするページです。 趣旨 iPhone、Android等のスマートフォンの話題を聞かない日は無いほどスマートフォン関連のビジネスが機運が高まってきました。iPhoneサイドからはAppBank氏、Androidサイドからは、oru氏を迎え、スマートフォン関連のビジネスの動向や将来について語っていただきます。 講師プロフィール AppBank氏: iPhoneアプリ紹介サイト「AppBank」を運営。昨年だけで2500本以上のアプリをレビューを掲載し、iPhoneアプリ紹介サイトとしては断トツの認知度を誇る。 oru氏: Android発表当初からAndroid関連のイベントに携っている方。海外のAndroid事情にも精通している。諸事情により今回は匿名希望という事に。 開催日時 2010年3月7日(日) 13:00 – 17:00
次のページ
このページを最初にブックマークしてみませんか?
『Happy My Life』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く