サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
izariuo440.hatenadiary.org
今回は「gyp でネイティブコードプロジェクトのビルドを多環境に対応させる」です。私がやっていることをメモしておきます。 背景 私は Windows のコードをよく書いていました。ある時から Android、Windows Mobile、Linux、Mac OS X、iOS でも動くように意識して書くようになりました。すぐに、コードをビルドするための各種設定ファイルを用意するのが面倒になりました。Visual Studio、Xcode、Makefile、Android NDK 用 Makefile・・・やっていられませんね。 ビルドツール巡り・・・cmake、scons、waf、そして gyp へ ビルド設定ファイルを自動生成するためのビルドツールを探してみるとすぐにいくつか出てきました。半年ほど cmake と scons を並行運用していましたが、その中で気に入らない点が出てきました。
c-ares については過去の記事で少し触れた。c-ares は以下に詳細な API リファレンスが存在するが、Web サイトトップより詳しく、API リファレンスよりも大雑把な機能紹介がないのがもったいない。 というわけで、c-ares を簡単に紹介しておく。まずは Web サイトトップに書いてあること。 非同期名前解決ができる 大抵のプラットフォームで呼び出すことができる gethostbyname、getaddrinfo は同期呼び出しのみ C ライブラリとして提供される IPv6 に対応している 様々なプラットフォームに対応していて移植性に優れている Windows Mac OS X Linux Android etc.. 今も活発に開発が行われている メーリングリストが活発 メインメンテナの Daniel Stenberg 氏が活発 ソースコードを見たり実際にコードを書いたり実行
先日から yamake というオレオレメイクツールを作っている*1のですが、その直後のとあるツイートで gyp、Ninja というビルドシステムがあるということを知りました。どちらも、Chromium のビルドをより良くするために生まれたようです。知らなかったので、少し調べてみました。 gyp - Project Hosting on Google Code martine/ninja - GitHub Google がこういったビルドツールの開発に積極的な理由 Google Chrome というブラウザがクロスプラットフォームなブラウザだからだと思います。詳細は、gyp のドキュメントに書かれています。 GypLanguageSpecification - gyp - Project Hosting on Google Code 特に厄介なのが Mac OS X での開発だそうで、Xco
Android 端末をプログラムで再起動させる方法について。 まず、プログラムでということに関わらず Android 端末を再起動させる方法はいくつかあります。 HOME + CALL + POWER キーを同時に押下する ボタンの三つ同時押しですね。Xperia ( SO-01B )、Nexus One などは CALL キーがないのでこの手法は利用できません。 adb で接続して /system/bin/reboot を実行する adb で接続できれば普通にいけるはずです。reboot コマンドのソースコードは・・・現在探しています。 なので、このコマンドをプログラムから実行すれば再起動できるのですが、root 権限が必要です。 例えば以下のプログラムなんかもそれっぽいですね。 Taosoftware: Android OS をリブートする方法 http://www.taosoftwa
Base64 のライブラリをあまり調べたことがなかったので調べてみた。 RFC http://tools.ietf.org/html/rfc4648 標準で、一番あたらしいやつ http://tools.ietf.org/html/rfc3548 標準だが、obsoleted らしい http://tools.ietf.org/html/rfc2045 MIME 用 http://tools.ietf.org/html/rfc1421 オリジナルらしいが、deprecated らしい Wikipedia http://ja.wikipedia.org/wiki/Base64 http://en.wikipedia.org/wiki/Base64 まず、Base64 には多くの変形版が存在するという点に注意する必要がある。自分で使いたいのはどういった目的なのか、それをライブラリはサポートして
三種の神器といいつつ、分類毎に分けてるので三つ以上あります。前提条件としては、マルチプラットフォームに対応したネイティブアプリケーションを開発する、という感じです。 OS Mac OS X Windows Linux 言語 C/C++ Objective-C Lua IDE Eclipse Xcode Visual Studio ビルドツール Autotools SCons Rake テスト CUnit または CppUnit gcov + lcov google-perftools GUI ツールキット Qt WTL MFC インストーラ WiX InnoSetup PackageMaker ネットワークライブラリ c-ares libcurl OpenSSL 圧縮ライブラリ zlib bzip2 Info-ZIP グラフィックライブラリ libjpeg libpng WebP OS M
Google の WebP が発表されてから画像圧縮に興味深々。 画像処理を少しずつ勉強している。 現在減色処理について勉強しているが、 減色処理が実装できたらどのくらい減色できたのかを確認したいものである。 そこで、画像の色数を確認・取得・調査する方法を調べてみた。 ImageMagick を使うのが簡単。下記のようにすればよい。 $ identify -format %k filename 179Windows だと、% は特別な意味を持つので下記のようにしてやる必要があるはず。 $ identify -format %%k filename 179identify の -format に指定できるパラメータは他にもたくさんある。 ImageMagick: Format and Print Image Properties: http://www.imagemagick.org/scr
権限設定をしておかないと、 VirtualBox のメニューから USB 機器を選択しようとしても グレーアウトされていて選択できない、という状態になるようですね。 http://toshi-kaw.qee.jp/blog/ubuntu9-10virtualbox3-0win-xpでusbプリンターを使う/ まずは、Ubuntu で以下の手順を踏みます。 [システム]-[システム管理]-[ユーザとグループ]を選択し、ユーザ設定ウィンドウを開く ユーザ設定ウィンドウの右下にある[グループの管理]ボタンを選択し、グループの設定ウィンドウを開く グループの設定ウィンドウのグループ一覧から vboxusers をダブルクリックし、グループのプロパティウィンドウを開く グループのプロパティウィンドウでグループのメンバに自分のユーザ名が出ているのでそれをチェックして[OK]をクリックして閉じる グルー
はじめに 今回はコードを非同期化する上で肝となる io_service について取り上げる。 うんちく 前回までサンプルコードについて一切解説を入れていなかったが、前回密かに以下のような呼び出しを行っている。 io_service.run(); これを呼び出すと、何が起こるのだろうか。以下のことが起こる。 呼び出し前までにたまっていた非同期呼び出し処理が動き出す 非同期処理が終わるまで待つ イベントループが実行される なので、非同期処理をいくら呼び出しても、io_service::run が実行されないと何も起こらない。逆に、非同期処理を呼び出す前に io_service::run が実行されてしまうとすぐに処理が完了してしまう。前回のコードから、io_service::run の行をコメントアウト実行してみるとよく分かるはずだ。さらにいうなら、コメントアウトしたすぐ下に数秒間待機するコー
はじめに google-breakpadは、オープンソースでマルチプラットフォームに対応したクラッシュレポーティングシステムだ。Firefoxのように「長時間連続稼働されるが結構クラッシュすることが多いプログラム」で突然「申し訳ございません」とアプリケーションが弁明を始めることがあるが、それを担うのがこのこれだ。問題が出たらアプリケーションのクラッシュダンプやアプリケーションログをまとめてサーバ側に自動的に送信することで問題の解決を行いやすくすることが目的だ。 なお、アプリケーションがクラッシュをハンドリングしないと、代わりにその親であるOSが弁明をし始める。 うんちく このライブラリの採用実績としては、以下のようなものがある。 Google Chrome ChromeというかChromiumに組み込まれている Firefox バージョン3.0から使われるようになるらしい Breakpad
Global IP Soundが提供しているcodecについての情報を、和訳してみました。 http://www.globalipsound.com/solutions/solutions_Codecs.php http://www.globalipsound.com/solutions/solutions_whiteprs.php?newsID=13 iLBC*1 サンプリングレートは8kHz 13.3kbps(30ms/frame)と15.2kbps(20ms/frame)で機能する 低ビットレート向けcodec ナローバンド向け パケットロスに強い G.729、G.723.1よりも品質がいい 他の低ビットレートコーデックよりもパケットロスに強い ダイアルアップ接続に適している IETFによりRFC3951、RFC3952として標準化されている CableLabsによって設計されている
仕事でごりごり gyp を使って早くも3年になる。いくつか個人的に痒いところを修正して公開してみた。 Github においてある修正版 okumura/gyp オリジナル gyp - Generate Your Projects - Google Project Hosting 修正は以下のとおり。 Android: 非 cygwin でもビルドできるようにした android: Fix path separator for non-cygwin Windows ndk-build. · 22e62bd · okumura/gyp Android: *.so をビルドするときの name mangling 規則を緩められるようにした android: Allow targets to have not strict unmangled names by android_unm... · 0
このページを最初にブックマークしてみませんか?
『DELPHIER@はてな』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く