サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
blog.canele.dev
今回は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は、シンプルな機構で空きメモリが足りなくなったらサクっと
このエントリーはUnreal Engine 4 (UE4) Advent Calendar 2015の19日目です。 今回はいろいろ時間が無かったため、前回の夏コミ(C88)で頒布したUE4の薄い本(Dive to Unreal Engine 4)の補足ネタを書いていきます。久しぶりのUE4エントリーです。 薄い本では既に実装済みだが(試験的実装であるなどの理由により)無効化されている機能を、設定ファイルに設定を追加することによって機能を有効化するというネタを掲載しています。で、今回は、その補足を。なお、今回検証に利用したバージョンは、UE4.10.1 Windows版です。 お約束ですが、設定ファイルを手動で変更した場合のUnrealEditor等の正常動作については保証されません。自己責任で行って下さい。 設定ファイル(.iniファイル)について 設定ファイル(.iniファイル)は、U
先日紹介したゲームアプリの数学 Unityで学ぶ基礎からシェーダーまでは、 3章はベクトルの話。ここからようやく3Dの話らしくなってきた、と思っているところ。 この本ではUnityでのベクトルの扱いについて書かれているので、このエントリーではUE4でのベクトルの扱いを書いてみる。 ベクトルとは ベクトルとは数学的には「向きと大きさを表したもの」という定義になる。例えばボールが壁にぶつかって跳ねるといった古典力学の演算は、ベクトルを導入することで演算が楽になる(といっても、ゲームエンジンでは物理演算は物理エンジンが処理してくれるのだけど)。 ベクトルの定義の詳細は、こちらの解説が参考になるはず。 ベクトルの型 UE4には、Vector型とVector 2D型の2つがある。Vector型は(x, y, z)を扱い、Vector 2D型は(x, y)を扱う。 サポートされているBluePrint
前回に引き続き、ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまでの2章の話を。ここでは座標系の解説をしている。 座標系は、コードの話はあまりなくて(話のしようがない)、知識として知っておくべき事が書かれている。ここでは、重要そうなネタをメインに書いていく。 右手系、左手系 2Dの座標系や3Dの座標系でもっともく使われるデカルト座標系(x,yや、x,y,zを使ったよくある座標系)の解説が書かれており、続けてデカルト座標系ではおなじみの右手系、左手系の話となる。右手系、左手系とは、X、Y、Zの座標軸の定義の違いを表している。詳細は座標系 (Direct3D 9)にも書かれている。 右手系、左手系をざっくり分類すると以下の様になる。 右手系:OpenGL 左手系:Direct X、Unity、UE4、CryEngine 以前であれば、OpenGL向けのサンプルコードをDirect X向
先日発売になったばかりのゲームアプリの数学 Unityで学ぶ基礎からシェーダーまでを読んでいるところ。 で、その感想をつらつらと書いてみる。 ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまでposted with amazlet at 15.09.28久富木 隆一 SBクリエイティブ 売り上げランキング: 3,719 Amazon.co.jpで詳細を見る 数式と図の解説がメイン、Unityはオマケ この本のタイトルには、Unityで学ぶ~、と書かれているけど、Unity的な要素はオマケ的なものであり、本質的な解説は図と数式で行われているので、数式が理解できれば、Unity(C#)を知らなくても理解はできる。もちろん、それがUnreal Engine 4であっても。 ただ、数式の意味がいまいち理解できないので、ソースコードも詳しく載せて欲しかった、というニーズもあるだろうなぁ、とと
UnrealEngine Advent Calendarの18日目です。ほかの方のエントリーと比べて、こんなゆるいエントリーを書いてよいのか躊躇しますが、UE4をはじめて日が浅い人向けということで。 きっかけ 秋からようやく触り始めたUE4ですが、最初にとりかかった課題が「MMD(MikuMikuDance)系のモデルを読み込んで、モーションやカメラを動かすにはどうしたらよいのか?」。その手法をTwitterで尋ねて見ると「Unityなら、MMD4Mecanim使えばすぐできるよー」という返答が返ってくるものの「UE4は、わからん」という返答が…。 ということで、ググりながら進めていきました。基本的には、UE4でMMDのモーションを使ってみる - ぼっちプログラマのメモを基本にいろいろ調べた結果となっています。今回のようなMMD向けデータを使ったPV作りは、UE4の扱いに慣れるには割とよい
ということで、「LLVM/Clang実践活用ハンドブック」というLLVM/Clang関連の本を出しました。 LLVM/Clang実践活用ハンドブックposted with amazlet at 14.07.03出村成和 ソシム 売り上げランキング: 4,679 Amazon.co.jpで詳細を見る 目次等は、ソシムさんのHPを参考にして貰うとして。LLVMの本といえば、きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~を思い浮かべる人も多いでしょうが、きつねさんの本はコンパイラをつくるための解説をしているのに対して、今回の本は、Clangを有功に使う側にとって必要な知識等について解説しています。 Clangは普通にgccなどのコンパイラの代替として使う分には便利なコンパイラだと思います。開発で使っていてもいろいろ便利だと感じた点も多々ありますし。ただ、Clangの便利
Ubuntu 12.04を利用している時、キーバインドの変更(例えばCaps LockとCtrlの入れ替えなど)は、.Xmodmapファイルをホームディレクトリに配置するだけで対応できてきた。 で、最近インストールしたUbuntu 14.04では、この方法では変更できなかった。 で、いろいろ調べていくと、Xmodmapは事実上の廃止状態で、Ubuntu 13.10以降ではxkbを利用するのが正攻法ってことらしい。ので、xkbでキーバインドを変更する方法を色々調べてみた。 xkbで設定を行えば、X window上で動作しているすべてのアプリに設定が反映されるので。 Caps LockとCtrlの入れ替え程度であれば、xkb以外にも方法があるのだが、xkbを使う方法では、「;キー」にenterキーを割り当てるなど変則的な対応もできるのが魅力。 変更は次のように行う。 xkbでキーバインドを変更
先日、Clang 3.4がリリースされました。 このClang 3.4には様々な新機能が追加されましたが、その一つにVisual StudioのC/C++コンパイラドライバ(cl.exe)を、clangに置き換えるコンパイラドライバ(clang-cl.exe)が正式リリースされたことが挙げらます。そのリリース文は次の通りです。 clang-cl provides a new driver mode that is designed for compatibility with Visual Studio’s compiler, cl.exe. このclang-cl.exeは、オプションがcl.exe互換となっているコンパイラドライバです。つまり、ビルド時にcl.exeをclang-cl.exeに置き換えることで、Visual C++のコードをclangを利用してビルドできるようになります。
この間まで、RaspberryPi + Raspbian(以下RPiサーバ)を使って家庭内サーバを運用してた。利用目的は、NAS + プリンターサーバという内容で。NASはちょっとしたデータのバックアップ用途に、プリンタサーバは、どのPCからでもプリントできるように(年代物のプリンタなので…)という意味で。他にもソースコード検索も行いたかったけど、なんせCPUが非力なのでそのあたりは割り切って。 RaspberryPiサーバは、消費電力が少ない、設置場所も取らないなど、いろいろメリットも多かったし、いろいろ便利だったのだけど、そのうちいくつか問題が浮上してきた。そのうち大きな問題は次の2つ。 安定しない 転送速度が遅い まずRPiサーバは安定稼働しない。ふとした時にNASに接続しても、接続できない。ssh接続しようとしても蹴られる。何度再起動してもすぐに再起動しないetc…。これが、何度も
Android 4.4 KitKat 冬コミ原稿リレーの 11月15日分です。 ここではKitKat(Android 4.4)から追加された新しいAndroidランタイムであるART(Android RunTimeの意味?)の話をします(ランタイムとはソフトウェアを動作させる基盤となるライブラリのこと)これまで利用されていたDalvikVMにかわるランタイムとして2年間かけて開発されてきたようです。 ARTの最大の特徴は、ソフトウェアをネイティブコード(CPUが直接実行できるコード)で実行することを前提に設計されている点です。 ARTを有効化することで、アプリケーションはAOTコンパイラによって事前にネイティブコード化され、実行時にはネイティブコード化されたアプリケーションを実行しています。そのためパフォーマンスが向上が期待できます。 ARTはKitKatで初めて公開されたコードであり開発
ということで、私の周辺では話題沸騰のlsを読まずにプログラマを名乗るな!を担当編集者さんより頂きました。この本の編集者さん、Android NDKネイティブプログラミングを出版した際に担当していただいてた方だったので、その縁で。 lsを読まずにプログラマを名乗るな!―技術的な「壁」を突破するCの達人たちの知恵と工夫posted with amazlet at 13.09.27藤原 克則 秀和システム 売り上げランキング: 4,408 Amazon.co.jpで詳細を見る ちなみに私は「lsのソースを読まずにプログラマを名乗っていました、ごめんなさい」というクチです。OSSなコードって本当に必要な箇所しか読まないので…。 lsのソースコードを解説している本 で、この本は一言で言うと「lsのソースコードを解説している本」です。それ以上でも、それ以下でもないです。これは、筆者さんのtweetで見
ndroid NDKで使える線形代数ライブラリ(平たく言うとベクトルや行列演算などの2D,3Dグラフィックスの演算を行うライブラリ)を色々調べていたのだが、そのなかでもEigenの使い勝手がよさそうなので試しに使っているところ。OpenGLとの親和性も高く、使い勝手がよさそうなので今後使っていこうかと思っている。 Eigenの特徴は、テンプレートライブラリであること。つまり、ライブラリのビルドが不要で、ヘッダファイルを取り込むだけでプロジェクトで使える。これだとAndroid NDKのような特殊な環境(でもなくなってきた?)でもすんなり使える。 ただ、Android NDKで使える様にするにはちょっとした設定が必要なので、そのメモを兼ねて記録を残しておく。ここでは、Eigen 3.1.2、NDKr8eを使った。 ダウンロード~インストール Eigenの公式サイトから、たどってEigen 3
ということで、組み込みAndroidのセミナーの告知を。 8月2日(金)、3日(土)に、東京巣鴨のCQ出版セミナールームにて、実習・組み込みAndroid開発力強化集中講座 (金曜&土曜 2日コース) Androidボードからさまざまなデバイスを制御してみようと題して、実習の含めた組み込みAndroidのセミナーを行います。申し込みはこちらから。 このセミナーでは、BeagleBoard-xMとAndroid 2.3を使って、基礎的な解説から「加速度センサーへの対応」「タッチパネルへの対応」「独自SDKの作成、ビルド & サーボ制御」といった内容を実習を交えて学んでいきます。 ちなみに組み込みAndroid エキスパート テクニックブックを読んでおくと、理解が早まります(セミナーの内容の半分が、この本に書かれているので) 参加特典として、実習で利用した開発環境(VirtualBoxのファイ
ということで、「ARMで学ぶアセンブリ言語入門」が6月22日に発売になります。 一言で内容を表すと「C言語で組み込み開発している人向けのARMアセンブリ言語入門」。言い方を変えると「バリバリとアセンブリコードが書ければ言うことないけど、C言語でコードを書いてたとしても、アセンブリ言語がどんなモノで、どんな風に成り立っているのか知っておこうよ。後できっと役に立つよ」。 内容としては、ARMアーキテクチャの話から、アセンブリ言語特有の考え方(レジスタ、命令など)、命令解説、C言語との連携、例外・割り込みの解説など、アセンブリ言語を扱うのに必要なところを一通り、といった感じで。 サンプルコードは特定ハードウェア(評価ボード)に依存せず、QEMU(ARMプロセッサをエミュレートするソフトウェア)上で動作することが前提となっている。よくあるパターンで、ARMプロセッサの解説本だと何かしらのARMプロ
ってことで、Renderscriptは今どうなっているのかをまとめてみた。 一番の謎は、Google I/O 2013に「High Performance Applications with RenderScript」というセッションがあったこと。一言でいうと「Renderscriptはいつ使うの? 今でしょ! 今後も頑張って拡張しちゃうよ。期待しててね!」という内容。なんでセッション1つ設けたんでしょうね? Renderscriptの紹介 Renderscriptって何やねん? ってところからお話する。単純に言うと「AndroidでGPU Computingを行うため開発環境」のこと。 もうちょっと詳しく書くと以下のようになる。 文法はC言語(C99) .RSファイルにコードを書いてJavaから呼び出す(NDKみたいだけど呼び出し方は緩い) LLVM/clang使ってるから、CPU、GP
Emacsはとても強力なエディタだと言われているが、周囲に使っている人がいなかったり、なんとなく使っていたりして、いまいちピンと来ない人も多いはず。 そんな人に観て欲しいのが、このEmacs Rocks!という動画集。Emacs Rocks!では、毎回Emacsの様々な機能にフォーカスを当てて解説している。 1本が5分以内の短いもので英語の解説付き。喋っている内容が理解できなくても、動画を見ていれば、だいたい理解できる。 ここでは、そのうちのWeb開発に役立ちそうな機能を解説した動画3つを紹介しておく。残りの動画は、Emacs Rocks!の公式サイトや、You Tubeのemacsrocksチャンネルから見られるので、興味がある人はぜひ。 Emacs Rocks! Episode 11: swank-js Emacs Rocks! Episode 13: multiple-cursors
手軽にAndroidアプリのテスト体験をしてみたい人向けに、bitbucket.orgにリポジトリを作った。元々は、Jenkinsのテストのために用意したものだけどせっかくなので公開しておく。ちなみに元のコードは、今から5分で,開発中のAndroidアプリを単体テストしよう (JUnitで自動テストする方法)から。そのままプロジェクト化しただけだったりする。 Androidアプリのテストを体験してみる 最初に手元のPCにソースコードを用意する。以下のスクリプトを実行する。コピペして実行するときは1行ずつ実行してね。 cd $HOME/tmp git clone https://bitbucket.org/demuyan/jenkins_smpapp1.git git clone https://bitbucket.org/demuyan/jenkins_smpapp1test.git あと
Androidプラットフォーム(組み込みAndroid、とも呼ばれます)を解説した本はあまり多くは出版されていません。で、そのような書籍のなかでは、もっとも易しい書籍が出版されました(私もレビュアーとして参加しました。) 図解 Androidプラットフォーム開発入門posted with amazlet at 13.03.25橋爪 香織 大野 徹 小林 明大 末広 尚義 室谷 優実 山本 昭弘 技術評論社 売り上げランキング: 20,836 Amazon.co.jpで詳細を見る 書籍の内容は、プラットフォームとしてのAndroidの入門書です。内容的には、基礎から学ぶ 組み込みAndroidといった書籍よりは、イラスト多めで、易しく解説されています。そういった意味では、とっつきやすいんじゃないかと。 特に、「プラットフォームって何?」「Androidの中身ってどんなソフトウェアが動いている
ということで、1月27日に横浜PF部に参加&発表してきました。 お題は「GDKとLLVM(横浜PF部向け)」。あんまり難しいコト書いてません(深く書く時間が取れなかった…)。なので気楽に読めるんじゃ無いかと。 GDKとLLVM(横浜PF部向け) from demuyan LLVMに関しては存在は以前から知ってたけど、最近あちこちでよく見かけるようになったのでそろそろ本腰いれてマスターしていこうかと思っていたりする今日この頃です。 Android NDK ネイティブプログラミングposted with amazlet at 13.01.28出村 成和 秀和システム 売り上げランキング: 178,495 Amazon.co.jpで詳細を見る
電子回路を基礎から学ぼうと、電子回路の部品を買い揃えつつ学習中な今日この頃。そんなとき、地方在住者(おいらですな)にとっては通販が頼みの綱となる。 車で片道1時間走れば電子部品を扱っている店に着くけど、数百円のものを買うためだけに行く気はしないし、目的のモノが売っているとは限らない。そして、通販で買った方が間違ったモノを買うことが少ない。 目的のモノを探すために多くの通販サイトを見て回ったが、結果として以下のサイトで大抵のモノは揃うと分かってきたのでメモとして残しておく。ここではクレジットカードが利用できるサイトのみ紹介する。 Amazon.co.jp おなじみのアマゾン。工具類が揃えやすい。スイッチサイエンスも出店している。 秋月電子通商 通販では外せないサイト。抵抗、LEDなどの基本的な部品の品揃えはよく価格も安い。ただ半導体などの品揃えはイマイチ。送料は500円。 せんごくネット通販
ということで、NDK本の2版が12/20に書店に並びはじめました。初めての改訂本! Android NDK(エヌディーケー)ネイティブプログラミングposted with amazlet at 12.12.22出村 成和 秀和システム 売り上げランキング: 45,774 Amazon.co.jp で詳細を見る 前書と比較しての大きな変更点は以下の通り。 Android NDKr8b対応(前著はAndroid NDKr5b対象) オープンソースライブラリを扱った実例を追加 あとは、文章やサンプルコードなども細々と変更しています。これは、前書を出版した後に頂いた感想や、自分が書いた本で調べ物をした時に感じたことなどを反映してます。そういう意味では、ただ最新のAndroid NDKに対応しただけの本ではないですよー、ということで。目次は次のとおり。 目次 前書からの違いを知りたい人も多いはず。そ
普段から濃い目な記事ばかり書いていると言われがちな私ですが、次号か次々号あたりで、日経Linuxに「Androidアプリ開発の奥の手!絶対わかるAndroid NDKのディープな話」という連載(全3回予定)が始まります(私の連載タイトルって長めになると思うのは気のせいか…) この連載は、毎回Android NDKにある機能、ライブラリを1つ取り上げて、使い方から始まって仕組みの深いところも含めて解説していきます。短期連載なのでAndroid NDKのいろんなところを書けないのが残念だな、と。あとは、NDKを使ったことがない人にも配慮した内容だから、怖くないよ!大丈夫だよ! 編集部に伝えることは大事 で、感想などは編集部まで伝えて欲しいなと。 これは、連載全般に言えることだけど、「こんなことを書いて欲しい!」とか「もっと続けて欲しい!」という記事があったら、著者に直接伝えるよりは、アンケート
Android Advent Calendar 2012 12月11日(表)のエントリーです。裏は、@currycatgtiさんです。おいらのエントリーでネタを期待している人はいないでしょうから技術話で。 ここではAndroid NDKの後継開発ツールとして開発が進められているらしいGDK(もちろん未発表)について、推測も交えていろいろ話していこうかと。まあ、正式な発表があったわけでもなく、推測も織り交ぜて書いてあるので、話半分で読むのが丁度良いかなと。 Android4.1で出現したGDKフォルダ 事の発端は、AOSP(Androidの公開されているソースコード)のAndorid4.1から追加されたGDKフォルダを調査したことから。AOSPに含まれている「なんとかDK」フォルダはAOSPにいくつかあるが、これらフォルダはすべて開発キットが格納されている。AOSPのトップにあるフォルダは、
私の仕事の1つに技術系記事や書籍などの物書きがある。今も、とある文を修正している最中。 私が文章を書くときは、出だしはとにかく思いついたことをひたすら書き連ねて、そのあと幾度となく修正を行う、というのがいつものパターン。そのため、できあがった文章が前後のつながりがなかったり、言い回しがおかしな箇所が残ることもある。 このような文章チェックは、これまでは幾度にも渡る黙読でチェックしてきた。が、最近方法を変えて、音読でチェックしているのだが、これが非常に効果的。音読だと読み飛ばしがないので、言い回しがおかしい箇所がすぐにわかる(これは、数学ガールで有名な結城先生も書いている)ほんと、公表する前は一度音読した方がいい。 音読にも限界が 音読にもいろいろ方法がある。一人で音読するのも効果的だが、これも限界がある。個人的に問題だなーと思っているのは「思い込み」による間違いが分からない点。例えば、私は
VMware Playerは当初より「非営利目的の使用のみ」利用可能である。最新版のVMwarePlayer 5.0では、これがWindowのタイトルに表示されるようになった。 で、問題になるのが、この「非営利目的の使用のみ」とはどこまで指すのか?という点。いろいろ検索してみたりして、分かる範囲でまとめてみた。 コスミー報告書[社外秘] - VMware Player のライセンス(商用利用について)では、 私が知りたいのは以下だ。以下が商用利用に当てはまるのか否か。 ①会社の業務における作成するプログラムのテストをゲストOSで行う。 ②会社で個人の事務作業に使う。 ③個人事業主がプライベートで使う。 さんざんWebで検索したが、上記のEULAを読み解いたり、FAQの文言から推察したりではっきりした答えは分からなかった。 誰かサポートに聞けよ!と思ったが意外に誰もいない。(聞いたけど公開し
前回に引き続きADTr20 & Android NDKネタ。今回は「ADTr20でNDKなプロジェクト環境が簡単に作れるようになったよー」という話。 NDK関連プロジェクトの準備は大変(従来は) これまでは、新規作成したAndroidアプリケーションのプロジェクトに一部NDKなコードを混ぜようとすると、 jniフォルダ作って jniフォルダにC/C++のファイルとAndroid.mkファイルを作って Javaコードと同時にビルドできるように設定して ... etc など、手動で設定を行う必要があった(まあプロジェクトを新規作成するときだけ行えばいいのでそんなに手間でもないのだが) が、ADTr20を使うとこれらの手間から解放されることに! NDK関連プロジェクトの準備が自動されている(ADTr20では) ということで、先ほど手動で設定していた項目がADTr20を利用した場合どうなるかを紹介
ようやく、ようやく、ADTr20になってC/C++のコードがデバッガを使ってデバッグができるようになった(これ以下、NDKデバッグ機能と呼ぶ) これまでもgdb(GNU Debugger)を使ったデバッグができていたけど使い勝手的に難易度高い訳で。ようやくEcliseをつかってデバッグができるようになったのはかなりうれしい。 ということで、設定からデバッグまでの手順をメモしておく。 インストール 最初にADTr20を新規にインストールする。これはNDKデバッグ機能に必要なプラグイン(NDK plugins)は、ADTr18からのアップグレードではインストールされないから。ADTr18を削除して、ADTr20を新規にインストールした方が早い。 ADTr20だとインストールされるプラグインはこんな感じ。 NDKデバッグ機能は、CDT(EclipseのC/C++開発環境向けプラグイン)の機能に依
日経ソフトウェアに寄稿した記事(PSVitaプログラミング入門)が掲載されました。 日経ソフトウエア 2012年 08月号 [雑誌]posted with amazlet at 12.06.25 日経BP社 (2012-06-23) Amazon.co.jp で詳細を見る ここで掲載しているのは、PSMobileSDK(旧PSSuiteSDK)を利用してPSVita向けのアプリケーションを開発する手順や、実際に弾幕シューティングゲームを作成して、制作課程を体験してみようとか、そういった内容となっている。認識している限りでは、雑誌媒体で深くPSMobileSDKを紹介したのは、この記事が初じゃないかと。 これだけでは何なので、掲載までの道のりについていくつかの話を。 ほんとに4月中に公開されるん? この記事、当初の話の上では先月号に掲載される予定だった。ただ、掲載の前に一つ問題(というか疑問
次のページ
このページを最初にブックマークしてみませんか?
『Happy My Life』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く