1 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 16:55:01.87 ] このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。 ※プログラミング自体が初めて!なあなたには↓↓↓こちらへ スレ立てるまでもない質問はここで 126匹目 toro.2ch.net/test/read.cgi/tech/1363522503/ Eclipse統合M34【Java/C++/Ruby/Python/Scala】 toro.2ch.net/test/read.cgi/tech/1361510049/ ★★Java質問・相談スレッド161★★ toro.2ch.net/test/read.cgi/tech/1364006637/ ****オススメ関連リンク**** ■ TechBooster techbooster.org/category/android/tableofcontents/ ■ Androidメモ www.saturn.dti.ne.jp/npaka/android/index.html ■ 逆引きAndroid入門 www.adakoda.com/android/ ■ Androidプログラマへの道 wiki.livedoor.jp/moonlight_aska/ ■ Android Wiki* wikiwiki.jp/android/ ****公式リファレンス**** ■ Android developers developer.android.com/intl/ja/reference/android/app/Activity.html ■ ソフトウェア技術ドキュメントを勝手に翻訳 www.techdoctranslator.com/ ****前スレ**** Androidプログラミング質問スレ Part30 toro.2ch.net/test/read.cgi/tech/1362465598/
70 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 20:55:50.74 ] >>66 じゃあ説明して
71 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 20:58:00.10 ] Java から OpenGL ESの関数を使う場合は、これらのメソッドはほとんどがJNI (Java Native Interface)を用いて呼び出されているので、単発でJNIをコールする 場合は影響ないけど、ループの内部などでJNIを複数回呼び出すとトータルで 大変なオーバヘッドになる 典型的なのがビットマップへのモザイク処理 なので、こういう処理が想定されるときはOpenGL ES関連の処理を丸ごと NDKのネイティブコードで書けば場合によっては数倍近く早くなる
72 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 20:58:04.44 ] パフォーマンス悪いからアクセッサー使わずに変数をpublicにして直接アクセスしろって言われてたこともあったな
73 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 20:59:41.73 ] >>70 Javaほど遅くないけど .NETマネージコードでオーバヘッドが生じる場合は 当然、ネイティブコード VC++ とかの開発が必要になる Androidと同じ
74 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:01:52.54 ] ビットマップへのモザイク処理にはOpenGL使わねえなww ポリゴンや数多くのテクスチャを張り替えたりする処理だな
75 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:04:08.93 ] OpenCVのサンプルなんかはライブラリが別アプリになってて メソッドの呼び出し→プロセス間通信での呼び出しになってるけど 普通の用途だと問題ないレベル
76 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:07:28.26 ] ちょっと古いソースだがAndroidのjini呼び出しって遅いみたいだな 【3】JNIが遅いというパラドックス www.atmarkit.co.jp/fwcr/rensai2/google_int_01/03.html
77 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:11:31.26 ] Javaのメソッドの倍なら気にしなくていいレベルだと思うけど… パフォーマンスが悪いからってローカルのメソッドを全部インライン展開するか?って話
78 名前:デフォルトの名無しさん [2013/03/29(金) 21:12:07.45 ] 関数一回のコールにかかる時間より、 その関数内でかかる時間の方が遥かに長いでしょ 関数コールにかかるオーバーヘッドはできるだけ少なくするように jniライブラリをデザインすべきでしょ
79 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:24:46.16 ] >>59 カスw
80 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:35:34.58 ] お前らもコンソールでちょっとバイナリダンプするツールとか作れるようになったころに こういうふうに悦に入りたい時期なかった?
81 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:45:19.96 ] おまいらが何言ってるかさっぱりわからんw ポインタってなんだよwww
82 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:49:35.40 ] 1に安全、2にマナー
83 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:50:44.47 ] ボインダーってのは、オッパイロケットを武器とする女性型ロボット
84 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 21:53:12.44 ] 発射済みだと例外が
85 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:06:34.97 ] >>84 だれうまwwwwwwwwwwww
86 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:19:17.09 ] お前らいい加減スレタイ読め
87 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:22:14.86 ] >>75 今のdalvikの場合、JNI呼び出し時に遅くなるのはJITが効かなくなるからじゃなかったっけ JITされる単位がメソッドだからJNIの呼び出し位置が悪いと糞遅くなる
88 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:27:29.00 ] >55 ヌル:0x00に一致するもの ナル:何でもないもの 豆知識な。
89 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:46:26.69 ] >>79 おっさんはもう帰れよ。お前の与太話にはもううんざりだ
90 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:47:38.53 ] Javaに無い機能の話しするんじゃない。 仕様レベルの話もするんじゃない。 もっとAndroidプログラミングに直接的な質問の話をしろよ。 わかったかウンコども
91 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:49:56.16 ] 遠回しにだらだら荒らさないで objectivecとappleは素晴らしいっていえよ
92 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:50:01.76 ] ボインダーでオ ナル(null) (*´Д`)ハァハァ
93 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 22:51:31.60 ] NDKの話題もOKなんだからCの話が出てもおかしくはない 問題なのは質問と無関係な雑談だろ
94 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 23:24:26.14 ] アップルは使うは天国、作るは地獄って昔から言ってだな。
95 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 23:35:19.22 ] プレーブラウザーって言葉あるけど、あれ「ブラ」+「ウザー」=ノーブラ派ののおにゃのこの事だからな
96 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 23:35:31.25 ] KeyEventを発行したいのですが、IWindowManagerをimportできずに困っています。 何か参考になるページや助言下さると助かります。よろしくお願いします。
97 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 23:41:15.61 ] Objective-C++のカオス具合はなかなか素晴らしいよw
98 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 00:40:23.22 ] >>97 あそ。続きはアップルスレでどうぞ >>96 こういうことではなくて? d.hatena.ne.jp/blatt/20100110/1263127477
99 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 00:45:47.12 ] なんとなく。 String s = nullにするとあとあとヌルポって言われそうで。 String s;で止めてみる。こうすれば気持ち的にヌルポを避けれそうな気がして。 まあ、避けれないし、初期化されてないって怒られるんだけどね。
100 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 00:53:12.63 ] >>99 初期化忘れて怒ってくれるのってローカル変数だけじゃん。 privateのメンバ変数も怒ってくれたらいいのにな。 ローカル変数は使う直前で宣言&初期化ってセオリーで 初期化わすれの危険性ってすくないと思うし。
101 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 01:00:07.98 ] >>98 そのやり方で何度か試してみましたが、実機上だと反応してくれないんですよね・・・
102 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 01:04:21.40 ] AVDって1コアしか使ってないみたいなんだけど、2コアで動かしたり設定できる?
103 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 01:11:24.48 ] >>101 これは? yokobonbon.blogspot.jp/2011/10/android-keyevent.html
104 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 01:38:58.75 ] >>100 コンストラクタが一つは限らないからどのルート通るかコンパイル前には分からないじゃん リフレクションとかもあるし
105 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 01:59:26.64 ] >>47 ありがとう、やっぱり1000個も描画となるとNDKしかないのか… というわけで発想を変えて、毎フレームで変化する一部分だけを背景で上書き→再描画して、後は前描画したものを利用することにした これで解決するかなとか思ってたら今度はglClear呼んでないのに画面がクリアされる… gl.glEnable(GL10.GL_TEXTURE_2D); gl.glActiveTexture( GL10.GL_TEXTURE0 ); 〜描画処理〜 gl.glDisable(GL10.GL_TEXTURE_2D); 描画処理の部分で一切描画しなければクリアされないんだけど、大きさにかかわらず一個でもテクスチャを描画すると全部消える 正確にはglDrawTexfOESを呼び出した時点で全部クリアされるみたいだ OpenGLで前回描画した画面にどんどん上書きしていくことって出来ないのかな?
106 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 02:33:18.54 ] >>103 sendKeyDownUpSync()でkeycode何通りか試したのですが、CALLやBackなど一部のKeyしか反応しないんですよね・・・ HomeキーなどをButtonでソフト化したかったのですが、自分にはまだ敷居が高いみたいです。わざわざ調べて下さりありがとうございました。
107 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 02:42:51.28 ] Homeキー押下ならIntent投げれば良いと思うけど
108 名前:98 mailto:sage [2013/03/30(土) 02:49:23.50 ] >>101 うそーん?俺実機で動いてるけどなぁー。バックキーね。 俺が調べてた時は再現できるキーと出来ないキーがハードレベルできまってるという話で 全部の再現は無理だぜ。 root化した時にアクセスできるシステムiniみたいのに どのボタンでどのイベント発行というのと、アクセス権がボタン1つ1つに定義されてて ホームキーとかはそこを直接システム権限→ユーザー権限に変更しないとダメみたいな話だった。 電源キーとかも同じ。 ちょっとURL紛失してて申し訳ないが・・・ぐぐってるとそのうち見つかると思われる
109 名前:105 mailto:sage [2013/03/30(土) 04:00:35.04 ] 手持ちの他の端末で同じプログラムを動かしてみると、 ((GL11Ext)gl).glDrawTexfOES(x, y, 0, w, h); で指定した部分以外のところには、描画したものの破片とかがびっしり描画された おまけにその状態で描画を続けると砂嵐のようなゴミが画面に… こういうときは何を疑うべきかな?
110 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 06:32:47.54 ] SmartNewsってアプリの画面遷移効果はどうやってるんですか?
111 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 06:55:05.13 ] そもそも1000この描画するような設計から見なおしたほうが早い気がする
112 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 08:55:58.98 ] >>93 いいこと言うね ちなみにNDK使ってる人の割合は何%位? 処理スピードを求めるゲームだけで、 C/C++の遺産を使う為に使ってる人はいないでしょ
113 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 10:22:27.36 ] シングルコアの端末でも2000枚程度のテクスチャならOpenGLつかえば 問題なくさくさく描画できるはずなんだけどなぁ URLは失念したが英語サイトだったと思うが 2000 OpGL Android でぐぐれば探せるはず
114 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 10:29:59.54 ] ドット絵を入れると伸縮されて綺麗なドット絵得なくなったりするね。 レイアウトごとに分けたりdpじゃなくてpxとかにすればいいかもしれないが。。。
115 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 10:47:49.39 ] Serviceクラスに書いたメソッドを外部クラスから起動するときに staticにしたくないから、serviceクラスをインスタンス化するって大丈夫? 構造変えるべきか、ユーザビリティに特別問題なければこのままいきたい。
116 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 11:19:47.98 ] >>115 ダメ 自分でインスタンス化したものとstartServiceで呼ばれたものは別インスタンスになるから意味がない
117 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 16:21:22.70 ] Android初心者です Eclipseでリストフラグメントのプロジェクト(タブレットだと2paneになるやつ)を作りました リストにデータを挿入してから表示すると初回起動時にはプログレス状態を示すリングが自動で表示されています このリングの表示非表示をプログラムから制御するにはどうしたらいいでしょうか? ProgressBarで検索しているのですが関連しそうな情報が見つかりません このリングのよび名は何でしょうか?
118 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 16:50:46.08 ] く〜〜〜る〜〜〜〜♪ きっとくる〜〜〜♪ きっとくる〜〜〜♪
119 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 16:59:53.79 ] >>117 貞子
120 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 17:52:40.79 ] >>117 サンプルコピったんだったらその中に制御するコードもちゃんとあるからソース読め
121 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 17:58:13.05 ] >>117 読め
122 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:08:23.09 ] >>117 ですけどサンプルコピーしたんじゃなくてEclipseでリストフラグメントの新規プロジェクト作ったんです それでAsyncTaskでリストにデータを追加するようにしたらリングが出るようになったんです コードのコピペとかはしてないのでOSが出してるんじゃないかと思います
123 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:11:03.95 ] >>117 そのリングはprogressbar バーじゃないのにbarなのは変な気がするけれど、 progressbarなのだ。 で、ただくくる回ってるだけの部品を 表示したり非表示にしたりしてるだけで、 特筆すべきポイントは全くないから、 だれも記事にしてないんじゃねw
124 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:18:59.19 ] >>123 お答えありがとうございます 今プロジェクトの中をprogressbarを大文字小文字無視で検索してみましたがヒットしません xmlファイルの中にもなかったです どうやったら非表示にできるんでしょうか? 別途ProgressDialogを出していてリングがかぶるので消したいんです ListViewが出してるのかな?
125 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:22:34.81 ] >>124 エスパーじゃないんだからその情報だけじゃ分からんよw
126 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:32:42.85 ] >>117 です 解決しました ListFragment.setListShown() が表示・非表示のスイッチでした ちょっと名前に慣れてなかったんで見つけるのに苦労しました
127 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:37:47.17 ] OS 標準の XML に list_content.xml というのがある。 ListFragment はこれを内部でレイアウトにセットしてる。 例のくるくるは "progressContainer" というアイテム内で表示されている。 この progressConteiner の visibility 属性を gone と visible を切り替えると 表示非表示を切り替えることができる。
128 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 18:39:14.14 ] …て、専用 API あるのか。
129 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 19:01:21.95 ] >>127 解説ありがとうございました そういう仕組みになってたんですね 確かにlist_content.xmlの中にそういう記述がありました
130 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 23:18:13.63 ] レシーバの設定で、マニフェストのintentFilterに <action android:name="android.intent.action.TIME_TICK"></action> と記載しても受信しない。 それをそのままコピペで、コード内で IntentFilter.addAction("android.intent.action.TIME_TICK") では受信できる。 なんで?どう違う?
131 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 23:27:15.69 ] WebViewについて質問です 現在ハイパーリンクを踏むとインテントが発行されます。 そこで「リンクをタッチ」→「インテント」の間に処理を挟んで 「ブラウザを開く」「何もしない」など自由に制御する方法はありますでしょうか? よろしくお願いします。
132 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 23:28:16.66 ] >>130 Stickyじゃないから
133 名前:131 mailto:sage [2013/03/30(土) 23:32:37.88 ] 何か盛大に勘違いしていました 大丈夫でした 失礼しました…
134 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 23:50:49.08 ] >>130 Intent#FLAG_RECEIVER_REGISTERED_ONLY で送られたブロードキャストはマニフェストのintent-filterでは受信できない
135 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 00:37:52.56 ] >>111 ブロック積むようなゲームだとこの列に□何個描いて〜、ってループ回したりしない? 毎回積んである数もその種類も変わるからそういう風に描画してたんだ >>113 描画のデータでは確かにかなりさくさく行くはずだけど、実際そのほかにも処理回してるからかそんなに早くない… ゲーム用のスレッドとレンダラーのスレッドでそれぞれ別の処理もしてるからだと勝手に思ってる
136 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 00:50:06.99 ] 全部のブロックが同時に動くわけじゃないなら積んだブロックはバッファに描き込むから実質バッファと現在操作中のブロックの2つしか描画しないだろ
137 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:03:54.86 ] HTL21で実機テストしてる方って居ますか? 会社のWindowsPCでも自宅のWindowsPCでも認識してくれないんですが なぜかMacは認識してくれる状態 公式にUSBドライバを入れても反応せず 情報出てこないってことは端末依存か設定ミスですかね・・
138 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:08:13.47 ] appWidgetでのreceiver。 パッケージ内のサービスでレジストしないとACTION_BATTERY_CHANGEDが拾えないっていうので、 やったんだけど、やっぱり拾えない。 ためしにTIME_TICKやったらそっちは拾えてる。 なんででございましょう
139 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:09:07.93 ] >>137 自分はhtc jでやってるけど。 htc sync必須だったような? HTL21はしらんけど
140 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:10:57.13 ] >>139 ありがとうございます つかそもそもsyncですら認識してくれないみたいなんで 普通にauショップ行ってきますわ 似たような人がネット上に居たんで
141 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:17:28.96 ] >>131 ある
142 名前:138 mailto:sage [2013/03/31(日) 01:23:03.61 ] できでました。 if(TIME_TICK){ 処理 if(BATTERY_CHANGED){ 処理 } }になってました
143 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:34:49.80 ] GalaxyNote2でも4.0エミュレーターでも動作するんだけど xperia gxでRingtoneを↓で取得した時にnullになってしまいます。。 対処方法があればどうか教えて下さい。 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); mRingtone = RingtoneManager.getRingtone(getApplicationContext(), uri); mRingtone.play(); =====LOG CAT============================================================= 03-31 01:28:42.724: E/MediaPlayer(15312): Unable to to create media player 03-31 01:28:42.724: E/RingtoneManager(15312): Failed to open ringtone content://settings/system/ringtone 03-31 01:28:51.223: E/AndroidRuntime(15312): FATAL EXCEPTION: main 03-31 01:28:51.223: E/AndroidRuntime(15312): java.lang.RuntimeException: Unable to start activity ComponentInfo{TestActivity}: java.lang.NullPointerException =========================================================================
144 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 01:53:12.37 ] >>136 まさしくその通りで、現在動いているブロックのみを書き換えて、残りはClearせずに描画するようにした そしたら>>109 の通り全部クリアされるわノイズのようなものが描画されるわで全く正常に動作しない 原因がさっぱり分からないから今からちょっと描画テスト用のプロジェクト作ってみようと思う glDrawTexfOESで一個でもテクスチャを描画するとバグるからこれが原因なのは間違いないんだけどアプリのOpenGLの設定が悪いのかAndroid側が悪いのか… 少なくとも手持ちの2機種では正常に動作しないことだけは確か
145 名前:143 mailto:sage [2013/03/31(日) 01:54:55.01 ] すみません。相棒のgxで着信音が設定されていないためnullになっていただけでした。 お騒がせしました。