Android
突然Androidアプリを作り始めた。まぁ、一部の人向けなので、大々的な配布は行わない模様。大々的に配布できるアプリをそろそろ作りたいものだが...
microSDカードにファイル突っ込んで読み込ませると言っても、Androidでディレクトリ作ってファイル配置するのめんどいと思い、assetsやresに突っ込めないか?と思ってやったら突っ込めない事もなかった...が何かおかしい。原因はそのうち調べる
BaseAdapter継承してgetViewオーバーライドしてListViewにセット!面白い。ただgetViewの中でWeb上の画像などをImageViewにセットしようとすると、ListView内の画面外にある項目がスクロールで画面内に入るたびにWebにアクセスしてしまったので、前もってア…
久しぶりにAndroidのView作りをした。OpenGLを使ってた時期を除くとどれくらいブランクがあることか。とりあえずListView用のAdapter作って、RelativeLayoutを使うなどした。RelativeLayout面白いけど設定間違えると悲惨なことになるな!あとUIスレッドでネ…
Androidで簡単に3Dが使えるようなフレームワーク作りたいなーと思い作成中。頑張る
Androidで遊んでいます。新しい端末になったのでプログラムが動かなくなったりしたけど元気です
新しいAndroid端末を購入したが、新しい端末でOpenGLの描画ができない!と思いきや GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); としている部分があったが GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); にしたら動いた!と…
久しぶりにAndroid弄ろうと思いeclipseを立ち上げ今まで作ってきたプロジェクトをビルドして、実機で起動しようと思ったら何か設定が変わってたのか動かなかった。結局原因がわからないまま実行できるようになったので、何が何だが...新しいAndroid端末304SH…
次はアニメーションやる
モデル表示は完成に近づいてきた?アニメーションが大変そう
テクスチャ画像のwidthとheightが2のべき乗じゃない部分があって、今まで読みこめてないテクスチャがあることに気付いた。今まで目が黒かったのはそのためだったか
MMDのモデル表示は進んでいます。あともう少しでモデル表示が終わって、アニメーションに突入する予定です。さぁ、頑張ろう!
AndroidでOpenGL ES 2.0を使ってMMDのモデル表示をやろうとしながら、今まで全然作業が進んでなかったが、今日、ようやく手が進んだ。明日は...いそがしくなりそうなので、進まない可能性が。まぁ、いいや。のんびり進めよう
シェーダはRubyのおかげで固まった感じだけど、まだAndroidだと描画部分まだ書いてなかった。早くやらんとな
やっつけなんで例外処理が適当だけど。もう少し頑張ったらシェーダ読み込む。ShaderExceptionは自分で作った例外クラス。まだ使ってないので動くか不明 package net.d_kami.mmd.reader; import java.io.InputStream; import java.io.InputStreamReader; impo…
全然やらずに止まってたけど再開した。ByteBufferが大活躍中だけど、速度はどうなんだろう?getFloatとかgetIntなどがデフォルトでビッグエンディアンなのでリトルエンディアンにする必要があるけど、バイナリファイルをFileChannelを使ってByteBufferまで持…
今日(昨日?)はPMDの読み込み途中で終了した。取得したのは ヘッダ 頂点リスト 面頂点リスト 材質リスト ボーンリスト IKリスト の6項目。早く表示まで辿り着きたい。そしてアニメーションやって物理演算やって...夢が膨らむ
MMDではモデルやモーションにもよるが、ほとんどの場合、物理演算がないと悲しい結果になることがわかった。私の技術ではRubyでMMDをもう高速化できそうにもないので、別の環境でやろうと思っている。その環境の候補がAndroidなのだが、パソコンのRubyに比べ…
当然のことに気付かなかったが、端末から受け取るレイヤーと外に送信するレイヤーが違っても、ヘッダだけちょっと弄ってあとはそのままで良かった感じ。ヘッダをちょっと弄るといってもTCPだと死ねそうだけどね。それでDNSの外に向かうパケットは処理で来て…
VPNServiceを使ったソースコードを公開します。起動するとネットに繋がらなくなるけど、端末から飛んでいくパケットが途中まで(現在最初のパケットのみ)見れます。VPN関係のライブラリの使い方が正しいか不明。Android 4.0からが対象。また、AndroidManifest…
何かライブラリがあれば...と思っていたが見つからなかったので過去に自分で作ったメタセコイアのモデルを読み込むやつを使うか。我ながら酷い出来だ。色使えないし、テクスチャ使えないし。構造無視だし
何の役に立つかはわからんけど、設定ファイルに起動するActivity書いておいて、Go!かな?ちなみに、この処理はあるActivityに書いてあるので、Intentのコンストラクタにはthisが指定されている Class c = Class.forName("net.d_kami.test.TestActivity"); I…
前回はbyte[]でやってたけど、ByteBufferを使うようにしてみた。ByteBufferだとgetShortがあるのでちょっと楽できた public void set(ByteBuffer packet){ int first = packet.get(); version = (first >> 4) & 0x0F; headerLength = first & 0x0F; serviceT…
byte[]でやってたけどByteBufferの方が良さそう。intとかshortでも値を取れるし、先頭から順番にアクセスしていくからポジションが変わるのもよい。何よりビット演算が減らせるのは嬉しい。でも微妙に残ってしまうんだよな
VpnService使ったAndroid端末とのやり取りはIP層からのやり取りで、接続先とのやり取りはTCP上かUDP上(両方ともヘッダ無し)のやり取りみたいね。だから、接続先からの応答はTCPヘッダ又はUDPヘッダとIPヘッダを付与してからAndroid端末に渡すっぽい。そしてA…
VpnServiceを使って、Android端末からのパケットは受けとることができた。IPパケットを取得、その上にはUDPで送信先ポート番号は53!DNSだった。それをVpnServiceでprotectしたDatagramChannelで送信。これで応答が返ってくると思いきや無反応...なんてこっ…
VpnServiceを使ってIPパケットを取得できたのでIPヘッダを表すクラスを作成した。読み込んだパケットをsetする。ちょっと長くなってしまった。最初の来るパケットはUDPっぽいので次はUDPヘッダクラスを作成する package net.d_kami; /** * IPv4ヘッダを表す…
4.0から導入されたVpnServiceで見れるレイヤーはIPからっぽいな。どこかの情報でEthernetフレームを取得できてそうなことが書いてあった気がしたがそんなことはないようだ?Ethernetフレームタイプを表示させたら見事IPアドレスの一部だった
Android4をちょっと調べてみたら面白そうな機能が追加されてたので何か作ってみたいな。使い方がわからないライブラリがあるのでGoogle先生とサンプルを見ながら勉強していきたい
4.0の新機能を使って作ってみようか