Androidプログラミング質問スレ revision54
■ このスレッドは過去ログ倉庫に格納されています
来年後半からターゲットはAPI26以降必須だってよ >>29
runOnUiThread以前に、止まって困る処理をやるときには、Service前提で考えないとめんどくさい。 >>31
引き続きありがとうございます。
どこかのブログで「WakeLockを入れるだけで簡単に出来た!」ようなことを見たので、数行で出来ると思っていたのですが、
手抜きせず丁寧にServiceクラスに置き換えた方が良さそうですね。
ServiceクラスでBluetooth通信を行っている記事を見つけられないのが少し不安ですが、頑張ってみます。 Android OからBackgroundServiceは1分くらいしかもたない、フォアグラウンド(通知を出す)にするかJobScheduler使っとけ JobSchedulerも長い処理の解決法にはならんだろ。
諦めるしかない。 何度もすいません。
Serviceクラスから要求し、来たデータを受信するコールバックを
Serviceクラス内に書いて受信するのは可能ですよね? 心配なら見守ってます(おまえをかんし)通知を出してフォアグラウンドサービスにした方が楽。
いずれTCPやBT、GPS、センサを常駐監視、通信するサービスは電力消耗を避けるためにフォアグラウンドサービス化を迫られると思われる。
隠れてこそこそやるサービス実装は、アクティビティと同じように優先順位を下げられる。
悪くすればアクティビティのように止められる。 ユーザーはお馬鹿さんだからフォアグラウンドにすると
通知アイコンが邪魔だからって評価下げてくるよね 来年後半にTargetApiがOreo以上必須になるんだってな 23対応がめんどくさいな。
アノテーションで簡単にできる方法(Decorateorパターン?で集約するような)ないんかな。 スマホ本体から直接通話した時と
Bluetooth(HFP)で通話した時を判別するにはどうすればいいんだろう? 何かの拍子にtextviewやlistview内の文字がおかしな表示になってしまうのですが、これは何が原因なのでしょうか。
ttps://pbs.twimg.com/media/DJCv9N5VoAUSMbM.jpg
↑こんな感じに文字化けします。
最初からこうなのではなくて、色々触っているうちにこうなってしまいます。 え、これってTwitterアプリのバグなんじゃないの?
自分の機種でも起きてるけど、他のアプリとかでは見たことない。 自分のアプリで文字が四角になるバグが発生したので調べてみたところ、
tiwtter公式アプリでも全く同じ症状が出ているようなので画像を貼らせて頂きました。
原因がさっぱり分からず、調べても全く情報が出てこないのでお手上げ状態です。 >>50
絵文字や機種依存の特殊な記号などではなくて、普通の日本語なんですよね
それに起動直後は問題なく表示されているので、ちょっと違うかなぁと。。。
でも情報を頂けて嬉しかったです、ありがとうございます。 フォントのキャッシュを見失ってるだけのように見える。
省メモリ化ソフトとかが勝手に削除してんじゃねーの。 sshを使ったアプリ作りたいんだがどうすれば良い? わかりました!
グラボはGTX1080でいいですか!? Android Studio3のレイアウトエディタでScrollViewを使っているのですが、
縦長に要素を配置しようとしたときに、
レイアウトエディタ上のスマホ画面より下に配置した部分が切れてしまい、表示も操作もできません
スクロールを前提にした縦長の画面ってどうやって作れば良いですか? AndroidStudio3に付属のレイアウトエディタがクッソ使いにくいんだけどAndroid開発者はみんなこれなんとも思わず普通に使ってんの?
それとも何か「htmlがそうだったようにaxmlを編集した方が生産性が高まる」みたいな感じなの? レイアウトエディタなんてあるのか…
怖くていまだに2.3から乗り換えてない。 開発者なら文句を言う前に良いと思う物を作って公開しろ
みんなが同意見ならあっという間にシェアトップだ >>63
何の画面のことだろう??
3.0からの新機能ではないのかな?
違ってたらすまん レイアウトをGUIで編集したことないな
もともと使いやすくはないし、xmlいじったほう早い うちもxmlでいじってる
デザイン画面なんて使うか? レイアウトをxmlで作るとか何の苦行だよ
エディタが使いにくいとか使いこなせてないだけだろう いまいち思い通りにconstraintが付かないから基本xmlいじってるわ
使い方悪いんだろうけど 基本Preview専用。
ConstraintLayoutだとちょっと便利かな?とは思うけど、
Relativeは使えなさ過ぎて、最悪。 エディタだと細かい部分が怪しいし、自分で書くに限る
コンストは意味不明で使ってない
レラティブは作るもの決まってる時は便利かもね
でも滅多に使わない xcodeと比較してるんだろうけどxml直書きは楽だぞ GUIでレイアウトする方が便利と思ってる人って単にxmlの書き方理解してないだけという印象
きちんと理解していればxmlで構造考えながら書かないとむしろ気持ち悪いと感じるだろう テキストもバイナリエディタで入力してはいかがですか? 意味が分からないのは単にバイナリの意味を理解してないだけという印象
きちんと理解していれはこの程度の嫌味もむしろ理解できるだろう レイアウトをコーディングした方がいいのは他に使い回せるからであって
同じ処理を何度もするなら関数にしろっていう基本中の基本と同じことなんだけどな GUIの時代にCUIへの回帰。発想が未だにvi使ってる犬厨の発想。
レイアウト設計なんてこれぞGUIの出番だというのに。 エディタだと、細かい設定どうなってるかを
後から確認し直さなきゃならない。
レイアウトの入れ子が意図通りなのか、
生成されたものを見直すのはしんどい。
それなら自分で最初から書く方が、把握してるぶんラクだ 記述方法に詳しくなくてもデザインできるのがGUIのいいところ。デザイナーは中身に詳しくなくてもデザインできる
車のドライバーがエンジンの詳細を知らなくても運転できるのと同じ。オブジェクト思考の発想。
基本中の基本なんたどけどな。30年前の構造化プログラミングで思考が止まってるのがvi使いの犬厨 GUIで見た目が合ってるから問題ないという感じでリリースされるから無駄に入れ子しまくりのクソ重い画面が出来上がるんだろうな レイアウトの細かい設定が確認できない、入れ子がどうなってるのかよく分からない。
それはそのエディタが欠陥品で糞なだけです。エディタ開発者に改善要望出してください。 >>82
それが許されるのは個人開発で小規模にやってる人だけだろう
それなりの規模になってくると、君が言うエンジンの詳細を把握して
最適化できる人間が設計しないと見た目はいいが動作はモッサリという残念な仕上がりになって
あっという間に低評価で埋まっておしまい スタジオのレイアウトエディタも悪くはないがこんな熱く擁護する奴が出てくるとは 擁護とは侵害だな。vi使いの慣れれば使いやすいという信仰が許せないだけ。
単にxml直書きに慣れてるというだけで苦行を薦める輩は駆逐しないとな。xmlは本質的に糞なんだよ。 自分が許す許さないとか、感情論で使う技術選ぶ時点でプログラマー失格かと おれの理想とするプログラマー論はマ板でやれ。「慣れれば使いやすい」という設計はいかがなものか、ということだ。
そしてviのようにな使いにくいソフトの信者ほど普及に熱心ということだ。そして被害者が拡大し、開発が遅れる。 練習なしでも使いやすくて簡単に100点取れるならそれを使えばいいが
実際にはそんな都合の良いものは存在せず、練習なしで使えるものは所詮平均点以下しか取れないのが現実
それなら慣れれば高得点取れる技術を習得する方が良い
そもそもviだろうがxmlだろうが1日あれば使えるだろうに何が苦行なのか
というか、XML弄らなくても同じレベルで勝手に最適化してくれるGUIエディタなんてあるなら早く教えてくれよ > そもそもviだろうがxmlだろうが1日あれば使えるだろう
騙されるな。邪教の信者はこうやって嘘をついて初心者を地獄に招きいれるのだ。
なぜLinuxで統合開発環境の普及が20年も遅れたのか。vi信者のせいだ。
その結果、linux陣営はGUIの開発が遅れ、20年も普及が遅れたのだ。googleが拾ってくれなければ消えていた。
というか、不満があるならGUIエディタの一つぐらい自分で作れ。 まぁ使いこなせるならどっちでもいいんだろうけど。
作るものが決まっていて、
設定項目も把握しているなら、
レイアウトエディタも悪くないのかもしれない。
または企画段階で、動かさず色々並べてみるとか。
細部を把握しつつ、構成を試行錯誤するなら、
迷わずコードで書いた方が修正しやすいと思う 自分が理解できない・使えないものを色々屁理屈こねて批判するだけ
残念な奴だな なんでAndroidStudioのレイアウトエディタの話でviが出てくるんだ?
普通AndroidStudioでやるよな? 自分の主張が弱いことを把握しているから何か別のものを叩くことで「俺の主張はこんなに優れているんだ!」と信じ込ませることが目的 >>78
レイアウトエディタはGUIでviewごとコピペできるよ?
>>81
左にComponent treeで構成出てるよ?
細かい設定もView fewer attributesでできるし、
それでも足りなきゃ下のタブやctrl+クリックでxmlに切り替えることもできる
関係ないけど俺vi使い >>97
プログラミングでの使い回しは単なるコピペではない
関数で言えば引数によって結果が変わるように、ベースは同じだけど微妙な違いがあるものを効率的に作るときにソースを読み書きする能力は必須 >>98
>>78と言ってる事ちがくねえ?
あとレイアウトエディタ使っててxmlが読めない奴なんかおらんでしょ?
一からタイピングするのが苦行だからエディタで工程ショートカットするだけじゃん? そのxmlが読めない奴がxmlに文句言ってるんだよなあ 楽譜が読めるとは頭の中でメロディを再現できるということ。このお玉じゃくしはドでこれはミでと読めるレベルではない。
xmlでレイアウトが書けるということは実行して表示しなくても頭の中でレイアウトが正しくイメージできているということ。
おまえの指摘は甚だレベルが低い。後30年経験積んだら相手してやる。馬鹿め。 で、xml直書きしなくてもそれと同レベルに自動的に最適化してくれるレイアウトエディタ早く教えてくれよ 頭おかしい人の書き込みを読むのは
クソコードを解読するような趣があるな 煽るだけの書きこみしかしない人って職場でどんな立場の人が分かるよな。とても残念な人生だよな。 cpuの脆弱性問題でbiosまでアップデートしたらエミュとか使い物にならなくなったりしないかな?
怖くてアップデートできないわ 関係あんのかなBIOSって起動初期だけちょこっと使われるだけじゃないの
起動後に悪用出来るのかしら biosまでアップデートするとパフォーマンスがかなり低下するって話しあるからね
ゲームなんかでもfps落ちるって云うしエミュには影響出そうな androidの場合にはPCで言うBIOSに当たる物は更新されないと
思うので関係ないと思うけど すいません、ここにはレイアウトに詳しい方々がいるようなので質問させてください
縦に長いアプリ画面を作っていると、端末の画面サイズによっては下の方の表示が切れます
これを解決するために、全てのレイアウトで一番上をScrollViewにしてしまおうと考えているのですが、この発想は危険でしょうか? 下にスクロールできることが一目見て分かるようになっていなかったらそもそもスクロールしようと思わないので下の方が無視される、ぐらいか AndroidStudioでSQLiteを使用してDBを作成した時、
DBファイルはアプリと同じ場所に出来ますが、PCからは権限が無い為に見れないですよね?
毎回ADBを起動するのも面倒だし、
内部ストレージの直下とかに作る方法ってありますでしょうか? >>113
sqliteopenhelper改造すればできそうだけど、dbファイルを好きなディレクトリにコピーしちゃう方がかんたんな気がする。 AndroidStudio3.0.1で作成したアプリって、スマホのどこに入っていますか?
接続して「Android Device Monitor」を使用しても、スマホ(Devices)選択後にdataフォルダ等は見つかりましたが、
dataフォルダの中が開けませんでした。
DDMSを使用しても、同様にdataフォルダの中が見られませんでした。 すいませんでした、adbで見られるのですね
コマンドライン入力が面倒なだけですが、見ることが出来ました。 >>113
SQLiteOpenHelperのnameにフルパス渡せばそこに作られなかったっけ? >>117
ファイル名だけじゃなくフルパスで書けばいいのですね、ありがとうございます。
SQLite使っててふと思ったのですが、
insert()で追記したら、その後は何もしなくても問題は無いのでしょうか?
テキストファイルの様な、write()したらflush()してclose()してメディアスキャンでPCに認識させる、
といった処理は不要で良いのでしょうか? 今更になってRxJavaを使い出したんだけどdisposableの扱いがよくわからない
いかなる場合でもdisposable.dispose()を忘れたらリークする?
disposeするまで継続的にストリームにデータが流れてくるタイプならdisposeしないとダメってのはわかる
retrofitのようにrest apiを1回呼んで終わりってタイプのものもdisposeしないといけないのかな? >>119
compleさせればdisposeはいらぬ
ver1はしらん >>118
それに該当するのはDBだとcommitかな。
これはDB接続時に autocommit になってたと思った。だから自分でやらなくても良い。
しかしその場合は沢山読み書きすると効率が悪くなって遅くなる。
そういう場合は 接続時に autocommit をoffにしておいて後は自分で適当な所でcommitするように書けば良い。 あ、commitだけでなくDB接続する必要がなくなったら切断するとかも必要だよ。 >>120
いらぬのか
良かった
毎回disposeするの大変だよね いちいち、破棄しなくていい/しなきゃいけないって考えるより、
CompositeDisposalを使う方が遥かに楽だ。 compositにどんどん使い終わったdisposableが溜まっていくの気持ち悪くない? なんか公式の検索が機能してないんだけど
メニューも出なかったりでバグってんのかな?
ChromeとスマホのChromeとIEで試したけどどっちもダメだわ >>121
ありがとうございます。
今のところcommitを使っていないけどDBに書き込めて取り出せるので、autocommitで動いているみたいです。
Androidでは情報が少なかったですが、pythonやperlでも似た感じと考えて良さそうな感じでしょうか。
https://www.antun.net/tips/api/sqlite.html
http://netlog.jpn.org/r271-635/2009/12/sqlite_perl_prepare_commit.html
明示的にcommitしないと、autocommitで保存してくれる ← 今ココ
書き込み速度を上げたい時は、明示的にcommitを書く >>127
DB接続時のオプションでautocommitにするかしないか設定できないかな?
Androidの場合どうなるのか知らないんだけど。
で、そこでautocommitをやらないようにした場合は自分でcommitする必要がある。 Androidの場合は、
beginTransaction()
...
setTransactionSuccessful()
endTransaction()
これしかない。
ジャーナルとかインデックス省略して、INSERT/DELETEを速くするとかはできない。 ■ このスレッドは過去ログ倉庫に格納されています