◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:Androidプログラミング質問スレ revision54 YouTube動画>2本 ->画像>13枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1510691057/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
A→B→C→D というactivityがあったとして Dのactivityのときに、Bのactividyをoncreateから起動するにはどうすればよいでしょうか。 CとかDのactivityはFinishさせずにとします。
>>1 が酷すぎ
全体的に古くて雑多で過剰、リンク切れとか論外
以下全面修正版
Android開発全般の質問をどうぞ
言語や開発環境のスレも活用しましょう
公式リファレンス
https://developer.android.com/index.html 前スレ
Androidプログラミング質問スレ revision53
http://2chb.net/r/tech/1488052551/ Androidの質問が活発な場所ってこのスレ以上にどこかありますでしょうか
1番最初って緊張しますね 面接されてるみたい 質問ですが 普通のアプリならAndroidStudioでそのまま作ればいいけど ゲームの場合は先にeclipseでJAVAバージョン作ってからAndroid用に最適化した方が良いですか?
ゲームも最初からAndroidStudioで作れば良いんじゃないか Eclipseを使おうとしてるのはどうしてだ
どうもありがとうございます 五年くらい前に一度ゲームを作ったのですが AndroidStudioでなくEclipseを使っていた様なのでライブラリなどの関係でそうしたのかなと思いまして(もう覚えてない) 今はもうunityやクロス環境を使わない場合はゲームであってもASを使うのが普通ということですか
>>13 5年前にやってたプロジェクトもサクッとインポートできちゃうから
いやサクッと行けるかどうかは本人次第だけど
通話時間が(だいたい)指定時間になったらバイブで知らせるために Serviceの中でPhoneStateListener呼び出して、onCallStateChanged()で 通話ステータスがCALL_STATE_OFFHOOKになったら Handler#postDelayed使ってVibrator#vibrate()する処理を書いたけど 実機(XperiaXCompact)でバイブレーションされない Handler使ってるのがマズいのかな?
通話状態を監視しながらタイマーを永続化させるのって難しいんだな… AlarmManagerとか使うべきなんだろうか?
Unity…もうちょっと詳しく調べてみます
>>16 eclipseはサポート切られるそうですしASかUnityに移行することにします
【ブーメラン】漫画家(27)「放射脳は無知」→急死 (;゚Д゚) アニメーター(39)「政府は正しい」→急死
http://2chb.net/r/liveplus/1512349462/l50 【ナニコレ】早朝死亡2名、マクド死亡2名、バンド死亡3名→皆30日、マラソン危篤3名、柏市隣2名
http://2chb.net/r/liveplus/1512269420/l50 >>21 最終的に実機で動くかは実機で試さないと分からない
とりあえずエミュレータで試したいのであればSDK付属のエミュレータの
方が細工されていないので良いとは思うけど、NOXで試せないことも
ないとは思う
最近の設計では、Activityを少なくしてFragmentで画面遷移を行うというのはわかったけど、 これは画面一つごとに一つのFragmentを作るということ? Fragmentの数がえらく多くなるんだけどこれで良いものなの?
作る物や内容にもよるとは思うんだけども、 フォアグラウンドアプリをバックグラウンドアプリに作り変えるのって大変ですか? また、フォアグラウンドで動いていれば、基本的にバックグラウンドでも動くと思っていいですか? 何か漠然とした質問ですいません。
画面スリープ中にBluetoothで通信しながらストレージに保存するのって、 PowerManager+WakeLockで出来ますか? それともServiceに記述した方がいいですか?
Oreoより前ならどっちでもできるでしょ。 逆にOreoだとどっちも無理じゃないかな。
>>28 回答ありがとうございます。
現在考えているのはLolipop以降ですが、Oreoは考えていないです。
(Doze回避が面倒くさいけど、MarshmallowやNougatまでで)
ついでの質問で申し訳ないですが、
画面スリープ中って27のどっちでも、runOnUiThreadは使えないですよね?
来年後半からターゲットは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内の文字がおかしな表示になってしまうのですが、これは何が原因なのでしょうか。
↑こんな感じに文字化けします。
最初からこうなのではなくて、色々触っているうちにこうなってしまいます。
え、これって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を速くするとかはできない。
recyclerViewのadapterをswipeRefreshで更新して一番上に項目を追加するようにしたら、 スクロール位置が更新前のままで、更新後に再度上にスワイプしないと新しい項目が表示されないんですが、 更新時にスクロール位置をトップにするにはどうしたらいいんでしょうか。 ちなみに更新時にadapterを新規に作り直してrecyclerViewにセットする方法だとうまくいきましたが 差分追加の方法でやりたいです。
カメラアプリ作ろうと思ってとりあえずSurfaceView使ってカメラ画面写したいんだけど いまいちうまくいかない getSupportedPreviewSizes()ってのを使って解像度取得してそれをsetPreviewSizeで使うやり方でやってるけど 実機実行した時にカメラ禁止マーク+電話のマークみたいな画像が出てくる Runのログには「E/Camera: Error 1」 どこがダメなんだろう
機種書き忘れてました 京セラのKC-01でandroidバージョンは4.4です
>>126 公式ってdeveloper.android.comのこと?
なんかちょい前からおかしいね
一番下の言語設定でEnglishにしたら検索できると思うよ
>>133 日本語版は内容が古いままだったりあまりメンテされてない雰囲気、やる気ないんだろうな
SQLiteのトランザクション処理について、質問があります。 ググるとサンプルが色々とありますが、 DBをclose()しているサンプルとしていないサンプルがあります。 db.endTransaction()を行った後にclose()するのって実際のところ、どうなのでしょうか? 用途としては1行100Byteほどのデータを1秒に数回、dbと接続してinsertして切断しています。 (メモリに数行溜め込んで一気に書いた方が速くなるとは思いますが。) // トランザクション開始 db.beginTransaction(); try { /** Insert等のDB操作 */ db.setTransactionSuccessful(); } catch(Exception e) { e.printStackTrace(); } finally { // トランザクション終了 db.endTransaction(); db.close(); // ←質問:必要?不要?邪魔? }
トランザクションごとにdb.closeする必要はないはずなんだけど SQLiteでdb.closeをし忘れたまま再度DBを開いちゃったりすると DBが壊れてしまうのでトランザクション毎にdb.closeするサンプルが あるのではないかと あとは意味もわからずそういうサンプルをそのままコピペしてる サンプルが多いのかもしれない
必要・不要ってより、そのdbの中身のインスタンスはどこで取得してるのよ?? // トランザクション開始 の直前でインスタンス生成して一時的にしか使わないならdb.closeしとけばいいだろうし。 dbのインスタンスを使いまわすならcloseしちゃまずいし。 それ次第だろ。
まぁ、俺の普通は一つのSQLiteDatabaseのインスタンスを使いまわすから、closeはしないで 使いまわすけど。SQLiteDatabaseはスレッドセーフになってるから、ばしばし色んなスレッドから アクセスして問題ないし。
>>136 > SQLiteでdb.closeをし忘れたまま再度DBを開いちゃったりすると
> DBが壊れてしまう
そんなアホな...
http://relog.xii.jp/mt5r/2010/10/android-2.html このページのコード使ってアンドロイドスタジオで動かしたいんだけど、
javaはアンドロイドスタジオのプロジェクト作成機能で
ProgressCircleって名前で作成したんだけどXMLはどのようにファイルを作ればいいのでしょうか。
付属アプリじゃないカメラアプリならとりあえず正常に動作すると思って参考にしようとしたけど どうやら付属のカメラアプリじゃないとまともに動かないっぽい 起動した直後に問題発生で終了する 今は付属カメラアプリのappファイル探してるけど見つからなくてつまづいているところ
今時SQLiteを生で書く馬鹿はいない realmかormaかAACのroom使え
デファクトのormはなんなん? オプソライブラリいっぱいあって困る
SQLiteじゃないとダメなら、Room一択。 NoSQLでも構わないなら、ObjectBox。 Realmは、Entityの継承縛りとマイグレーションが糞過ぎる。
Android Studioを3.0.1にアップデートしたら use of overloaded operator '<<' is ambiguous というエラーが出てビルドが通らなくなりました・・・ エラー箇所: AppData\Local\Android\sdk\ndk-bundle\sources\third_party\googletest\googletest\include\gtest\gtest-printers.h 解決策をご存知の方教えていただけないでしょうか?
アプデ通知にndk使うなら2.3から上げちゃダメと但し書きがあったよ 関係ないが今ハマってるのがmacでjava 8u161 2 最新のパッケージでセットアップすると 色々こけるlinuxは平気なんだけどな
AnkoでAnkoLogger使ってみたけど、verbose()とdebug()が反応しないのはなんでなんだ それ以外はちゃんとログ出るのに
>>145 取り敢えBuild->Clean Projectやろう
>>146 ,
>>149 レスありがとうございます。145です。
2.3から上げちゃいけないという警告があったのですね。全然気づきませんでした。
他アプリは3.0対応していたため(特にエラーが発生しなかったため)安易に上げてしまいました。
Clean Projectもやってみましたが状況に変化がありませんでした。
>>147 いまセットアップすると最新のSDKツール が落ちてくるんだがデバイスモニターが
java8要求してきやがるのよで入れても動かない古いの落とそうとしてもビルドツ
ールは選べるけどSDKツールは選べないっぽいしで
>146でjava8u162が悪いと書いたけど8u144もダメだったから多分SDKツール
かもね
おい、おまえら教えろ Androidのアプリを作ってみようと思っているんだけど、 最初に作る簡単なアプリってのはどんなのがいい? Androidの特徴がわかり、かつ難しくないのがいいんだけど。 スキルとかはこんな感じです ・これまでの主な言語や環境 c#、asp.net、JavaScript(JQuery)、SQL(MSSQL) ・Android Studioを使用予定 ・kotlinの言語仕様を一通り学んだのでkotlin使用 ・HelloWorldはすでにやってみたので次のお題を探している
TODOメモか日記帳 プログラミングの初心者じゃないならいきなり作りたいもの作っても良いんじゃないか
HelloWorldの次なら電卓かな Androidの特徴を掴むのなら、GoogleMapとGPSを使って、 自分が行った場所の記録アプリとかでもいいかもしれんが
aideというAndroidのアプリをつかってるんですが 標準ライブラリのソースをみる方法ありますか? スレ違いだったらすみません
>>153 ありがとうイイネ
TODOの中身を表示させたり、削除、編集するクラスを作って
リストに入れて保持したりするんかな。わくわくするね
>>154 ありがとう
関数電卓なのは難しいけど、普通の電卓のようなのならいい練習になりそうだね
GPSに関しては実機がないから無理なんだよね
安い1万円以内のAndroid6.0ぐらいのスマホを購入するかなあ
APIよりUI(フラグメントは後でいいけど)やらないと始まらんだろ。 今はGPSとかセンサー系もエミュレータでもテストできるけど、 やっぱり使ってて楽しいので実機がいい。
やっぱりいきなり作ってみるより、解説本やネットの情報をみて そのAPIとかUIとかのを一通り学んだほうがいいのかなあ(´・ω・`)
ガチなアプリ作るわけじゃないんだし両方とも作りながら試行錯誤したら良いんじゃない?
本2冊読んでclean-arcを覚えてからコーディングに入ったけど順調 作りながら学習だとコードがめちゃくちゃになってすぐに行き詰まる
他所で何か完成させたことあるなら本読みながらながら制作でいい 初めてなら好きなだけ本読めばいい読んでも出来るようになるとは限らないがな
どうせお勉強が目的になっていて何も完成させられないに決まっている 作りたいものが何もないのにプロミングの勉強してても意味ない
>>156 電卓はマジオススメやで
レイアウトの勉強になるし、応用で向きを変えたり設定で16進数電卓にするといい
(実際に向きが変わる毎に切り替わったらウザいが)
実機が無くてもこの辺りは勉強になる
特に他言語からJava(kotlinは知らんが)に来ると、byte型の扱いでイーってなるしw
作りたいものからライブラリ探してやるのが一番だと思う 今までアプリ使ったことあるならなおさら
何も理解してない素人ほど勉強に電卓作らせようとするんだよな。 電卓ってのはコンパイラの勉強する人が作るものだよ。
なんだかんだ言って、自分で使うようなアプリがベターだわな。 フリーだと何しているか信用できないメモ帳を自分で作るとか。
普段使いするけど痒いとこに手が届かないアプリって割とあるしね
普通のJavaみたいに 配列に入ってる文字列を一つずつ改行しながら表示するにはどうやればいいですか? 普通のJavaでは for(int i=0;i < a.length; i++){ System.out.println(a[i]); } こうやると思うのですが AndroidでTextViewでやるに for(int i=0;i < a.length; i++){ mTextView.setText(a[i] + "\n"); } 自分でこうやろうとしても改行されず新しい下の方の文字列に上書きされてしまいます
>>自分でこうやろうとしても改行されず新しい下の方の文字列に上書き わかってんじゃん。君がやってる事は新しい文字列で上書きしてるだけ。 だから、やらなければいけないことは文字列を連結すればいい。 StringBuilder sb = new StringBuilder(); for(int i=0;i < a.length; i++){ sb.append(a[i] + "\n"); } mTextView.setText(sb.toString()); // 連結した結果を表示
>>171 TextViewには、appendというメソッドがあるから。
あと、StringBuilderはCharSequenceでもあるから、toStringは激しく余分。
textviewの文字列の一部にダイアログを起動するリンクがあったとして、 それをespressoでクリックする方法ないですか?
>>171 >>172 できました!ありがとうございました!
>>172 横からだが今まで必ずtoStringしてたわ
勉強になりました
メモリ足りなくなったなどでプロセスキルされて、再起動されるときに完全に初期状態で 表示する方法はありますでしょうか?? 例えば、複数のアクティビティを遷移してバックスタックが空じゃないとき、再起動されると バックスタックも完全に復元されますよね?? これを防ぎたいのです。 ユーザビィリティが悪くなるのは分かりますが、復元するのがめんどくさいので。
復元が標準でついてるのに、それを無視するスタイルで進めていくと、後々逆に面倒くさくなるぞ 負債が溜まっていく
アクティビティ間やフラグメント間でのパラメータの受けた渡しがめんどくさいんです。 SerializableまたはParcelableでBundle経由で受け渡すと、受け取り側でdesrializeされた時に 何もしないと別のオブジェクトになったりして。 逆に、オブジェクトを直接渡さず、IDだけとか渡すのも色々めんどくさいしかけを作らなきゃいけなくて。
まじでAndroidの最大のウンコのなんですけど、この部分。 だから、システムによってプロセスキルされてメモリがぱーになったら、復元しなくていいから、 アプリを最初から起動してほしいんです(要はユーザーが最後に訪問してたアクティビテイとかは 全部復元しないで無視)。 マニュフェストのフラグ一発でできないんですかね?
アクティビティとかいう考え方が面倒 画面ごとに要素を用意して面倒くさい
listviewのケツにボタンかなんか配置しといてそれをクリックしたら追加読み込み実行みたいなことをしたいんだけど簡単にできる方法ありますか?
簡単の範疇に入るかはともかく BaseAdapterを継承して最後に追加するためのボタンが来るクラスを作ればいいんじゃね
最後だったらswiperefreshじゃないだろう
>>183 自分でCで作ってキルされりゃいいんじゃね
>>184 無理してListViewに入れない方がいいよ。
ListViewの下にButtonをVisiblity.GONEで配置しておいて、listの最後を表示したらVisiblity.VISIBLEにする。
「listの最後を表示したら」については、OnScrollListnerのOnScrollで渡される引数で簡単に計算できる
(firstVisibleItem + visibleItemCount >= totalItemCount)。
>>187 それもそうだ混乱してた
簡単ではなさそうだけどswipeRefreshもbottomからswipe upで更新とかできそうだな
recyclerViewにして一番下にprogressbarだけのviewを配置する
レスありがとうございます
一番簡単そうな
>>189 で解決できました
espresso test recorderでパスすべき場所が失敗したり、クリックが認識されなかったりで使い物にならん
javaで計ってみただけなんだが 浮数の加算と除算の速度がほぼ同じで困惑してる x86だと二十倍くらい速度差あったのに armってそういうもん?
webview.draw(canvas)でキャプチャしてるんだけどwebglがキャプチャできずに真っ白になるんだけどなぜ? どうやったらwebglのキャプチャがとれるのだろうか
>>154 >>164 >>166 ありがとう。とりあえず、今日、電卓を作ることができた。
10日ほどかかったわけだが、こんな紆余曲折を経て学習していった
リモートリポジトリを作成して、複数のPCで開発を進められるといいなということで
googleドライブにリモートリポジトリを作成してgitで分散バージョン管理ができるようになった
そのあとでUIの使い方が気になって、それぞれのUIの基本的なことを勉強した
すべてを理解したわけではないが、レイアウトとウィジェット的なものがなんとなく理解できた
そのあとのディレクトリ構成が気になって、フォルダ構成を学んだ
さらにレイアウトとリソースのxmlやソースが別々になってるので
AndroidにおけるMVCパターンも概略を知りたくなって少し調べた
その後に電卓を作ろうと思ってデザインを作るのにConstraintLayoutがよさそうだと思って
レイアウトを作る方法をいろいろ調べた
んで、その後に電卓用の計算したり表示したりするクラスをことりんで作って
実装して今に至る・・・
かなり回り道したが電卓はレイアウトの仕組みを知るのにはかなり役だったかな
んで、次は何がお勧めかな?
お前のゴールはどこじゃ ちゃんとそこに向かってんのか ゴールなんてなくてただ何か作りたいだけならお題は自分で見つけることだ
データバインディングとRxも学んだほうが良い あとはやっぱり通信だな githubクライアントとかいいんじゃないか webapiも公開されてる
>>197 なんか作りたいと思うときに、あまり障壁無く作れることができるようにしたいのがゴールかな
いろいろなことを知ることができたので、着実に進んでいるような気がしている
>>198 Rxってなに?(´・ω・`)
データバインディングはいくなりハードルが高い気がするけど何とかなるかな(´・ω・`)
Rxもデータバインディングも開発を簡単にするためのアイデアだからハードル低いよ わしも初心者の頃はこんな酷いプラットフォームでどうやって開発するんだと頭を抱えたものだが RxやMvvmを覚えたらスムーズに開発できるようになった
>>200 さすがアニキすごいっす!
これを作ることによって、Rx、データバインディング、MVVMの勉強になるぜ!って
いうアプリいうのがあったら教えてください!
どっちもまだならdatabindingからやっとき ハマりどころそんなないから まずはfindViewByIdの置き換えから始めればコストも少ないよ
GPSを使ったようなアプリもandroidらしくていいんじゃないだろうか あとbroadcastreceiverとserviceも使ってみるべき
Bluetooth関連のテストって実機でやってる? エミュレータ―でも出来るのかな?
btは実機使わないと予想外の問題が出て死ぬから絶対実機でやった方がいい なお実機で使ってもよくわからないまま死ぬから使わないほうがいい
エミュレータでどうやって無線を飛ばすんだ その前にアダプタやGATTの取得とか確認出来んし 最初から実機必須
>>206 フライトシミュレータは空を飛んでるとか思ってそう w
どんなコードだろうと最後には必ず実機でテストしてからリリースしてください。
BluetoothProfile.ServiceListener#onServiceConnectedは 端末本体のBluetoothを有効にしただけで実行されますか? 自作アプリのユーザーからBluetoothクライアント接続してないのに 機能が有効になったと言われて調査してますが全然分かりません…。
Bluetoothクライアントの接続状態関係なしに BluetoothのON/OFFだけでも実行されてる事を確認しました。 BluetoothProfile#getConnectedDevicesで接続を見ないといけないんですね。
SDカードにファイルを保存したいんですが、 ロリポ以降の端末ではSAF経由じゃないと書けないんでしょうか? Android/data/<パッケージ名>/files以下じゃなくて 任意のパスに書きたいです。 4.3までは何も考えずに(内部ストレージと同様の方法で)できました。
ヤフーメールのアプリとかはどうやってメールの着信を監視してるのでしょうか バックグラウンドで定期的に問い合わせを行っているのでしょうか その場合なぜシステムからキルされないのですか?
サードパーティーが完全に自前でプッシュ通知を実現するには、 結局のところ、サービス/スケジューラを使うしか手がないでしょ? GCM/FCM使う場合には、リスナー登録するだけで済む話だけど。
Paging LibraryはloadAfterとかloadBeforeはバックグラウンドスレッドで呼ばれるけど、 なんでloadInitialはPagedList作るスレッドで呼ばれるの?Googleの技術者死ねよ。
firebase使うとプッシュ通知もできたよね ただ開発者サービス使うと古いバージョン使ってるユーザーとか 更新してもバグあったりしてアプリのせいにされたことあるからあんまり使いたくないんだが 最近は大丈夫なん?
ボタンを押した時にThread.Sleep(1000)を実行するとLogcatに、 Skipped 60 frames! The application may be doing too much work on its main thread. って出るけども、これはスレッドを止めてるから出る物と考えて良いのでしょうか?
メインスレッド(UIスレッド)が終わってるのにUIのコードを実行しようとしてるから、じゃなかったっけ
リリースビルドに失敗したときだけproguardの設定を追加してきたんですが、 リリースビルドに成功していたとしても、各ライブラリのgithubのページに書いてある proguardの設定は全て記述するべきなんでしょうか
プログラムというかAndroidの印刷APIに対応したプリンターってどんなのがある? Androidとプリンターの関係が現在どうなってるのかいまいちわからないけど
これをMZK-EX300Dに繋いだらAndroidからの印刷できますか?
みんなkotlin使うの? kotlinも Flutter-Dart言語も いかないでJava/dalvikに留まるのが一番いいような気がする
kotlin使ってるけど、その理由は使ってみたかったから以外には特にないな javaに留まっても全然良いと思う
FlutterってNativeScriptに近い感じか? ReactNativeはAndroidが弱いし、 Xamarinはネイティブ無視しすぎて、終わっとるし。
クロスプラットフォームは総じて糞と相場が決まっている
世間の人気アプリは大概両機種でリリースされておるが、 あれってどうやってんのかね? やはりunityしかないのか いやだなぁ、覚えたくない
まともなアプリは全てそれぞれネイティブで作っている ゲームに関してはUnityで共通化できる
>>234 armでもintelでも動くandroidのこと言ってるの?
>>237 この場合のクロスプラットホームっていうのはmacとwindows、はたまたlinuxのことじゃないかと
intel androidは糞だろう。中でarmエミュレートしないと動かないことも多いのだから。
それってarmネイティブのプログラムってだけのことでは? だったら動かすためにはそうせざるを得ないんだから仕方ないよね。
このスレ的にクロスプラットフォームは、 スマホのことじゃないの?
アプリそのものじゃなくて共有する開発環境のことでしょ
更新できないAndroidスマホも壮大に放置なgoogle。結局サポートとか何も考えてないんだよな。 文句言われるのはアプリ開発者側。
自分のZenfone3は、購入時はAndroid6.0だったのに、 今じゃ自動アップデートでAndroid8.0で動いているからなぁ。 個人的にはDozeとかめんどいから、Android6.0で良かったんだが。
初スマホになるので今まで避けてたスマホ開発に参戦しようと思います 2Dから軽い3Dゲームや便利なユーティリティを開発したいです android実機開発においてやっぱスペックは高いほうがいいですか? antutu v6の旧スコアで45000, 80000, 150000 のどれかのモデルを購入予定で80000のnova lite2が激安なので食指が伸びてますが 多少高くても実機スペックはケチらないほうがいいですかね?
すみません nova lite2の80000(正確には90000にちかい)はv7でした v6で65000程度のようです
ハイエンドの端末しかサポートしないというなら実機も合わせた方がいいけど幅広いユーザーに遊んでほしいというならミドルレンジ機での確認は必要じゃないかな?!
なるほど デバッグや開発時のストレスを考慮しましたが 遅いのにあわせるというのは良い物の見方ですね とりあえず今回は1台目なのでパフォ重視でミドルハイのやつを買ってみて 慣れてきたころに手頃なミドルロウの端末も買おうと思います
nova lite 2なんかは安いけど、2年くらい前のハイエンドくらいの性能あるしな。
開発向けのリファレンス機としてはNexus5X/6Pを勧めるけど もう次のOSバージョンに対応しないからなあ
開発向けならOSのバージョンアップなんてむしろ邪魔なだけだろ 古いバージョンも手元に残しておかないと、動作確認が出来ないし
だから最新のリファレンス機を合法に使えないのが問題だって
開発機は素のAndroidかユーザーの多いXperiaかGalaxyあたりの端末を用意したいところ Nexusは終了したけどAndroid oneがあるぞ
リリース後だったらAndroid oneでもいいけど、Pixelじゃないとプレビューが試せないんだよね。誰かくれないかな
つーかOreoもまだシェア5%しかないのに、何でそんなに最新のを使いたがるかね 最速で対応したって誰も使ってるやつおらんやん
>>261 オレオではBluetoothの仕様が変わったから既存のアプリで接続がうまくいかないトラブルが出てきてんだわ
他にもそういった事象があるかもしれないんで確認のために必要なのよ
俺もアプリレビューでオレオで動かないってのが増えてる。対応しようとしたら既存のアプリ仕様だと簡単でなく頭抱えてる。
まあでもバックグラウンドで勝手に動くなってのはわかる
>>261 シェアはまだまだでも、実際に搭載機種が発売されててバージョンアップも始まってるから、開発現場は早めに入手しておきたいのさ。
教えてください、初心者が必ず悩むバックグランドからの復帰時のデータの取り扱いに 悩んでます。onPauseでデータ保存、onResumeでデータ読み。 念のためonSaveInstanceStateでもデータ保存しています。 だいたいOKなのですが、バックにいる時データの保持は保障されなくてたまに初期データで 立ち上がります。みなさんはやはりキャッシュなどに保存しているのですか? どの状況でも復帰した時はその状態を保持したく、最初の時のみ初期データにしたいのですが
そういうのってユーザーもアプリが終了されたなってわかるから気にしなくてもいいのでは 裏で動くのが必須のアプリでなければだけど
めんどくさいならsharedpreferenceにでも入れとけば
そんなに変更するとこある? アイコンを丸にするぐらいしかなかったけど
何が? notificationChannelとか?
大変とまでは行かないけどOreo以上ならって条件式が結構増えて面倒ではある
その分、欠けてたJava7/8APIのほとんどがサポートされるようになったじゃん。
俺らのプラットフォームで商売させてやってんだから金払えと 開発者なめてるAppleが大嫌いです Mac時代はサードパーティ製ソフトウェアの少なさに苦戦してたようですが スマホはうまく先駆者になれたのでそんななめた態度でも充実してますね 実に腹立たしい だけど僕は騙されませんよ Appleが反省して土下座するまでGoogleを全力で支援します
>>276 お前さんがプラットフォーム作って、只で使わせてやればー?
GoogleもMicrosoftもタダで使わせてるわけですが
開発環境もそうだが、 クロスプラットフォーム環境でもiPhone用アプリをコンパイルするには、 ほとんどがMac実機が必要ってのがね・・・。 実機テストでiPhoneを買えは当然だが、開発環境までMac買えはどうかと思う。
ビルドもだけどデベロッパー登録とかもMacないとダメだしいよいよストアに出すってなってもリジェクト食らいまくるしなんだかなー
4.2 Minimum Functionalityがある限りandroid優先だろ。
検索すりゃわかるけど、判定が恣意的らしいよ。引っかかったことないけど。
拾ったソースをAndroid studioで実装してるんだけど、 public Translate XXX; の宣言でTranslate が見つからないとエラーになる。 Translateって型は初めてなんだけど、これは標準であるのか?何かimportすればいいの? ググっても分からなかったので、知ってる人が居たら教えてくれ、ここみろURLでもありがたい
>>291 そのTranslateってのにカーソル移動して[Alt]+[Enter]したら、import class…ってポップアップメニュー出てこない?
出てくるならそれ選べばいいよ
レスありがとう御座いました。 やってみたらポッポアップに、craate class Translate, enum, interfaceみたいなプルダウンが表示された。 ファイル選択のダイアログのコードのサンプルなんだけど、 public classの関数の中で xxx = new Translate( prameter1..... ); みたいな事をやっていて、 下でpublic Translate xxx ってその変数を宣言してるんだけど、Translateの本体の記述は無いみたいなんです。
どこで拾ったソース? 取り敢えずそんなクラス名は聞いたことないけど
OSとAndroid-SDKを全部入れ直した時にDDMSでデバイスの認識がなされなくなってしまってAndroid-Studioでも認識しないのですが SDKの何を入れればいいでしょうか? platform-toolsとtoolsは前のやつが残っていたのでこれだけ入れ替えてみたのですが変わりませんでした
>>295 ありがとう御座います、それです。
TTSのサンプルがあっさり動いたので、ファイル読ませようとしてました。
https://akira-watson.com/android/tts.html もうちょっと工夫してみます。
>>299 ファイル1つの選択でよければSAF使えば?
>>299 たぶん、"Open", "Open ...", "Move", "Cancel"ってテキストを、"開く", "開く ...", "移動", "キャンセル"って日本語で表示したいがために挟んでるクラス。
スタックオーバーフローにある実装でよいはず。
HttpURLConnectionでサーバー(JavaServlet)と通信しようとしているけど セッション(クッキー)が使えなくて困ってる。 最初の通信でクッキーは取得できているけど保存されず、次の通信で セッションIDが送信されてないようだ。 いろいろググってみたけどよくわからない。 どこか分かりやすいページがあったら教えてください。
シェアドプリファレンスにでも書いときゃいいんじゃね
>>306 どうもありがとうございました、なんとかできました。
CookieManager cookieManager = new CookieManager()
をstatic変数で保持しておいてそこから通信の度にクッキーを取り出して
リクエストに追加する方法でできました。
>>305 ありがとうございます、アプリを終了した後もクッキーを保持したい場合はその方法がよさそうですね。
どんな通信してるか知らんけどOSS使ったほうがいいよ あとAndroidのstatic変数は実際ヤバい
どんな端末でも動き続けるServiceの作り方が知りたい setForegroundでも死ぬとかDozeって何なの
Dozeってロリポあたりから導入されたOSの省エネ機能だけど 最初わからなくてスケジュールとかタイマーが勝手に止まるから苦労したよ
>>310 死なないサービスを作るのではなくて、色々なインテントで
動いていることを確認して動いていなかったら起動する
インテントハンドラを登録するのが古の手法なんだけど
今は駄目なのかな
>>313 死活監視してるもの自体が死ぬこと考えると面倒だな
多重化して監視し合うとかするのか?
LINEアプリとかどうやってるのか中の人に聞いてみたい
>>315 通常のプログラムは監視プロセスが必要だけどインテントハンドラは
システムにこのインテントが着たらこのプログラムを呼び出して
くださいって登録するので自分で管理しなくても自動的にシステムが
監視してくれる
ただシステム任せなんでシステムの挙動がおかしくなると動かな
かったりもするけど、システムがおかしい時の挙動なんて誰も保障
しないだろうけど
>>317 >>318
AlarmManagerはロリポかその前くらいからシステムが勝手に時間を
まとめて実施したりするように変更されたのでちゃんとした定期実行
にはつかえなくなったんじゃなかったけな
JobSchdulerで監視すると監視タイミングごとにプロセスが起動されて
しまうため、あまり短時間で監視を行うとただのバッテリードレイン
アプリができてしまうことがあるかな
ここのページに
http://pancreatic.cocolog-nifty.com/oncle/2015/03/android-50-e878.html Android5.0以降ではLVLのバグがあってクラッシュするから
このように修正しろってあるけど、実際どうなんですか?
自分は5.0以降でもクラッシュしたことないけど
Googleでこのことについてなにか公式のアナウンスあった?
複数のアクティビティに対してアクションバーに同じメニューの追加、ナビゲーションバーを非表示にしたいのですが、それぞれのアクティビティに同じ処理を書くしかないでしょうか? 共通機能として呼び出す形に出来ますでしょうか?
>>321 まずActivityをextendedしてベースとなるActivityを定義、それにお望みの処理を書いとく。
あとはそれぞれのActivityをベースからextendedすればいいと思う。
Android-StudioをノーパソにインストールしてGradleも正常に動いてました。 デスクトップ側に面倒なのでAndroid-StudioのフォルダとAndroid-SDKのフォルダをコピーして フォルダ構成も全く同じにして起動すると Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) と出てGradleの同期に失敗します。ネットには繋がっています。 これはただフォルダをコピーするだけではいけない何かがあるのでしょうか? どうすればGradle同期可能になるのでしょうか。 また0から地道にダウンロードインストールしなければ正常になりませんか?
>>323 Gradleの依存関係キャッシュが壊れている可能性があります(ネットワーク接続のタイムアウト後に発生することがあります)。
て話だから、メニューの「ファイル >キャッシュを無効にする/再起動する」を実行してみては?
.gradleの削除とあわせてみたりとかも
キャッシュを無効にする/再起動するはやってみましたがだめでした。 .gradleの削除というのは環境本体は破壊されないのでしょうか? 調べてやってみます。
>>322 提示していただいた方法で実装できました。
初歩的な質問にご回答いただき有り難うございました。
.gradleフォルダ削除してもだめでした。 イベントログの方にはこう表示されてました。 Gradle sync failed: Cause: error in opening zip file gradle-wrapper.propertiesには distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip と記述がありこれも以前の環境では動いていたと思います。 他にどこを見ればいいでしょうか、もうさっぱりわかりません。
JAVA_HOMEとjdkとjreのbin、platform-toolsとtoolsのパスは通して設定してます。
アプリのソースならコピーでなく既存ファイルで読み込んだ方がいいよ
あれこれ試行錯誤するよりデスクトップ側で再インストールして既存プロジェクトを開くなんやらした方がめんどくさくないと思う
この動画を見ながら設定からGradleフォルダを直接指定にして
VIDEO それでもまだで、どこかのサイトに書いてあったJavaのバイトコードのバージョンを1.7に設定したら
同期できました。(後で設定見たらなぜかまたクリアされていたけど)
ん〜、Gradleは難しいですね、ちょっとしたことですぐ同期不可エラーになってしまう。
どうもお世話になりました。
>>319 横レスだけどインテントハンドラって何?
キーワードでググったけどHandler?IntentService?
>>334 319に書いてあるとおり、私(このアプリ)はこういうインテントを処理しますよー、っていうのをOSに知らせるもの。
たとえば、ギャラリーアプリで画像を処理するとしたときに、複数の画像編集アプリがインストールされている場合は、どのアプリ。使うか選ぶことになるけど、その一覧に出てくるようになる。
broadcastreciverをいろんなintentで登録しまくって受け取るたびに死んでたら起動するってことだろ あまり行儀は良くないな
>>335 を見て既定アプリに登録出来ないアプリはどうするのかと思ったけど
>>336 を見て色んなインテントに引っかかるように登録しておくって事か…
>>337 オレオからそれもできないよ
暗黙的BroadcastReceiverがほぼ死んだから
ちょうどその対応してる
https://qiita.com/wakwak/items/eaaaa27881fa79dfc180 >>338 色々制限かけてくるなぁ
そこ見てたら「ACTION_PACKAGE_REPLACED) are not exempted from the new restrictions.」と書いてあるけど
これは制限されないって事?自分のアプリでは8.0でもアプリアップデート時に引っ掛けてサービス起動出来てる
LinuxでAndroid studioを使おうと思ってます。 32bit版はSDKにバグがあると聞いたこともあるのですがやってみました。 新しいプロジェクト作成してビルドすると Faild to find Build tool revison 26.0.2 install Build tool 26.0.2 and synic project. とエラーが出ます。 いくつか情報探して英語のページにBuild toolを 26.0.2を消して 23.0.2にすればいいとあったので入れ替えてみました。 build.gradleを compileSDKVersion 23 buildToolVersion "23.0.2" implementation 'com.android.support:appcompat-v7:23.0.2' implementation 'com.android.support:design:23.0.2' と書き換えてキャッシュクリアリスタートしてビルドしたのですが Faild to find Build tool revison 26.0.2 install Build tool 26.0.2 and synic project. のエラーはやはり変わりませんでした。 どこにも26.0.2の記述はしてないのに処理系はなぜ このナンバーにとらわれるのでしょうか? 26を探さずにこのエラーを解消させるにはどうすればよいでしょうか?
権限関係ってtarget sdkに影響受けるんじゃなかったっけ?
すいません最初のエラーメッセージはFaild to find Build tool revison 26.0.2でなくて entry fileTemplates singleton.java.ft not found in ...resources_en.jar とかいうやつでした その次が26にとらわれたものがいつまでも出ます
>>340 AndroidStudioがサポートしているバージョンが26.0.2以降だからじゃない?
そのバージョンがインストールされてなくてエラーになってるみたいだけど。
>>339 targetSDKversionが26になってないんだろう
>>339 >>345 あ、すまん。ちゃんと見てなかった。それも制限受けるって書いてあるね
>>345-347 あーtargetSdkVersionが26(=Oreo)から対象なんだね
自分のアプリ見たら24だった
多分アプリが使えなくなるまで24から上げないかも…
今年の秋から26以上じゃないとアプリ更新できなくなるらしいけど
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html >2018 年 8 月: 新しいアプリで、ターゲット API レベル 26(Android 8.0)以降が必須になります。
>2018 年 11 月: 既存のアプリのアップデートで、ターゲット API レベル 26 以降が必須になります。
>2019 年以降: 毎年、targetSdkVersion の要件が上がります。Android の各デザート リリースの後 1 年以内に、新しいアプリとアプリのアップデートは、対応する API レベル以降にターゲットを指定することが義務づけられます。
>>350 そうするとアップデート検知は明示的インテントにして逃れろという事なのか
まあアプリのアップデートなんて頻繁にするし仕方ないのかな
>>333 >>348 Windowsも糞Linuxも糞
じゃあ何ならいいのだ?
>>340 ですが
>>343 26.0.2のインストールはしてます、問題起こるんでわざと外して古いのにしたのが下のエラーです
>>344 それの -Djdk.util.zip.ensureTrailingSlash=false 記述はもうやってたんです 起動時IDEのエラーはなくなりました
No server to server request.というエラーもでてる。
やっぱりubuntuの32bitではは無理なのかな。。
>>353 毎年アップデートもできないようなコンシューマ以外の
アプリは出て行けってことでそ
edittextで2文字ぐらい入力されたときに予測を出して選択するようにするにはどうすればいいのでしょうか? スマホ自体の予測変換ではなくて、その入力される枠に対してこちらが用意したリストから予測を出したいです 例)大学名を入力する枠で、「とう」と入力されたら「東京大学」「東京工業大学」など よろしくお願いします
入力中の「とう」を「東」と判定はできないけど、そこはまだIME側の対応だろうと考えます。
>>358 ありがとうございます
求めていたものでした
OreoからBroadcastReceiverでNEW_OUTGOING_CALLが捕捉出来ない時があるんだけど 自分のXperiaだけなのかな?
時間置いた後の1回目が捕捉出来ない事がある その後は使えるけどDozeが絡んでるのかな
メーカーがカスタマイズした省エネモードとかやっかいだよな 結局ホワイトリストに入れてもらうしか対処がない
OS設定の省電力機能の対象外にする設定のある場所とか HuaweiとかASUSの省電力、自動起動設定とか 普通のユーザーに分かる訳ないと思うんだけどなぁ Googleにとってはこれを乗り越えられない開発者はいらないって事なのか
グーグルのエープリールフールがしっかりと動作してやがる 余計なことしてないで本業をだな
Android6.0で実機デバッグをしています。 アプリをFLAG_KEEP_SCREEN_ONで常に画面表示でずっと動かしてると、 たまーにアプリがホームボタンを押したのと同じ状態で隠れている状態になる時があります。 実際画面も点きっぱなしなので、右下のメニューボタンを押すとアプリがあり、エラーも無く動きます。 この場合はどんな原因があって、アプリが隠れてしまうのでしょうか? (WiFiなどはOFFにして、他のアプリは特に動作した形跡も見られません。)
MainActivity#onCreate()、onResume()、onWindowFocusChanged()にて以下でナビゲーションバーとステータスバーを非表示にしています。
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
1.アプリ起動時にナビゲーションバー、ステータスバーが一旦表示されフェードアウトして隠れるのですが、隠れる動作をなくす(最初から両方のバーが隠れている)よう方法はありますでしょうか。
2.オプションメニューやスピナーをタップすると、両方のバー半透明の黒でなく通常の黒状態で表示されますが、抑制する方法はありますでしょうか。
https://developer.android.com/training/system-ui/visibility.html を参考にView.OnSystemUiVisibilityChangeListenerに上記を組み込みましたがうまくいきませんでした。
そこはOSバージョンによって挙動が変わったりして面倒臭い
>>368 2.は俺も前やったな。通常のメニュー表示すると、没入モード解除されて回避方法ないような気がする。
だから、メニュー使わずにダイアログフラグメント使ってメニューっぽく仕上げて回避したな。俺は。
ダイアログフラグメントも普通に表示すると、没入モード解除されるから
フラグ設定して表示すればよかった。
ほんとAndroidはクソすぎて嫌になるわ。
Activityがバックグラウンドになった時、フォアグラウンドに復帰させる方法ってありますか? 調べても検知するだけで、復帰方法までは見つからなかったので質問させて貰いました。
バックグラウンドになった瞬間にアクティブにするってどんなゾンビですか
>>372 そんな事アプリが勝手にやったらウイルス作れちゃうじゃん
根本的なUIの改善を考えなされ
>>373-374 確かに暴走した時にキル出来なくて、
スマホの再起動くらいでしか戻れない迷惑なアプリですよね・・・
考え直してみます
なんかここで質問されるのって普通じゃ思いつかないような変な使い方が多いような気がする笑
普通の使い方ならば質問してないでgglksとか言われて終わら されるような気がするので正しく機能しているということではw ただ普通の使い方がAPIの更新という名目の元に毎年 ドラスティックに変更されてしまうので付いていけないというか 付き合いたくないってのはあるかな・・・
Gradleってなんでオンラインじゃないとだめなんだろ? なにしてるんだろ、まさかこちらのソース送ってるとかないよね
mavenからダウンロードしてるからだろ オフラインでも使えるぞ
>>373-374 考えてみたけど、思いつかなかったです・・・。
症状としては、数時間後にアプリが勝手にバックグラウンド(ホームボタンを押した状態)に移動してしまい、
隠れてしまうのを回避したいです。
根本的な解決だと移動する原因を突き止めることなのでしょうが、
アプリが勝手に隠れる原因って何でしょうか?
アプリはFLAG_KEEP_SCREEN_ONで常時画面ONにしていて、
他にアプリが起動した様子は無く、WiFiも切っています。
>>382 電池の最適化から除外してもそうなるの?
>>382 そのフラグって起動している間は画面をオフにしないってだけでは?
常時そのアプリをアクティブにするものとは違ってたかと
>>383 ホワイトリストには入れて無かったです。
>>384 画面ONで他のアプリが動かなければ、常時アクティブになるのかなと思ってました。
ゾンビ化させるつもりで、onPause()の時にonResume()を呼び出してみたけど、ダメでした。
@Override
protected void onPause()
{
super.onPause();
onResume();
}
>>385 ならそのアプリを最適化から除外した上でどうなるか確認しよう。
ありがとうございます 確かに電池の最適化なんて何やってるかわからないから、 まず除外して動かしてみます
普通は勝手にバックグラウンドには行かないし、スリープ復帰後もフォアグラウンドのままだし その端末がスリープに入るとアプリがすべてバックグラウンドに行く仕様とか (それも変な仕様だけど。または変なアプリが入ってるとか)
クラッシュしてるんじゃ? バックグラウンドに行く原因を特定するほうが先だと思うが
startForegroundServiceでレシーバー常駐させてても 受信しない事あるんだが…
フォアグラウンドサービスはかなり殺されにくくなるだけで 絶対に殺されないものではないけど 途中で殺されてたりしない?
Logcatか何かで分かるのかな? 分かってもどう対策すればいいのやら…
google playで公開しているアプリのユーザーが、 とても良いアプリだからdonateしたいんだが的なことを英語のメールで送ってきたんですが、 非消費型アプリ内課金でdonate機能を付けることは問題ないんですかね つまり、何も機能追加とかはしないけど単にお金を貰うだけということになるんですが
もしくはそういう機能のあるアプリって既にgoogle playで公開されてたりしますか
google的には30%の手数料収入が入ってくるわけだから禁止する理由もないのかな
>>395 課金含めて作成したことはないですが、ずっと使ってるghost commanderって無料のファイラーにはdonation機能ありますね。
paypalに遷移するのでgoogleに一部落ちるってことはないのではないかと思われますが。
アプリ内課金までGoogleに取られたら堪らないな
あーgoogleに手数料取られない形のアプリ内課金もあるんですねー
とりあえずdonate機能追加したわ。これで大金持ちやな
そういえばGoogleは寄付と課金は別に考えてたな
ブログとかwebサイトでも作ってそこにdonate機能つけて、アプリからそこにリンク貼ればいいんじゃね
Googleは10%じゃなかったっけ? リンゴと窓が30%で。 10%でも高すぎると思うんだけさぁ。
AndroidStudio 3.0.1を使用しています。 Android Profilerにてメモリ使用量を確認したところ、「Native」が開始直後は10MB程度から、数時間後に160MBまで増えているところまではわかりました。 ただ、このNativeの何が増えているのかはわかりませんでした。 ([Dump Java heap]で開始直後と数時間後を比較すると、FinalizerReferenceやbyte[]は1.5倍程度にしか増えていませんでした) この場合、何を見れば良いのでしょうか? よろしくお願いします。
画面はこんな感じです。
Retained Size 49248559Byte ≒ 47MByte 使用ってことでいいのかな?
ただ上のグラフだとNativeが増えて、Total 192MBのメモリを使用しているけども。
>>393 >>396 俺も似たようなレビューを数件貰ってたから、広告非表示や機能追加で課金を検討してたけどPayPal経由で寄付実装なんてのもあったのか
Googleに怒られるかと思ってた
Android Studioで大きな画像を表示してピンチイン・アウトをしたいと思い、 https://qiita.com/satoshinew/items/a5fa3711d76429159dcb これを使いたいのですけど説明の意味がわからないので解説してください。 (Android Studioの設定は完了して「Hello World」の文字は表示されてます) まず、導入の方法は2つあるようです。 「ライブラリプロジェクトをインポートする」場合、 https://github.com/satoshinew/GestureTransformableView/tree/master/GestureTransformableView このページのどれをどうすればインポートできるのでしょうか? 「gesturetransformableview.jarを直接libsに突っ込む」場合 https://github.com/satoshinew/GestureTransformableView/tree/master/GestureTransformableViewSample/libs このページには「android-support-v4.jar」「gesturetransformableview.jar」「picasso-2.2.0.jar」 と3つのjarがありますが 「gesturetransformableview.jar」だけをクリックして次の画面でダウンロードすればいいのでしょうか? (ちなみに、Picassoというのは大きな画像を取り込める機能をもつライブラリ?のようですが このPicassoも使いたいと思ってます。 このページにある「picasso-2.2.0.jar」をDLして突っ込むとPicassoも使えるようになるのでしょうか?) そして次の ------------------------------------------ xmlで宣言する場合は 〜 (コード) 〜 直接書いちゃう人は 〜 (コード) 〜 ------------------------------------------ についてですが 「xmlで宣言する場合」というのは「activity_main.xml」のところに書けばいいのでしょうか 「直接書いちゃう人は」というのは何をどこに直接なのでしょうか よろしくお願いします。 >>409 ライブラリプロジェクトのインポートやlibsやjarについて
詳しく書いてある本教えてください。
>>410 こんな短期間でやり方変わっちゃうんですか?
公式に書いてあるんだからまずはそれを読むこと そして4年は短期間ではない
そもそもAndroid Studioじゃないんじゃねえの 4年前に最新のeclipaeでやったらうまくいくかもよ
Androidの世界で短期間ってせいぜい半年くらいじゃないの
みなさんありがとうございます
広大なマップの上を移動していくゲームのように
大きな画像を無劣化で取り込みたいです
普通にimageviewで入れると勝手に小さくリサイズされて荒くなるけど
リサイズなしで取り込むにはどうしたらいいでしょうか
経験ある方教えてください
https://developer.android.com/studio/intro/index.html この公式のガイド見てもよくわからないです
画像全体のサイズにもよるけど、簡単なようで難しいのでないか
端末画面のサイズ超えそう それよりメモリオーバーしそう
画像を表示させるだけでいいならBitmapRegionDecoderで必要な範囲だけ読み込む それを元にゲームを作るのなら最初からゲームエンジンを使ったほうがいい
Android ProfilerのMEMORYを見ていると、 GC発生毎にNativeが20〜50Byteほど増えるのですが、 GCの発生回数カウンタみたいな物はあるのでしょうか?
>417 エスパーしてリソースフォルダから読み込んでるとするとnodpiフォルダを作って そんなかに入れとけば拡縮されないよ
ASで新規プロジェクトでMapを選んで作成した場合 build.gradleで dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.0' implementation 'com.google.android.gms:play-services-maps:12.0.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' } 'com.android.support:appcompat-v7:27.1.0'の部分に赤の破線が出てしまいます。 通常のプロジェクト作成で自分でimplementation 'com.google.android.gms:play-services-maps:12.0.1'を 追加した場合も同じです。
エラーの内容の詳細を見ると次のようになっています。 All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.0, 26.1.0. Examples include com.android. support:animated-vector-drawable:27.1.0 and com.android.support:support-media-compat:26.1.0. There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion). すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります (バージョンを混在させるとランタイムクラッシュにつながる可能性があります)。 バージョン27.1.0、26.1.0が見つかりました。 例にはcom.androidがあります。 サポート:アニメーションベクタ描画可能:27.1.0、com.android.support:support-media-compat:26.1.0。 互換性がない、またはバグにつながるライブラリやツールやライブラリの組み合わせがいくつかあります。 このような非互換性の1つは、Androidサポートライブラリの最新バージョン(または特にtargetSdkVersionよりも低いバージョン)ではないバージョンのAndroidサポートライブラリでコンパイルされています。 特に26.1.0を指定した記述もしていないのになぜこうなってしまうのでしょうか? 環境構築になにか問題があるのでしょうか? どうすればこの赤破線は消せますか?
AS3.0でプロジェクト新規作成したみたが26で作られて特にエラーはでないな AS3.1は糞だからゴミ箱に入れてAS3.0でやり直したらいいんじゃね
AS3.1.1で試してみたが確かにエラーがでるね appcompat-v7:26.1.0に変えて、compileSdkVersionとtargetSdkVersionを26に変えればいいんじゃね
自作ホームアプリを起動したあとに他のアプリから呼び出すとactivityが二重に起動してしまいます。 launcherModeはsingleTaskに設定しているのですが、原因がわかりません。 どなたか原因わかる方いるでしょうか?
>>425 implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
の依存でコンフリクトが起きているようで上にあるよう26に戻すか、オレのアプリは特にクラッシュしないので特に気にしていない
>>429 それらを26にして破線を消すことができました
ありがとうございます
実機で実行した時になぜかクラッシュするようなので3.0を入れて試してみます
AS3.1が出たばかりで初心者にはタイミングが悪い
ASの所為でもなく、敢えて言えば個々のライブラリが悪い。 けれど、この手の問題は良く発生するから、 implementation 'com.github.bumptech.glide:glide:4.6.1', { exclude group: 'com.android.support' } という逃げ方があるのは覚えておく。
カウンタを時間に変換したいと思っていますが、 SimpleDateFormat():スレッドセーフでは無い String.format():すごく遅い 複数スレッドでたくさん時間に変換したいので、スレッドセーフかつ速い変換って何が良いのでしょう? ググってもデメリットの説明ばかりで、代替え案が出てこないので教えてください。
Dateは確かにmutableだけど、DateFormat使うに当たってスレッドセーフが必要なケースってあるか?
非同期処理の確認でSystem.nanoTime()で、実行時間を見てます。 この為に同期処理にってのもナンセンスですし・・・。
いやいやw その処理のどこにスレッドセーフが必要ですか?
activityのintentfilterにcategory.launcherとcategory.homeを設定しているのですが、ホームボタンから起動される時と他のランチャーから起動される時でactivityが複数起動してしまうのですが、単一のactivityとして起動させるにはどうしたら良いでしょうか? playstoreの他のホームアプリをいくつか試したところ同様の現象が確認出来ました。いい解決方法わかる方いたら教え下さい。宜しくお願いします。
>>446 singletaskに設定してますが、二重起動してしまいます。他のmodeも全て試しましたが駄目でしたね…
サービスが寝ないようにするにはインテントをずっと投げ続けてあげないと駄目なのかなぁ
アプリをユーザに終了させないにはどうすればいいんですか? 安居酒屋にある、タブレットで料理を注文する端末のようなものを作りたいんです 一つの技としてホームアプリにしてしまう方法があるようですが、それ以外の方法があれば教えてください
DroidKaigi 2018 - Kioskアプリと端末の作り方 / tomoya0x00 [JA]
VIDEO WearとPhoneのデータのやり取りでイベント(onDataChanged)でのデータ取得は できているんだが… データを自分から取りにいくために dataItems = Tasks.await(Wearable.getDataClient(context).getDataItems()); を試してみたらうまくいかなかった データ(キー)は複数あるんだが、1つしか取得できない状態 どうすればいいんでしょ?
iPhoneは使ったことないので知らないのですけど Androidアプリってなんであんなに更新頻度が高いんですか? あれは明らかにパケット消費増大の一因になってますよね 更新頻度が高いGoogleが目立つというのもあるのですけど Google以外のアプリケーションもそれなりの頻度です プログラマー視点からみてアプリケーションの更新のしやすさとかがあるのでしょうか?
実際の判断は違うかもしれないけど 素早いリリースを繰り返すことでバグが含まれていたとしても問題になる前に対処できるから もちろんテストをしないって意味ではないけど
iOSだと審査あるから念入りにテストしてアプデするけど Androidだと審査ないから結構気楽にアプデしちゃうのではないかと 昔ろくにテストせずアプデしたらすぐにバグが見つかって次の日アプデとかよくやったわ
アップデートはいいんだけどそのたびにアクセス権限じわじわ増やしていくの止めて欲しい
Androidの正規表現で a( の文字を探したいです。 (を文字として使うので\付きで ptn=Pattern.compile("a\("); matcher=ptn.matcher("123a(0)"); とすると1行目のcompileでエラーになり ptn=Pattern.compile("a\\("); と2つ付けると通りますが2行目のmatcherでエラーになります。 ( の文字の検索はどう書けばいいんでしょうか?
>>460 どういうエラーが出るのかコピペしてくれ。
一行目のcompileのところではエディタに赤線で スケープ・シーケンスが無効です (有効なものは \b \t \n \f \r \" \' \\ です ) と出ます。 2行目のmatcherでは実機実行ではクラッシュ、デバッグモードではエラーというか matcher.classのタブが出て クラスファイルエディター ソースが見つかりませんでした。 jarファイルC:\android-sdk\platfoems\android-21\android.jarにソース添付がありません。 と出てデバッグの進行ポイントがどこかえ消えて実行継続できなくなります。 今ちょっと変えてやったらmatcherは通ってd=matcher.start();の位置取得所のところで出ました。
"a\\("としたときでmatcherのfoundのステートはfalseとなっています。 "a\("では実行すらできません。
この順でやるとどう? Pattern p = Pattern.compile("a\\("); Matcher m = p.matcher("123a("); boolean f = m.find(); int ptr = f ? m.start() : -1; ptr に最終的に何が入る?
3です、ああ取得できてますね 最初matcherでひっかかってたのは何だったんだろう
実際はもう少し複雑で a( だけでなく a) も探したいのですが Pattern p = Pattern.compile("[ab]\\(|\\)"); これではだめなのでしょうか、うまくいきません。
>>466 それなら「(a\\(|a\\))」かな
グループ化して括弧をつけるんですね 目的のことができそうです ありがとうございました
AACのLiveDataがよく分からないんですけど、 これってObservableFieldとなにか違うんすか
>>467 俺なら「a[\\(\\)]」かな
正規表現とかやってると C# の @"a[\(\)]" みたいなエスケープを解釈しない文字列表現が欲しくなるな
確かイベントの発生の仕方に違いがあった。 LiveDataは、ソースの通知の都度発生するけど、Ob〜の方は変更があった時のみ発生。 だから、通知の多いLiveDataをそのままViewに結びつけちゃうと、更新がヤバイことになる。
ObservableFieldを糞にしたのがLiveDataなんすか
>>471 Kotlin には """ (ダブルクォーテーション3つ) があるぞ。
Java11でやっと対応するね。 Androidが対応するまで最低1年、シェアが90%超えるまでさらに最低3年はかかるけどw
>>474 それ、多分pythonのパクリ
C++に比べたらたいしたことない
既存言語の機能を取り入れたり参考にしたりするのを悪いといってるのではなく、それについて「パクリ」という用語を当てはめているのが不適切だと言われてるんでないの?
>>:符号付きビットシフト >>>:符号無しビットシフト これは逆にして欲しい。 もう無理だろうけども・・・。
javaは歴史ももうかなり長いのに イベント関係でいちいちインターフェースを継承したクラスのインスタンスを作成して、 そのなかに処理を記述して〜みたいな読みにくいとか不必要な記述はなんとかならんかったのか 一方C#はメソッド参照用の専用の型を作ることで解決した
>>478 JavaはCからのパクリ多いよな。演算子とか文法とか。プログラマーの学習量を減らして移行を楽にさせるためにわざとそうしたんだろうけど。
数年前からほとんど アンドロイド向けの技術書でなくなったね 昔出た本のバージョン上げただけの本ばかりになった
ASでminSdkVersion 9にすると実行しようとした時に’最小は14だ’といったメッセージで怒られて実行できませんが 実行できないこともないと聞いたことがあるんですがどうやれば14より下で実行できるんでしょうか?
>>486 TargetSdkVersionを26以降にすると、minSdkVersionは14以降になるよ。これはもう仕方のないこと。
TSVを25以前にすれば13以前にもできるけど、今年の8月からはバージョンアップできなくなる。
マシンAとBがあってAだけデバッグモードができなくなりました AのEclipseではデバッグ実行すると実機でデバッグのおなじみのダイアログ表示がされたままでその先に全く進みません ASではブレークポイント設定しても全くそこで止まることなく通常の実行のようになってしまいます マシンBのEclipseをまるごとコピーしてマシンAで実行しても状態は変わらず、SDK側に問題があるのかと考えたのですが ASとEclipseのSDKは分けて別のものを使っています デバッグができるようにするためにはどの辺を弄ればいいでしょうか?
デバッグ許可の取消しとかやってみた?
デバッグアプリの選択というのでASの方はえきるようになりました、Eclipseは変わらないです USBデバッグ許可の取消しというのがAndroid4.x 6.0 共に見当たらないのです
ごちゃごちゃやってて今試したらなぜかできました
タイミングでできるときとできない時があるようです
>>491 もうほとんどメンテしないんですが一部昔のアプリが残ってるんで
以前はプログラム中から読み込む画像(アイコンではなく)はdrawable-mdpiに置いておけば どの解像度でも読み込めるというのがあったんですが 現在はdrawableとmipmap-anydpi-v26というのがあるようですが どちらに置いておけばどのモードでも読めるんでしょうか?
Android Studio 入れて何かアプリ作ろうかなと思っています 「2.3で更新を止めてる」みたいな意見を見かけたんですが、 最新版入れても、不安定であるとか、重いとか、何かデメリットないですか? それとも今からインストールする人には関係なくて素直に最新版を入れて問題ないでしょうか? おすすめのバージョンとかありましたら教えてくださると助かります
2.3から3.1だと勝手が変わってしまうからって言うのが大きい気がする 初めてなら3.1から始めても問題はないと思うよ
最新版って言っても、canaryは入れるなよ 今は3.1.2だ
メモリ16G推奨とかちらっと聞いたから2.3で止めてたけど、公式では8Gと書いてあるのか
16GB推奨とか恐ろしい話だね 自分はいま4GBでやってるけどまあまあ我慢できる
4GBの時は結構HDDガリガリしてたけど12GBにしたらかなり減った あとエミュで2GBメモリの設定しても平気だしAS2つ以上起動もできる 今のとこ最大9GB以上使われたことないけど
やっぱ色々快適にやろうとすると16Gくらい欲しくなるよなぁ
ググりながらだからブラウザも開いてたいし…
8Gでやってるけど調子悪いとchrome開いてるだけでたまにビルド中out of memory起こるわ
>>499 4Gまじか
エミュとか起動したらギリギリならない?
画面中央下部に配置したボタン(FABのような丸形状)を左右にドラッグ(またはフリック)に連動させてviewpagerのページ送りをしたいと考えています。 ボタンに関してはonTouch() MotionEvent.ACTION_MOVE、GestureDetector#onFling()にて指に追従させることができたのですが、ボタンの移動量に連動させてviewpagerの左右方向に動かすにはどうすれば良いでしょうか。 viewpagerを直接左右にスワイプするのではなく、またボタンの動きに合わせたいためviewpagerのページ番号の指定はしたくないです。
android studioでアプリの勉強を始めたのですが、フリーズして反応しなくなります。 PC自体の再起動もできないので、強制終了するしかなくなるのですが 原因や、対処法を知ってる方いらっしゃいますか? Lavie プロセッサ intel(R) core(TM) i7-4700MQ CPU `2.40GHZ 実装Ram 8.00GB(7.76 GB usable) です。よろしくお願いします。
PC自体が重くなってんじゃね 初期化してSSD換装したら
>>504 CPUも遅いしメモリも少ないので処理に時間がかかっている
だけだと思われ
1時間くらいほかしといて戻ってくるようならPCのスペック不足
>>505 ,506
ありがとうございます
スペック高いPCを買ってきます
ASでいつもMainActivity.java開いてる状態なんですが 実行した後、他にいくつか同じパッケージに置いてあるものの1つのxx.javaがエディタで勝手に開いてアクティブな状態になってしまいます。 これはどういう条件でこの現象が起こるんでしょうか? 毎回面倒なのでこれが起こらないようにするにはどうすればいいでしょうか?
エラーはないけど 〜は使用すべきでありませんの打ち消し線は入ってます これのせいか
自アプリからの暗黙的インテントで、ユーザーが選択したアプリのパッケージ名を知る方法ってありません?
android studio 3.1を使ってみたのですが パレットからViewをactine.xmlにドラッグできないのはなんででしょうか? 何か設定が必要なの?
fragmentで色々弄った結果をactivityの変数に保存しておきたいんですが、 普通どうやるもんですか?
最近ならviewmodelに置いとくのが一番楽じゃないか? リスナ定義もいらんし
自分以外の他アプリで再生されてる音楽が、 最後まで再生されたとを検知する方法ってありませんか?
AudioManager.isMusicActiveで、音が鳴ってるがどうかは拾えるんだが…
3年前くらいに公開したアプリが今日になって、 ポリシー違反のため削除しましたっていう内容のメールが着たんだが、 個人開発のアプリでプライバシーポリシーってどう書いたらいいんだ
ググって見つけた個人ブログの雛形と、スマートフォンセキュリティ協会みたいなとこが公開してるPDF参考にした ポリシー違反て一切作ってないんじゃなくて内容が良くなかったってこと?
そのメールで言及されているポリシーとは「あなたが策定した(すべき)ポリシー」なの? 「googleが策定したポリシー」にアプリの挙動が抵触してるのでアプリ自体を修正してね、ってことじゃないの?
カメラ使ってるとprivacy policyページ作っとかないといきなしアプリ削除されるらしい みんなもきよつけて
そもそも作ってなかったのか… 一年以上前にその手の警告メールあったはずだが
だって、"今回はプライバシー ポリシーの URL を送信しない。"のチェックボックスあるやん。。
因みに現在地取得の権限はブライバシーポリシー不要なのかな?またはACTION_IMAGE_CAPTUREで他のカメラアプリを起動して写真を取る場合も、カメラのセンサーデータを扱っている訳ではないので問題ないのかな。良くわからん。。
自分もちょうど先日削除喰らった そのアプリは確かにカメラ使ってたわ まあ、最後の更新したの5年前だし、今さら更新する気も起きないが
keystoreなくなってたからパッケージ名変えて新しくリリースしなおしたわ
プログラミング自体初心者です
のような穴埋め(?)クイズのアプリを作りたいのですが、ドロップする場所の当たり判定はどういう風にしているのが一般的なのでしょうか?
例えば、茨城県の画像ならxは○○~××、yは○○~××なら正解、東京都なら~という風にしているのでしょうか?
ドロップした図形の中心座標x、y ドロップした図の正解の位置の中心 a、b ドロップ終えたときの両者の距離が一定値以下なら〇
こういうのはAndroidSdkとか使わずにUnityとか使ってゲームプログラミングの流儀で実装している可能性がある
なるほど 中心の距離で考えればいいんですね unityが何だかよくわからないのですが便利な拡張ツール(?)みたいなやつでしょうか? 初心者なので、一つ一つ覚えて行こうと思います とりあえず中心の距離で判断するのを作ってみます 皆さんありがとうございました
Android Studioを32bitメモリ4Gのノートで試してみたけど厳しすぎますね 32bitで開発している方っているんでしょうか?
>>537 nttxで安いノートPC買っても64bitだから幸せになれるよ
てか、Android端末よりプアな物使って開発は?な感じw
いないですよね。広い世界のどこかにはいるかも知れないけど 実機でハローワールド表示するところまではやったけど重すぎて断念 昔これより低スペでEclipseADTで遊んでたから仮想使わなきゃいけるだろと 思ったんだが、なんでメモリこんなに食うのか。PC買います
超初心者です。 Excel VBAでマクロ組むくらいならできます。 Androidで作りたいアプリがあって、Studioのインストールと Hello Worldまで完了させたくらいなんですが ステータスバーを下にスライドさせたときに出てくる場所(名前わかりません)に バッテリー情報を表示させるとした場合、何をどうすればいいのかわかりません。 サイトもいろいろ探してみたのですが、そこに情報を表示させる方法が見つからず 困っております。参考になるサイトなどありませんでしょうか。
プログラムは作れるけれど大きなアイディアがなく 面白いアプリアイディアのある人と共同で創業してくれる人はどこで見つかりますか? 当面の報酬は月30万くらい、あとは成功報酬的な
6/9のAndroid Bazaar and Conference 2018 Spring行けば出会えるんじゃないでしょうか。
Javaでアプリを開発したいのですがOPPOのColorOSというAndroid7.1を元にしたカスタムOSでもAndroidStudioなどで開発出来るのでしょうか
>>547 ありがと
自分55歳なのですけど
あなたとも出会って新しい世界を作ってみたいです
Javaでアプリを開発したいのですがOPPOのColorOSというAndroid7.1を元にしたカスタムOSでもAndroidStudioなどで開発出来るのでしょうか
ブラウザ閉じてまた開いたら2回書き込みしてしまった すいません
2回書いたら質問は受け付けられないことになっている
oreoにプッシュ通知を実装したのだけど音と振動が動かないんです。channel対応もして、受信もできるしアイコンも変更できるけど音がならないの理由がさっぱりです。 onMessageReceived内で音の設定は次のようにしています。 Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); AudioAttributes attr = new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .build(); NotificationChannel channel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH); channel.setSound(uri, attr) builderはOreo以下も共通です。以下のコードでOreo以下であればちゃんと音がなっています。 builder .setDefault(Notification.DEFAULT_ALL) .setSoung(uri) channelは初回しか変更が有効でないとのことで再インストールやchannel idを変更して色々試してもだめなんです。 わざわざ実機のpixelを購入して試してます。 何が原因なのかわかる方いますか?
なんだ?!8月からAPI26以上だと?!?!?!?!?! おれわアポカリプスで作成してるから新APIはインスコールできねえんだよ!!!! ふざけんぢゃねえ金返せ!!!!!!
Unityで作ったアプリのゲーム画面の中の任意の位置に nendやadmobの広告を表示させる方法はないでしょうか? よろしくお願いします
実用上誤差なしと歌っているヨルダンの計算式のソースってどっかにないですか?。 出来ればrfoーbasicでうごくのがいいです。
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 1QOYU
これAS使用が前提になってるけど 古いアプリでEclipseのままのがあってそれでconsentSDK使う方法ないですかね?
すぐには消されないと思うけど、6/20までにはポリシーを満たしているかどうか確認した方が良い
そのうちgradleに一行書けば対応できるようになるだろう
オプションメニューを利用したいのですが、タイトルバー(アクションバー?)の表示が必須なのでしょうか? タイトルバー非表示のアプリでオプションメニューを利用する方法ってありますでしょうか?
popupmenuを適当なボタンに割り当てるのはどうでしょう?
プログラミング初心者でゲームアプリ作るために、kotlin+androidstudioで学習中だけど、c言語覚えてunityのほうがいいみたいやな 2Dマリオみたいなゲーム作りたいけど、選択肢間違えたかな
unityは良いと思うけど何故にC? 普通にunityはじめなよ
結局はどういうアルゴリズムで動かすかになるから 言語なんて1つ覚えばあとは書き方が違うぐらいの差でしかない
いやあCとC#は大分違うだろう C言語の文法覚えてもC#のLINQとかは別途学習が必要だろうし C言語じゃオブジェクト指向的になりにくい
C#の間違えです ゲームアプリはunityみんな使ってるのかね。 アンドロイドスタジオは不要?
DBにrealmを使ってみようと思うのですが、ソースファイルの分け方をどのようにするのが良いのか悩んでいます。 今までSqliteなどを使っていたときはDBアクセス用のパッケージ・クラスを用意して、 DBを利用したいクラスからそれらを呼び出していました。DAOっていうやつでしょうか。 Realmの場合はそうしたDBアクセス用のファイルを用意する事なく、DBを利用したいところで直接DBアクセスができてしまいます。 便利な反面、ソースファイルの役割分担という観点からするとどうなの?というのが引っかかります。 気にせず各クラスから個別にDBアクセスしちゃえば良いのでしょうか?
自分の作っている物が公開できるレベルの水準に達しているのか判断が難しい 設計レベルからメモリを無駄食いする仕様で、ソースを見る人が見たら 厳しい言われ方をするようなものなんじゃないかとか、 致命的な無限ループのバグが潜んでいないかとか、あれこれ考えてしまう 深く考えずに公開しても良いものか?
AndroidStudioでAndroidManifest.xmlを弄っていた時、 横にあった電球マークを押してしまったのですが すると大量の namespace 'android' is not bound の エラーが出るようになってしまいました すぐにcommand+Z を押したのですがダメでした android:versionCode= 等、android〜の部分がすべてエラーです 電球のとき表示された文字は一瞬だったので読めていませんが resetだからrefreshだか書いてあった気もします これは何をしてしまったのでしょうか、また、解決方法がわかれば教えてください
左にmanifestフォルダがあった気がしたのですがそれも消えています
エラーにはマニフェストに関連付けられているandroidが〜となっているので、読み込まれてはいるみたいです
プロジェクト側からフォルダを掘っていけばマニフェスト本体はありました
>>588 名前空間宣言が消えてるので
manifestタグのxmlnsをxmlns:androidに書き換える
>>587 Gitで履歴残すようにしたほうがいいよ。
Git管理するべきだと思うけどね、してなくても Local History という便利な機能がある エディタで右クリックしてLocal History -> Show History でファイルの変更履歴が見れる バージョン管理してるみたいに差分が見れて Revert もできる Android studio 落としても履歴が残る
gitなしとかロックやな AndroidStudioそのものにもgitついてて簡単だから導入するといいよ
Git苦手だけどAndroidStudioのやつでやってみようかな
gitなんてチーム開発じゃないならmasterに直接コミットしていくだけでいいんだよ
Gitが怖いのはほんとにサーバーにソースをアップロードして大丈夫なんだろうか 漏れることはないんだろうか?というのもあるんだよなあ
リモートにアップロードは別にしなくて良い、gitignoreはちょっと悩むが自分しか使わないならデフォルト設定でもok
お前らの作る糞コードなんか見れても誰も参考にしねえよ そういうどうでもいいことにこだわってるから 日本人のITレベルが途上国レベルのままなんだ
>>595 ASのgit管理はすごい便利。特に差分と履歴。
書類管理でも使いたいけど、似たようなgit管理アプリ無いかな。
>>597 リモート設定しなきゃアップロードしないはず。
自分もローカル運用。
質問なんだけど、今って開発ってほとんどandroidstudioが主流?エクリプスで環境構築するのって少ない?
androidstudioじゃないっすかね〜(ハナホジー
Eclipseは重いわUI古臭いわで全く使わなくなった AndroidはAndroidStudio、それ以外はAtomかvim使ってる 今Eclipseを積極的に使うメリットって何かあるんだろうか
公式サポ切りされてるから自分で環境構築するスキルあるならお好きにどうぞって感じ
>>605 vimとかのエディター使う時はコンパイルはantとgradleどっち使ってます?
>>605 Visual Studio同様に多用途なのでAndroid以外の開発する時にIDEそのものの操作性で覚えることが少なくなる
>>608 AndroidStudioもintellijだから同じことが言えるな
retrofit2+rxjava2で通信して、 画像はpicassoかglideで表示して、 アーキテクチャはMVVMでdatabindingとobservablefield使って、 diはdagger2な感じやぞ 言語はもちろんフルkotlinな
ハードのメニューボタン押すと 下の中央から縦に並んだメニュー表示するにはどうやればいいでしょうか? chmateみたいな
onCreateOptionsMenuだかでやればなると思うけど ライブラリとか端末のバージョンによってちょっと変わるかも
メニューボタンってAndroid3.0とかの頃の遺物でしょ? そんなもん切り捨てたほうがいいぞ
下から出てくるメニューならBottomsheetとかは?
>>617 onCreateOptionMenuですか
やってみます!
>>618 古い端末を使ってるのですが
このメニュー使い慣れちゃってるんですよね
このメニューは自分で使うアプリで使うつもりなので
>>619 ググってみたんですけどなんか違うような気がします...
Androidstudioでエミュを追加・起動が出来ないんだけど、HAXM入れたんだけどBIOSで設定変えないとダメか?エクリプスの方では追加・起動できたんだけど
windowsみたいな原始時代のツールでやるからそうなる
>>622 メモリが足りなんじゃない
メモリがばがば食うよ
うちのはエミュは設定して作成できるんだけど2日ぐらいすると その作ったやつは灰色文字の表示になって選択できなくなる それでエミュ使うたびに毎回作成しなおしになるんだけど これの原因はなんなんですかね?どうすれば常にアクティブで選択できるようになりますか?
俺のはUbuntu + Ryzenで問題なく快適に動いてる
エミュ起動出来たけどすごい重い、エミュ起動にもメモリすごい食うんだな2GBじゃあ足りないか
>>627 修正でメモリ4GBの間違いだ、4GBでも厳しいって書いてあったわ
2GBのパソコンて… Pentium3でものってるの?
pen3+440BXで1GBまで載せてたけどそれ以上っていけるんだっけ?
4GBのパソコンて core2duoでものってるの?
ちょっと前のatom 2in1 Winタブパソコンなら2GB,4GBは当たり前。
>>622 グラボも関係するノートなんかで初代i3のオンチップのやつはGLES2までで
エミュも2.3.3とかじゃないと動かないGPU不使用でなら動くけどすげー遅い
macを買う余裕もない貧乏人がプログラミングしてるんか
データバインディングでレイアウトファイル内に不等号を使った式を書いたんですけど android:visibilityの値には'<'文字を含めることは出来ません って出ます 結果によって表示の切り替えをしたいんですがどうするのが一般的なのでしょうか
ビジビリティーは表示するしないのプロパティだから当たり前では…。
すいません言い方が悪かったです 正確には三項演算子を使って 条件によって表示非表示を切り替えようとしていました なので比較演算子を使ったのは第1項の条件文の中です
また当然その三項演算子は@{}の中に記述してあります
エスケープすればいいだけでしように
エスケープ文字は
>>645 の文字だっけか。
そこは自分で調べて
それだけで良かったんですか 帰宅したら試してみます ありがとうございました
>>637 Macはメモリーバカ食いVM起動遅いMac用SDKリポジトリ更新遅い5年でOSサポ切り買い替え
>>648 出来ました!
ありがとうございました!
GDPRの対処についてなんだけど 元々2本にしか配信設定してないのに5月25日前後にイギリスでダウンロードされた 調査のためかわからないけど 配信設定しても、eu在住日本人が 日本語ページでアプリ検索されるのは防げないし、広告設定だけじゃだめなんかな
基本的に不特定多数に公開してる時点で全てのアプリはGDPRの対象となるだろうな
プログラミングではないのですが教えて下さい。 Androidのアプリで、 マップルという地図ソフトがあります。 起動後、地図データへのパスを求められます。 大容量の地図データなのでSDカードへ入れます。 と、そのパスの形式が /storage/47D2-1300 みたいな感じで、 SDカード固有の数字で、「数字4桁-数字4桁」のディレクトリを調べないといけないのです。 「数字4桁-数字4桁」を調べるにはどうすればいいのでしょうか?
あと、 47D2-1300 この文字列は、 そのSDカード固有の文字列で、 どのAndroid機に刺しても、 同じディレクトリになるのでしょうか?
>>653-654 ここはプログラミング質問スレです
>>656 それだと、
\w→単語構成文字:[a-zA-Z_0-9]
小文字まで含んでしまうのでダメです。
SDカード固有の文字列は、大文字アルファベットと数字のみです。
>>653 /storage ディレクトリ以下は他にも何かあるの?
>>659 ASUS ZenFone2Laserに、SDカードを刺します。
と、そのSDカードのディレクトリは、
/storage/47D2-1300
/storage/47DB-13AA
/storage/0000-0000
みたいに刺すSDカードによっておのおの変化するんです。
で、そのディレクトリ情報をゲットするには、↓みたいな特殊な方法しかないのです。
だから、もっと一般的な方法はないかな?という相談です。
http://applion.jp/android/app/jp.co.mapple.supermapple/review/17013000499/ 端末はASUS ZenFone2Laser Android6.01,Windows10からの地図データーの転送は端末のSDカードの認識が不安定なので,SDカードを端末から抜きパソコンのカードリーダーを使って転送するとよし。
スーパーマップルの設定でSDカードのpathが問題です。
解決策はカメラアプリを使います。カメラを起動し保存先をSDカードにした後,撮った写真をビューワー(右下の四角いアイコン)で表示させ画面をタップしリジェクト釦(左下の^と=が合体したアイコン)をタップするとSDカードの保存先が表示されます。
/storage/XXXX-XXXX/DCIM/Camera/が表示されますので/DCIM/Camera/を除いた/storage/XXXX-XXXXの部分を一字一句間違いなくメモします。
XXXX-XXXXの部分は一台一台(多分端末のMACアドレス)異なります。大文字・小文字・全角・半角(全て半角)も間違えるとダメです。
このメモをスーパーマップル→三本線→設定→地図・検索データーのパスに入力すると・・・きっと幸せになれます。多くの方が地図が出なくてお悩みの様なので・・・
>>656-657 正規表現で、
^[A-Z0-9]{4}-[A-Z0-9]{4}$
>>660 最近この手の数字のSDフォルダあるよね、通常の方法では取得できない
どうやれば取得できるのか知りたいね
UUID みたいなものだろ 装置がつながったタイミングで、 MAC アドレスとタイムスタンプから、唯一の名前を付ける仕組み 装置がつながっているかどうかは、mountpoint を見たらわかる
>>666 2つともアマゾンで、
信頼性の高そうな千円の32Gは、/storage/47DB-13AA みたいになって、
信頼性の低そうな2千円の128Gは、/storage0000-0000なんですよね。
だから、そのSDカード固有の文字列なのかな?って気がしたんですけど。
>>667 その数字8桁のSDフォルダ以外に紛らわしいような数字8桁のフォルダありますか?
>>668 >>661 のやり方で見れるだけなので、
/storageフォルダの中に8桁フォルダ以外のフォルダがあるか?ないか?はわかりません。
>>661 ,699
ファイラは何を使ってるの?
ESやMiXなら普通に確認できるけど。。。
>>670 ESで確認出来ました。 ありがとうございます。
サーフェイスビューで文字を表示するとき、フォントを明朝体にしたいのですが、どうすればいいですか? いくら調べても出てきません。
仮にアセットにフォントをインストールしたとしても、サーフェイスビューでそのフォントに設定する方法が見つかりません。 テキストビューなら可能なようですが、サーフェイスビューで表示したいのです。
やったこと無いけど openGLとかで表示させるのかな そういうサンプルとかありそうだけど
アセットからTypefaceオブジェクトを作って Paintのtypefaceにセットする
なるほどここにありましたね↓
https://tech.recruit-mp.co.jp/mobile/remember_canvas1/ でも単に明朝体が使いたいだけなんですけどね。
テキストビューなら明朝体を指定するだけで使えるみたいだけど、最近の端末には明朝体がないみたいだし、エミュでは表示されるけど端末ではゴシックなのかな。
複雑すぎますね。
line通話しているときに、丸いアイコンが右上に出るやつ、他のアプリ起動してても常に全面に出る あの作り方を調べたいんだけど、名前がわからない 知っている方教えてください
昔こういう本も出てたな。何かヒントが得られるかも
Android対応 マスコットアプリ プログラミング
https://www.amazon.co.jp/dp/4797368837 1円だったから買ってみたわ
サイト内でのGoogleマップ、6月12日から表示されない可能性 https://k-tai.watch.impress.co.jp/docs/news/1126926.html Google Maps Platformの料金 https://www.zenrin-datacom.net/business/gmapsapi/price/ API 月額無償枠(200$まで) 0〜100,000/月 100,001+/月 Mobile Native Dynamic Maps 無制限のロード \0 \0 MapViewを使ったネイティブのマップはいくら表示しても無料になる という認識でいいんだよね? プロジェクトを新規作成すると、cannot resolve symbol AppCompatActivityとエラーが出ました importが上手くいっていないという事はわかるのですが、なぜそうなったのかはわかりません 色々と調べた結果、どうも build.gradle の dependencies の各アイテムが、正常に動いているプロジェクトの 各アイテムより微妙にバージョンが低いもので作成されているようでした。 dependencies を正常なプロジェクトからコピペして上書きすれば動くようになるのですが 他に同じような症状に遭遇している方いますか?
compilesdkとサポートライブラリのバージョンを揃えるのが大事
GDPRってアプリインストール時に同意フォーム表示すればいいだけじゃないの? 何でアプリが個別に対応しなきゃならんの?
アプリのインストール時に表示される許諾のダイアログはアプリが要求する権限(とインストール)のものでGDPRのじゃないから それもAndroid 6.0からは単なるインストールの許可ダイアログになってる(権限の許諾はアプリ実行時に都度行う)
>>688 だからグーグルが対応しろよって話じゃないの?
GDPR対応っていうのはユーザーに同意ボタン押させれば終わりっていうわけではなく、 これまで以上に個人情報の取り扱いを厳密にする実務面の負担が追加されるわけで それは当然アプリ提供者側の仕事なので実際のところストア内アプリに関してGoogleができることなどほとんどない
アプリで個人情報を扱ってなければ何の対応も必要ないから ググルが対応しろというのはちょっと違うよな
GDPRは広告を表示していると対応しなきゃいけないんだけど UnityAdsはUnity側が対応しているのにAdmobはgoogle側が対応していない そこを文句言ってるんじゃなくて?
ツイッターで見かけた記事には、プライバシー情報を企業から個人に返すことによって、ビジネスのチャンスが生まれてくるなんて書いてあったけど、リテラシーがまったく不足してる日本じゃ、それを活かすことはできないよなぁ。
Android対応 マスコットアプリ プログラミング が届いたから一通り目を通してみたが全く今回の件と関係なかったわ
accessbilityserviceのkeyeventからハードキーの操作を検知しているのですが、画面オフだと検知されません。 画面オフでも検知する方法はあるでしょうか? 参考になるサイトなどあれば教えてもらえると助かります。よろしくお願いします。
画面オフでonStopに入るから検知は無理だと思う BroadcastReceiverでハードキーは検知できる
runnable intentserviceって何が違うのでしょうか?
どちらも非同期で、送った順番に処理していくだけに見えるのですが、実際はどうなのでしょう?
https://qiita.com/KeithYokoma/items/4e6e9bd4e44aab63424d IntentServiceはAndroid特有でServiceのライフサイクルで動くよ
>>701 ありがとうございます。
ざっくりで言うと、こんな感じでしょうか?
Runable:Java本来の非同期処理
IntentService:Android用に最適化して作られた非同期処理
うん、違うな Runnableについても、それがRunnableだからといって勝手に非同期処理になる訳じゃない
非同期処理ならexecuterService使ったら? 名前がややこしいけどこれAndroidじゃなくてjavaね
やりたいことが何か知らんが
>>700 の記事にだいたい書いてあるじゃん
ちょっと古いが
やりたいことはデータを受け取ったら順次加工してファイル保存です。 カメラで例えると、撮影して、画像を処理して、動画ファイル保存みたいな感じです。 この場合の画像処理以降を非同期でやりたいなと。
現状は撮影していると稀に画像が飛んで保存されるので、非同期にすれば改善されるのかなと。
FusedLocationProviderApiがdeprecatedになってFusedLocationProviderClientを使うように推奨されてるけど 開発者サービスが古いとFusedLocationProviderClientを使うとクラッシュするらしいいが 古いままの端末のためにこの分岐をtry/catchでやるのはあんまりよろしい書き方じゃない?
RxJavaって使ってる人いるの?ってくらい情報が少ないな
Androidの非同期処理はAsyncTaskかServiceでやる スレッドを分けるだけだとライフサイクル上破棄されて事後処理が行えないことがある
WorkManagerってAPI14以上で使えるってことは、 色んな機能をラップしてまとめた物なの?
FirebaseのJobDispatcherとは何か違うのかと思って調べたら、大体同じ感じなのね にしても、バージョンが断片化してるのに機能がどんどん変わっていって、ほとんどの機能がラッパーありきになってるのどうにかならんかね
レビューで広告があるのが残念とか言う奴何なの? なんでボランティアで作らないといけないんだよアホか
そこが今の日本人のヤバイところだよ なんでか無料が当たり前みたいに考えてる価値あると認めても金を払わない
広告無し有料版きぼんってことだろ作ればいいじゃない
全く金にならないけどスマホアプリ作るっているのが一番楽しい
Androidで関数のsynchronizedって使えますか? 使ってみると順次処理になることは少なく、 デッドロックばかりでスレッドが飛ぶのですが、 自分の書き方が悪いのでしょうか?
デッドロックするならたぶん
>>722 か悪い
javaのsynchronizedとして使ってないのでは?
>>723 ありがとうございます。
new Thread(new Runnable() を多用しているので、
private synchronized void kansu()で強引に使ってみただけなんです。
書き方と言うか、使い方やネストを見直してみます。
privateメソッドでメソッドスコープの同期って粒度でかくね
>>724 それならexecutorServiceにRunnableの実行を任せたほうがスレッド数とかcallableで返り値取得とかできていいぞ
executorServiceって最近は本でも見ないけども、 意外と有効なのね。
こんな感じで共通の関数を使い、
値を加工しながら渡して行く場合、
どんな非同期処理が有効なんでしょうか?
https://ideone.com/CaSrJ3 >>726 // new Thread(new Runnable() {
final ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(new Runnable() {
Thread()をExecuteService()にしてみましたが、
デッドロックの発生頻度が上がってしまいました・・・。
>>729 ExecutorServiceをRunnableとThreadで包んであるのは何か理由ある?
newSingleThreadというメソッド名が示す通り、勝手にワーカーThreadは用意してくれるので包む必要がない
ああすまん、コメントアウトしてたのか ロックの扱い方が悪いんだろうけど これについてはソースコードがないとなかなかわからない
>>730 ありがとうございます、ざっくりしたソースは
>>728 です。
必要なスレッド数を確保する為(ソースで言うと偶数と奇数なので2つ)に、
ScheduledExecutorServiceを使用してみましたが、
あまり変わりませんでした。
final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(2);
executorService.submit(new Runnable() {
デッドロックが起きたことを示す資料はあるか? 糞パフォーマンス実装は無視するとして 問題はハンドラーの無限ループであるように見える
>>733 https://qiita.com/disc99/items/1b2e44a1105008ec3ac9#zip https://qiita.com/toastkidjp/items/581e89559f05952fbdb6 こんな感じなのでしょうか?
最初から作るのならRxJavaで作るべきだったのかもしれませんが、
後からRxJavaに変更すると、ほとんど作り直しになりそうなので、悩んでます。
発生頻度は24時間連続で動かして1〜2回程度なので、ちょっとした改善で直らないかなと。
>>734 なんとなくおかしいのはわかるのですが、
どのように書いたらダメージが来なくなるのでしょうか?
>>735 ファイルに保存する時にSystem.nanoTime()で保存時間を見ているのですが、
20,40,60,80となるところが、
20,40,80といった具合に、稀に時間が飛んでいます。
GuavaのconcurrentパッケージかRxJava使ったほうが楽だぞ
>>738 kansuにimplementsが出来たり、
共通でExecuteServiceが使えるのですね!
おもいっきり目から鱗が出ます!ありがとうございます。
初心者スレから移ってきました AndroidStudioをSandybridgeマシンに初めて入れてみたのですが、仮想マシン起動しようとすると、Intel HAXM is required to run this AVDとエラーが出て仮想マシンが立ち上がりません ぐぐると仮想化VT技術がBIOSで切られてる可能性があるとあったのでVirtualCheckerというソフトで確認したのですが、SandrbridgeでサポートされていないVT-D以外すべてEnableになっていました これはSandyおじさんはAndroidStudioは使えない仕様なのでしょうか?
俺もSandyBridgeおじさんだけど普通に使えるよ
そのエラーメッセージでググると VirtualCheckerでも問題無しだった場合に〜っていうのがあるでしょ? 試して見た?
>>743 即レスありがとうございます
VTCheckerかけるとSandyで使えるVT技術は全部Enableにしてますし、vmwareとかも問題なく使えてます
このエラーはどうすれば回避できるのでしょうか?
他のamd系の仮想マシンも見たのですが全てでこの警告が出てます
CPUは2600k使ってます
>>744 はい、削除して入れ直しってあったので試しましたが削除もできないです
>>745 今帰宅したからVTChecker使ってみたけど右下のやつもEnabledになってるわ
因みにCPUは2500
>>747 >>750 ビンゴですありがとうございました
AndroidStudioでdownloadしたファイルや展開中のファイルだけ指定したフォルダーで実行させるセッティングなんてありませんか? いつもはTempフォルダーを6G割り当ててるRAMDISKにしてるのですが、AndroidStudioで仮想マシン作る時やコンパニオンかけて足りないlibrary落としてくる時にRAMDISKでは足らず、 tempフォルダーをCドライブに戻して再起動かけないといけないので困ってます。
文字列を管理するstrings.xmlってあるけども、 これを使用するメリットって多言語対応する時に便利ってくらいでしょうか? 速度とかはjavaで直接書いた方が早いとかあります?
Androidstudio(mac)で新規でプロジェクト作ったら、それだけでエラーになるのはなんだ?と思ったら、どうもかスペルスキーが悪さしてるみたいで、かスペルスキー止めたらエラーにならなくなった…コノヤロ…
>>753 まんま文字列リソースやけん、他言語対応するために使うものったい。
たまに速度気にするやついるけど今どきのAndroidなら 余程のことがない限り人間が認識できるパフォーマンス差は出ない
アンドロイドアプリの開発ツールでは何がおすすめですか?
ここで聞くレベルなら、AndroidStudio一択じゃね 基本知らずに他の統合環境使っても情報少ないし
javaとかはeclipse使ってたのですがAndroidStudioは重くて
たまにeclipse使いたいおじさん湧くけどAndroidStudio一択だぞ
AndroidStudioが重いって、どれだけ低スペPCを使ってるんだろう?
起動を速くしたいなら、SSD。 ビルドを速くしたいなら、CPU(クロックよりコア数)とメモリ。
メモリは16GBあったほうがいいな エミュがメモリ食いすぎる
> フリーズが止まらない 止まらないならフリーズしてないじゃん よかったな
16GBでフリーズって必要ないスワップでもしてんじゃないの
Write once, Bug anywhere.
まさかペロペロキャ…?!
Android 8.0のユーザーから2回目以降の動作で通知が来ると言われてるんだが 何で最初のBroadcastReceiverの通知が受け取れないのか分かる人いる? もしかしてDozeとか絡んでる?Android 6.0、7.0の時はこんな頻繁に発生しなかった
エミュでこういうエラー出たんですけど意味わかりますか? あまり情報出てこない glTexImage2D: got err pre 右下にポップで出て特に停止もせず動くのは動くんですけど
ずっとJavaで作りたいんだが… なんとかならんのか!!
ASでkotlin変換するとどんなアプリも100%動作できるレベルに変換できるの?
Android Studio3.1は動作が不安定だから使わないがいいって言われてたけど もうそろそろ更新して最新使っても大丈夫でしょうか?
Linearlayoutの背景にvector drawableの画像をタイル状に敷き詰めたいのですがどうすればいいですか? drawableフォルダにdrawableリソースファイルを作成し layerをルートタグとしてitemタグ→bitmapタグを作成 bitmapタグにsrcとしてvector drawableの画像を指定し、tile属性にrepeatを指定 最後にそのリソースをLinearlayoutの背景に指定すれば良いかと思ったのですが、実行すると背景が何も表示されません bitmapタグの代わりにshapeタグ→solidタグで背景色を指定したリソースに差し替えると背景色がちゃんと変わる事は確認しています bitmapタグの使い方がおかしいのでしょうか? どなたかわかる方教えてください よろしくお願いします
GPSコマンドのスピードから移動距離って出せますか?。 その時の精度はヒュベニイの方法より上ですか?。
今年に入ってツール系アプリを 個人で作った方いませんか? DL数とかどんな感じですか? 稼げてますか?
>>786 ありがとうございます
帰宅後に実装して確認します
>>784 不安定?そかな?自分はなんともないけどな
android開発では、javaとkotolinとどっちがお勧め?
全然プログラムの話じゃないんだが、 simなし泥端末が欲しいんだけど、何がいいと思う? 俺のなかでは ・ただの泥ダブ ・格安端末 ・エジソンに泥を容れる の三卓かな?と思うのだけど
新規開発ならコティンだろ。 つかJavaで書いても自動でコティンにしてくれるから、 Java勉強して変換後と比較するのが近道だろ。 コティンで書こうとJavaを知らなきゃAPI一つ満足にかけないだろうし
それにコティンは普及しないと思う。 APIセット全部を書き換えないとオラクルから逃げられない。
>>795 Nexus6p
Pixel2
Xperia XZ
Nexus, Pixel 必須 Xperia, Galaxy あったほうがいい Huawei, Xiaomi 余裕があれば
エミュでHuaweiの機種のエミュとか対応してくれないかなあ
Kirinが特殊ってか、情報を公開して無いんだろうな
ある時期のOSレベルから、Wi-Fi スキャンを全然しなくなってないか? 自宅に帰ってもWi-Fiに自動で切り替わらないんだけど。。? Xperia XZs Android 8.0 当たり前だが「自動接続はON」にしている。 でも、プログラムを書いて確認した限りは、5分は自動で切り替わろうとしない。 Wi-Fiを切り捨てるのは、早いんだけどな。 APの電源を切ったら6秒もしないでセルラーに切り替える。 反応が遅いと判断したのは、APの電源を切り、ビーコン発信を再開。 Windowsだとキッチリと30秒程度でWi-FI APを再検出する。 しかし、Androidは、5分過ぎないと変化しない。 手動でWi-Fi設定画面でスキャンを実行させると切り替えるけどね。 尚、API Level 28(P)で手動スキャンは廃止されるから、今後、小さな大問題になるような気がした。 以上。 ぼっちの報告。
>>805 ZenFone3と4だけど8.0にしても全然問題無く自動でWiFi掴むよ
>>805 xz1 compactだけど即切り替わるわ。5分なんて絶対かからない
>>797 >>799 wikiだとコトリンだって
そうなん?俺の端末だけかな WIFIのスイッチ画面を出さないと、掴もうとしない。 もうちょい調べてみる。
kotlinの記述が簡潔なのはわかるが やっぱjavaですかね?>android
技適違反がどうした。何の問題あるのか かかってこいよ
技適ってよくわからないけどどういうの? 電波出すやつ関係にあったりするよね 日本は日本だけの基準があるの?
基準は特別なことはない 規定の範囲内の周波数を使ってることの認定 電波なんて好きかって使われたら大パニックになるから認証制度がある
>>812 技適違反の機種で確認したアプリを出すと
「この人(会社)は平気で法律違反するんだな」って思われる。
現状は経団連が政府に提言している段階だから、他人に勧められる状態じゃない。
何でPixelでしか確認しない前提なんだよ いろんな機種で確認するに決まってんだろ 海外にも公開するアプリ作ってるのに世界シェアのある端末で確認しないのはアホ
>>810 コティンでプログラムは書けても
Javaを知らずにアプリは書けない、
アプリのフレームワークは、必ずJavaに依存しているからね。
取り敢えずJavaで書いて、コティンに変換したソースをギフハブに載せて、
さも主流はコティンですよ!とドヤ顔するのが勝利の条件。
Javaだけ知ってりゃ困らないし、
今後もそこは変わらない。
何故なら、javavmとフレームワークに依存する既に書かれたアプリが全部動かなくなるからね。
Java切り捨てて、ネイティブアプリに移行する。
とかの方が現実味がある。
コティン専用の新フレームワークが出るまでは放置でよい。、と思う
コティンで書いても速度は変わらんだろうし、結局はJava中間コードを吐くしね。
勉強する時間がないんだよねえ Java使いこなしてる人がkotlinでアプリ作れるようになるまでどれくらい時間かかるかな
自分のアプリを一つkotlinに書き直してみれば大体できる
コティンおじさんの自信はどこからくるんだ コティンて呼ぶのが面白いのかな
新規開発はもう100%KotlinだからJavaだと既存アプリの糞みたいな保守の仕事しかできないね
>>817-818 コティンじゃなくてコトリンだって言ってんだろカス
原因は分かった。Wi-Fiの奴ね。 「スリープ時のWi-Fi接続」を「維持しない」にするとスキャンが遅延するみたい。 維持するにしたら直ぐにWi-Fiにローミングした。 以上、報告まで。当然維持しないに戻した
ローマ字入力のままで l を打たないとコティンになるのかな 今はスマホからフリック入力してるから確認できないが
>>816 海外の端末を日本で使うには、電波暗室が必要なんだが
>>830 どれか持ってる?
【A】 実験試験局免許を取得することで、技適マークのない機器も研究開発目的で使用することが可能。
【B】 電波暗室等の設備内のみで使用する場合は、無線局免許(実験試験局免許など)を取得せずに使用することが可能。
【C】 特定実験試験局制度を活用することで、申請から免許までの処理期間を大幅に短縮することが可能。
【D】 電気通信事業者による接続の検査を受け、技術基準に適合していると認められれば、その端末機器を電気通信事業者のネットワークに接続して使用することが可能。(少数の試作品段階の端末を使用する場合などの手続き)
https://smhn.info/201802-keidanren-reform-giteki ASを最新に更新するとAndroid-SDKの中身まで影響出るでしょうか? あくまでAS側だけなんでしょうか SDKもなら今は更新控えとこうと思ってるのですが
複数のバージョンのAndroidStudioから同じSDKのディレクトリ見るようにしてても特に問題は無いよ
Android PってHDR再生対応ってなってるけど、Nから再生対応してるよね 何が新しいんだろうか
Android PのPってピーナッツバターなんだっけか? ポップコーンでいいような気もするがスイーツではないから無理か
>>776 これを見るとペロペロキャンディぽいけど英語圏だと呼び名違いそうだよなぁ
Android 8のプッシュ通知対応したら今まで届いてた 6とか7にも来なくなった…(´・ω・`)
// 1 private void kansu1(){ new Thread(new Runnable() { @Override public void run() { } }).start(); } // 2 class kansu2 implements Runnable{ @Override public void run() { } } Runnable kansu = new kansu2(); new Thread(kansu).start(); 関数の書き方で質問があります。 上記の場合、kansu1とkansu2は全く同じ処理になるのでしょうか? 使い回す時のコストも同じになるのでしょうか?
毎回threadをnewしてる時点でひどいコストだから比べる意味ない executorなどのスレッドプールを使えというのに そもそも途中で止められないthreadを作ったらあかん
最近は、ランナブルよりハンドラをお勧めしていたような。 アプリケーションは、JavaとAndroidフレームワークの奴隷となって、命令されたことだけ実装したら、サクッとスレッドを手放せが原則。 1と2に実行コスト面での違いに有意さはないかと。 違うのは、変数やメソッドを参照できる範囲の閉じ込め。 スコープかな
sqliteに大量の初期データを入れるにはどうすればいいんですか railsのseedみたいなことできますか
データを書き込むクエリーを羅列したプログラムを組むだけでは? あとはsqliteのDBは1ファイルなんで、初期状態を作成したDB ファイルをコピーしても動いたと思うけど
developer consoleで総インストール数が見れなくなってるんだが
onclickListenerやonItemClickListenerの用法の違いを知りたいです。 また、ビューに対応したinterfaceやListenerの対応表みたいなのってありますか? 他のリスナーの用法が一覧できるとありがたいです
アクティブなインストール端末数が急激に伸びてるんだがなにごと
バックグラウンドでスリープさせずに定期的にウェイクアップさせる方法おしえて
タッチパネルに電流を流す。 端末に穴をあけるか水いれて漏電させる。
ホームスクリーンアプリとかサービスのことじゃない。
ロリポ以降はDozeモードによって好き勝手に起動させないようになってるんだなこれが
ラジオボタンに、文字列の〇や□、◇を配置したいのですが、どうやったらできますか?
>>859 マジレスするとジョブずスケジューラを使うと思う。
面倒なパラメータが必要だけどね。
このあたりは、やはりJavaのフレームワークよりも洗練されてない。
>>860 ドロワーでスタイルを定めて、
ラジオ牡丹にドロワーを指定するのだと思う。
リストビューのスタイル指定が、こんな感じ。
ドロワーの定義でイメージなんかで指定すればよく、恐らくは、ステート毎に複数の宣言が必要
で、画像で指定するから、○や□みたいな記号は、そんな画像を準備する羽目になる。
いや、想定されていたら、簡単にできるのかもしれんけど。
>>862 ありがとうございます。
テキスト自体をボタン化する方法があればいいのですが
textViewにonClick設定すればいいやん
ちなみに、文字 "◇”をラジオボタンに設定して 非フォーカス時、フォーカス時、プッシュ時に、それぞれ色を変化させたい、とした場合、 どのようにコードを書けばいいのでしょう?
background drawable selector
ありがとうございます! キーワードで調べてみます。 もう一つ質問なのですが is2String()というメソッドってありますか?
すみませんでした。is2Stringの件は解消しました。
質問させてください 〜あるクラス〜{ ・・・ GPSListener gpsListener=new GPSListener(); ・・・} private class GPSListener implements LocationListener{ @override pubulic void onLocationChanged(Location location){ ・・・ } onLocationChangedは、GPSの位置情報が格納されたlocationを引数にしていますが、呼び出し元で実引数の記載が見当たりません。 この引数は、どこで位置情報を格納されて、どこから引数を受け取っているのでしょうか? インターフェースのLocationListenerからでしょうか?
すみません、訂正です。 〜あるクラス〜{ ・・・ GPSListener gpsListener=new GPSListener(); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,gpsListener); ・・・} private class GPSListener implements LocationListener{ @override pubulic void onLocationChanged(Location location){ ・・・ } onLocationChangedは、GPSの位置情報が格納されたlocationを引数にしていますが、呼び出し元で実引数の記載が見当たりません。 この引数は、どこで位置情報を格納されて、どこから引数を受け取っているのでしょうか? インターフェースのLocationListenerからでしょうか?
>>872 呼び出し元とはonLocationChanged()を呼んでいる箇所ということになるけど、
そういうことであればlocationManagerが位置情報が変化したタイミングで呼んでいる。
>>873 ありがとうございます
位置情報が更新されたタイミングで、ということでしたら
位置情報を把握しているlocationManegerが、逐次タイミングを図っていて
位置情報が更新された段階で、locationManagerからGPSListerのインスタンスに引数を渡している、ということなのでしょうか?
ありがとうございました! 初学者なのですが、引数を持つメソッドがあるのに 実引数を持つ呼び出し元がない記述を始めて見たので理解できずに検索しまくっていました
すみません、初学者で分からないことばかりです。 教えてくださって本当に助かっています。ありがとうございます。
バックグラウンドで定期的に動かす場合、どのタイマーを使ったら良いのでしょう? 1秒おきくらいにUIスレッドに戻ります。
やっぱりRxJavaになるんですかね? 標準のTimerやTimerTaskはすごく評判が悪いけども。
RxJavaってサンプルコードを見ると行数が少なすぎて、なんか怖い・・・。 RxAndroidも必須なのかな?
別に怖くないよ Android UIスレッドを触るならRxAndroidは必要 てかAndroidUIスレッドを触るためだけのライブラリ
rxAndroidはなくても頑張ればどうにかならんことはない でもそこ頑張る意味ないから入れとけ便利だぞ
rxAndroidはとりあえず入れとけって感じなのですね、ありがとうございます。
ざっくりだとこんな感じなのでしょうか?
https://qiita.com/acple@github/items/6cfee916f09632037a6e Observableでイベントを作って送って、
.Subscribe()で受け取るって理解で良いのかな?
>>885 さんの言われてる、intervalのタイマーはこれで。
http://blog.norioegi.com/rxjava-timer/ implementation "io.reactivex.rxjava2:rxjava:2.1.6" implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' をgradleに書いて、 Observable.interval って書いても、intervalが見つからないです・・・。 RxJavaの良い入門サイトは無いでしょうか?
RxJava 2.xの情報がここ1年ほとんど無いけど、 オワコンなの?
TextView txvText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txvText = findViewById(R.id._txvText); Observable .interval(1, TimeUnit.SECONDS) .subscribe(txvText.setText();); } 1秒ずつ表示したいけど、どうやって秒を取得したら良いのかもわかりません・・・。 Intervalのサンプルも無いし、どうすればいいの?
>>893 成熟期に入っただけ
むしろ当たり前として使ってる
>>896 Observable
.interval(1, TimeUnit.SECONDS)
.subscribe(txvText.setText(it););
こうでしょうか?
でもitが見つからないし、そもそもitってググっても出てきませんが、どこから来たのでしょう?
Observable.interval(0, 1, TimeUnit.SECONDS) .take(10) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.computation()) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Long aLong) { txvText.setText(aLong.toString()); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
.subscribeOn(Schedulers.computation()) はなくてもよかった
>>898 0〜9まで1秒毎に動きました!
ありがとうございます!
runOnUiThreadを使わなくても表示出来るのは便利ですね。
ObserverじゃなくてConsumerを渡す(ついでにラムダ式)。 Observable.interval(0, 1, TimeUnit.SECONDS) .take(10) .observeOn(AndroidSchedulers.mainThread()) .subscribe(cnt -> txvText.setText(cnt.toString()));
>>897 it って、this, self みたいな、
自分自身のインスタンスを指すキーワードか?
アプリ初心者です 全画面に表示する共通のメニューを作りたいです AppCompatActivityを継承したCommonActivityでメニューを作成して、 他の画面CommonActivityを継承しましたが、メニューは出ても 子クラスのその他のテキストビュー等が出せません SetContentViewで2つのViewを同時に出す方法はあるのでしょうか?
Androidアプリ開発を学びたいのですが、今から始めるならKotlinが良いのでしょうか? 個人的に不安なのが、書籍やネット上にある情報の多くがjavaで解説されているため、詰まったときに解決できなくなってしまいそうなことです。 先にjavaによる開発を経験してからの方が賢明でしょうか?
>>903 そういう共通で使う画面パーツはflagmentで実装する
activityとのやりとりにはviewmodelを使うと便利
あとcommonActivityはアンチパターンだからやめとく
>>904 まず、もし2D/3Dゲームを念頭に置いてるのなら最初からUnityでよい
次に、入力フォームや表データや画像とかを表示する(または何も表示しない)ユーティリティ・ツールアプリを作りたいのなら今のところJavaで作るしかない
Kotlinは自力で記述するJavaを大幅に置き換えることができるが、他人が記述したJavaプロブラム文を意味や意図ごと置き換えることはしてくれない
もしKotlinでAndroidアプリを作りたいのなら、他人が書いたJavaプログラム文を解釈して理解するだけのJava知識は実質的には必要
>>905 ありがとうございます
flagmentを勉強します
>>906 レスありがとうございます。
ツール系・ゲーム系両方やってみるつもりです。
ツール系の場合はjavaある程度触ってからやってみることにします。
ちなみにAndroid Studioで2D、3Dのゲームを制作するのは難しいのでしょうか?
もうすぐandroid終了するのに今更やる意味ないでしょ
>>910 Googleの言う将来とやらを真に受けてGo言語を学んだ結果はいかがでしたか
>>912 超平たく言うと、GoogleはAndroidスマホ・Chromebook・スマートスピーカーあたりのOSを次期OSで統合「したい」の「ではないか」という観測がある
まあそりゃ統合はしたいだろうけど市場がついていくとは限らんし動くもの作るのにも時間がかかるし別に気にしなくてよい
あなたに一生に一つしかプログラミング言語を学べない呪いがかかっているとかならAndroidに関わるのは別なものにしたほうがいいけど、Cとか
まあ今月 p が出るみたいだし、しばらくはまだ大丈夫じゃない?(大丈夫とは言っていない)
Javaの有償化。openJDKにすれば回避できるてのも疑問。
>>904 が1からプログラミングを学習してまともなゲーム作れるようになる頃にはandroid終了しているだろうなって話
チームで開発しててもまともなもなゲーム作るには一年はかかるのに、それを個人でやるんでしょ?
積み上げた知識は無駄にはならないけどね
>>917 openで回避できるじゃん
何が疑問か分からない
Androidは開発環境も昔はOracleJDK使ってたけどしばらく前からOpenJDKに変更されてるしな
>>904 最新の機能をゴリゴリ使いたいならば、毎年googleが
思いつきで出してくる最新の言語を覚える必要が
あるかも
でも基本的にアプリケーションを動作させるエンジンが
Javaベースの間(今ならばART)はJavaで開発を行って
いれば大体のものが動いて作れるしサンプルも豊富
それとは別にゲームとか特定の分野のアプリを
作るならば、それ用のプラットフォーム(例えば
>>908 さんが書かれたようなUnityとか)が開発されている
ことも多いのでそちらを覚えた方がよいかも
androidはなんちゃってオープンOS化がひどくなって
いるので、一部googleにべったりで仕事をしている人
以外には最新の環境を追ってもあまり意味はないよ
>>921 そこが疑問なんだよ。
OpenJDKでORACLE排除できるというなら、コーティンに移行させる必要性がなくね?
コーティンに移行してもORACLE裁判のフレームワーク設計に著作権が認められた点を排除できてもいない。
コーティン使おうとimport java.*するのだから。
プラットホームビジネスというか プラット法務ビジネス
【審議中】 ∧,,∧ ∧,,∧ ∧ (´・ω・) (・ω・`) ∧∧ ( ´・ω) U) ( つと ノ(ω・` ) | U ( ´・) (・` ) と ノ u-u (l ) ( ノu-u `u-u'. `u-u'
>>923 Kotlin採用は、AppleがSwift採用したのと同じで、現代的な言語に移行したかっただけだよ?
あえてKotlinなのは、Android含めたJavaとの互換性を考慮して設計されてるから
Googleが面倒なことしなくてもJavaからKotlinに移行できるようJetBrainsがお膳立てしてくれたから、それに乗っかっただけでしよ
>>926 AndroidStudioのベースにIntelliJを採用したかったグーグルが付き合いでKotlin採用しただけだろ。
すみません、Androidプログラミングで ~Layoutの類が詳しく説明してあるところってありますか? 思ったところにコントロール?が配置できなくて。
RxJavaを理解していないってのもあるけども、 onNextにExecuteServiceを入れるのは無意味ってか無駄でしょうか? ExecutorService PexecutorServiceEx = Executors.newSingleThreadExecutor(); private void subRxJavaTimer() { Observable.interval(0, 1, TimeUnit.SECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Long aLong) { PexecutorServiceEx.submit(new Runnable(){ @Override public void run(){ // 1秒では終わらない処理 } }); } @Override public void onError(Throwable e) { } @Override public void onComplete() { PexecutorServiceEx.shutdown(); } }); }
map/flatmapで同じこと出来るのですね、ありがとうございます。
すいません、本を読んで引っ込みます。 RxJavaは翔泳社の「RxJavaリアクティブプログラミング」って本を読んでおけばいいでしょうか?
現在入門書を読んでる初心者です 「ダイアログを生成するためにはビルダーを利用する」と記載されていたのですがそもこもビルダーとは何でしょうか? 自分なりに調べた結果、引数が多いと記述する際にわかりにくくなるため、コンストラクタの代わりに作るものと理解したのですがこの認識で合ってますか?
分かりにくいとかより、ダイアログも実体は通常の画面表示 なのだけど、ダイアログのような表示形式にするには通常の 画面に色々設定をほどこしてそれっぽくする必要があるので、 自動的に面倒くさい部分を隠蔽して作ってくれるクラスが 提供されているよ感じかな ただ、想定されている形式のものしか作成できないので、 クラスのオーバーライドを行っても出来ることが限られるので 自分でダイアログボックスのクラスを作る人も多いような 気はするけど
>>942 ビルダー=自動的に面倒くさい部分を隠蔽して作ってくれるクラス
ってことですか?
ビルダーで検索したらビルダーパターンしか出なくて困ってたんです
ビルダー: 色とかサイズとか指定して購入ボタンを押したら服をこしらえてくれる、オーダーメイドショップみたいな人。 購入ボタンを押すまでは自分でやらないといけない。
使用時の定形パターン。 赤服 = new 服ビルダー().set色(赤).setサイズ(L).作る(); 赤服.着る();
服が着るのはなんか変だが、本筋じゃないからまあいいか
ビルダーパタンとは? 複雑、多めのパラメータを構築するパターン。 ビルダーそれ自体が目的となるオブジェクトは作らず、ビルドしたパラメータをファクトリーに与える形で用いる。 また、ビルダーがパラメータ検査を行うことで比較的に勘弁なロジックとなるが、往々にしてパラメータ検査なんかしていない。 例 女、綺麗 猫、黒のみ 刀、ファンド をパラメーターにとるファクトリーがあり それぞれ 女 → パイクのポリゴンを持つオブジェクトを吐き出す、ただし綺麗で清らか 猫 → パンのポリゴンを。三毛猫のみ 刀 → バス。存在する楕円曲線名が必要 という条件、ロジックに適する。 なお、この場合のファクトリは、見かけは一つだが、中身は別のファクトリを分岐して呼び出すことが多く、複雑さを与えておきながら、中身を見せない抽象化を必要とする場合にも使われる
文脈がないのでビルダーの指す意味が多岐に渡り過ぎて大喜利しかできないというのが正直なとこだ IDE付属のGUI画面組み立て機能のことだと思うのだが
>>955 いやいやw
この程度読めないなら黙っておいた方がいいよwww
>>956 > この程度読めないなら黙っておいた方がいいよwww
てんでバラバラの回答だらけなのに何言ってるんだか w
Menuにセパレータていれらんないの?groupしても入らないみたい
ビルダーは、設定ファイルの値を設定する方法 GUI のビルダーが有名。 Selenium WebDriver とか
webviewを使ったアクティビティをインテントで他のアプリからjavascriptを実行できてしまうのは作りに問題あるのでしょうか?
>>961 アクティビティをエクスポートしなければ、よいような?
データベースを使用する際に、最初のcreateの部分で画像の様にsql文を+演算子で結合してるのはなぜでしょうか?
1行にまとめて書くのは良くないのでしょうか?1行にまとめると単純に見にくくなるからでしょうか?
+演算子を使っているのは文字列リテラルと文字列変数を結合する為です 改行は単に見易さの為に入れてるだけ
>>965 やはり見易さのためでしたか、ありがとうございます。
あと、サンプルによっては+演算子の場合とStringBuilderを使ってる場合があるのですがどう使い分けているのでしょうか?
それともどっちでもいいのでしょうか?
どっちでもいいけど、StringBuilderの方が文字連結のスピードが早い。
速くなるかどうかはどう最適化されるかによると思うが、やたらでかい文字列だとか何万回も同じ処理するだとかそういう特殊な事情がない限りはどのように書いても人間が感じられないぐらいの速度に収まると思う。 特にSQL文なんかはサーバに送って実行されてる時間の方が圧倒的に長いのが普通だろうし、SQL文の文字列の連結でどうすべきかはあまり深く考えても意味はないと思う。
>>967 >>968 回答ありがとうございます。
状況によってどちらを使うかで早さが変わってくるようですね。
勉強になりました。
>>968 細かい話だと、SQL文は同じ集合を求めるクエリなら、すべてのプログラムが同じクエリ文字列を与えて、パラメータは文にいれない方がプチ速くなり、鯖のメモリを1KBオーダーで節約できる。
クエリ文字列が空白、エイリアス、検索条件まで含めて一致したら同じクエリだから、解析せずに過去の解析結果をつかって文を実行する。
テーブル名、列名をわざわざ連結編集するのは、SQL文の統一性、名称変更の手間を減らす意味があるが、
こんなクエリ解析速度という因習、風習が趣旨と考えている人もまだ多い。
マテリアルズビューなんかが常用される時代、テーブル名で検索条件をプログラムに書くと嫌われる。
ちらうら
細かい話だと、SQL文は同じ集合を求めるクエリなら、すべてのプログラムが同じクエリ文字列を与えて、パラメータは文にいれない方がプチ速くなり、鯖のメモリを1KBオーダーで節約できる。 クエリ文字列が空白、エイリアス、検索条件まで含めて一致したら同じクエリだから、解析せずに過去の解析結果をつかって文を実行する。テーブル名、列名をわざわざ連結編集するのは、SQL文の統一性、 名称変更の手間を減らす意味があるが、こんなクエリ解析速度という因習、風習が趣旨と考えている人もまだ多い。マテリアルズビューなんかが常用される時代、テーブル名で検索条件をプログラムに書くと嫌われる。ちらうら
入門書を1冊やり終え、現在自分で考えたアプリを作っています。 しかし、「ここの実装はどうやったらいいのだろう?」っていう状況が多々発生します。 実装で詰まった時はどうやって解決策探してますか? 今はとりあえず、ググるorStackoverflowやQiita内を検索って感じで探してます。
>>975 やりたい処理を適度に細分化するココらへんはセンスだな最小単位の処理から作る
速度とか効率は二の次で"自分"で考えてとりあえず動くもの書いてみる
これの繰り返しだよ
困ったら 風呂入って考える 寝て起きたら考える と何故か解決する
>>975 持論のコツを垂れると
976の通り、リファレンスを読む。
泥が唯一優れているのは、ドキュメントだろ。
デベロッパーAndroidコムなんか、かなり親切丁寧に書いてある。
窓みてみろ。あの腐ったドキュメント。
ヘッダーファイルの方がまだ分かりやすい、
>>977 すいません、あまり伝わっていなかったみたいなので補足します。
>>975 で言っている「ここの実装はどうやったらいいのだろう?」っていう状況は、考えたら解決するような問題ではなく、単純に知識不足でコードが書けない状態のことを指しています。
>>976 >>978 リファレンスの中から目的に合ったものを探すのはどうしてますか?
例えばこの前、ボタンを動的に消そうと思ったときにボタンや親クラスのリファレンスを見ていたのですが該当する項目が見つかりませんでした。
結局ググった結果、ボタンを消すにはボタンが配置されているレイアウトからボタンを指定して消す必要があるらしいことがわかりました。
ボタンに関する操作を行いたいのにレイアウトのリファレンスを見ようとは思わないのでリファレンス内から自力で見つけるのは難しいなと感じている状態です。
>単純に知識不足で 経験が足りないのはどうしようもない あきらめろ
>>979 Button の表示を消すのは親クラス View の setVisibility(View.GONE) か setVisibility(View.INVISIBLE) かじゃないの?
まあ、Layout を操作するって方法もあるだろうけど、それにたどり着けないのは View が Layout に配置されているという基本的知識が足りないせいだよね
レイアウトについて全く触れてない入門書とか有り得ないと思うんだけどどうなの?
>>979 暇な時にリファレンスを読んで、どこに何が書かれているかの概要を覚えておく。
どの資料に何が書かれているかを知っているのもスキルのひとつ。
目的の情報ばかりじゃなくて、調べる過程で知った他のことっていうのも頭の隅においとくといいよ。それがいつか引き出しとして役に立つことがある。
>>981 setVisibilityも見つけましたが、これは一時的に見えなくするだけでアプリを再起動したらまた復活するから違うなと思った次第です(完全に消したかった)。
ViewがLayoutに配置されているのは理解していますが、Viewを消すのだからViewのメソッドに自分自身を消すものがあるのではないかとの予測のもと探していた感じですね。
確かにレイアウトに配置(set)したのだからレイアウトから消去(remove)できると考えたほうが自然かもしれません。頭かたかったですね。
>>982 英語苦手ですがやはり避けて通れない道ですね(-_-;)
>>983 そうですね。今後に役立ちそうな情報はすぐに引っ張り出せるようにしておきます。
>>984 動的にプログラム実行中にレイアウトからボタン消しても、アプリ再起動で復活するだろ?
それともレイアウトのXMLを編集して消したってことなの?
後者ならViewのメソッド探すとか見当違い過ぎだろ
>>984 ひとりの人間を消すとなったときに、一般的には他殺で実現するのに、自殺するやり方を模索してた、みたいな感じかな。
>>986 状態を保存するという概念がないのだと思われ
viewをアプリ動作時に消したら、その後もずっと消えてて欲しいのだと思う
sharedPreferenceに何らかのデータを保存して条件に合うときだけ 動的にaddViewかなあ
>>989 設定でOFFにしたら今後表示しない、みたいなのかも
あるいは「このヒントを二度と表示しない」のチェックボックスかもしれん
auメールアプリではタップでメール内容表示フリックで指の動きに追従して ゴミ箱に送れるボタンあるけどあれ作れと言われたら困るな
>>985 マジレス; クロムなり機械翻訳を使う
かわいい日本語(libraryを「としょかん」と訳す)だが、要約はつかめる。
Recyclerviewにて画像を表示しています。 スクロールすると非表示となったViewが再利用されて、スクロールで非表示となった画像が再度出てきてしまいます。 どのように制御すればよいでしょうか?
recycleしなけりゃいいんじゃね NestedScrollViewでrecyclerViewを囲んだらいいよ
-curl lud20241217060641ncaこのスレへの固定リンク: http://5chb.net/r/tech/1510691057/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「Androidプログラミング質問スレ revision54 YouTube動画>2本 ->画像>13枚 」 を見た人も見ています:・Androidプログラミング質問スレ revision51 [無断転載禁止] ・【道重さゆみファンクラブツアー2018in浜松】 道重さゆみオフィシャルブログ総合part859 【質問募集していますいっぱい質問待ってます】 ・UNIXプログラミング質問すれ Part8 ・プレミアムサービス ログイン 設定 【3DS】ドラゴンクエストモンスターズジョーカー3プロフェッショナル【DQMJ3P】part25 ・Elden Ring エルデンリング初心者&質問スレ part7 ・【PS/XB】Elden Ring エルデンリング 質問スレ Part3 ・【PS/XB】Elden Ring エルデンリング 悪質プレイヤー晒しスレ Part4 ・【ゆらゆら 飛ぶわ! ハーイ キラキラお月様〜☆ ドラゴンの怒り受けて見ろ! ハライタマエー うにゅーぅ!】白○猫プロジェクト総合雑談スレ(4029シャドウバースShadowverse) [無断転載禁止] ・【Switch】Splatoon2/スプラトゥーン2 A〜B帯スレ 49【質問/雑談】 ・【ロマサガRS】ロマンシングサガ リ・ユニバース質問スレ Part43 ・【ロマサガRS】ロマシングサガ リ・ユニバース質問スレ Part9 ・マイクロソフトのゲームストリーミングサービス「Project xCloud」、10月からプレビュー開始(日本は対象外) ・【雑談】白猫プロジェクト☆1359匹【F9=鋼.兵=ID加速中=なっちはスバラシイ=病巣院クルリ=絵スレ荒らし=豆大福=アフィ茨城=化粧アスペ=インフォガー=カワハギ=糞虫小僧】 ・【雑談】白猫プロジェクト☆1353匹【F9=鋼.兵=ID加速中=なっちはスバラシイ=病巣院クルリ=絵スレ荒らし=豆大福=アフィ茨城=化粧アスペ=インフォガー=カワハギ=糞虫小僧】 ・【雑談】白猫プロジェクト☆1357匹【F9=鋼.兵=ID加速中=なっちはスバラシイ=病巣院クルリ=絵スレ荒らし=豆大福=アフィ茨城=化粧アスペ=インフォガー=カワハギ=糞虫小僧】 ・【雑談】白猫プロジェクト☆1356匹【F9=鋼.兵=ID加速中=なっちはスバラシイ=病巣院クルリ=絵スレ荒らし=豆大福=アフィ茨城=化粧アスペ=インフォガー=カワハギ=糞虫小僧】 ・【IT】プログラミング言語「COBOL」がTwitterトレンド入り AWS Lambdaのサポート言語に追加、技術者がざわつく ・【雑談】白猫プロジェクト☆1361匹【F9=鋼.兵=ID加速中=なっちはスバラシイ=病巣院クルリ=絵スレ荒らし=豆大福=アフィ茨城=化粧アスペ=インフォガー=カワハギ=糞虫小僧】 ・【プリコネ】プリンセスコネクト! Re:Dive質問スレ Part45 ・【ニコニコ動画】「niconico」改善策発表…ログイン不要で視聴可能、フルHD画質(1080p)、一般会員にシークバー開放 ・Nintendo Switchにプログラミングツールが登場。Switch上でスイッチ用ゲームを作ることが可能に [無断転載禁止] ・プログラミングの初歩的な質問をどこですればいいかわからない ・Shadowverseまったりスレ 129ターン目 【シャドウバース】!extend:on:vvvvvv:1000:512!extend:on:vvvvvv:1000:512!extend:on:vvvvvv:1000:512 ・2000年代にPRIDEを盛り上げたノゲイラヒョードルミルコシウバコールマングレイシー一族桜庭和志藤田和之とかは今のMMAでは通用しないの? ・【悲報】AMD Ryzenにエラッタ発覚。ランダムにプログラムが壊れる。BIOSでは直せないので交換対応も開始 [無断転載禁止]©2ch.net ・Androidアプリ質問スレPart15【探し物は別スレ】 ・【プロバイダー板】質問・相談・誘導スレ part4 ・Android 質問スレ Part75 【アプリ質問は他で】 ・【マルハン出禁】勇者トロID無しスレ Part58 【糖質完全勝利】 ・【ハジネコ 土肥祐介 東山奈央 浅井弘樹】白○猫プロジ○ェクト総合スレ3557ターン目【Shadowverse シャドウバース】 ・Android 質問スレ Part76 【アプリ質問は他で】 ・【先日レコーディングありましたよ】 道重さゆみオフィシャルブログ総合part891 【サユミンランドールでみんなに会える日を楽しみ】 ・【2015年7月10日】 Windows10 プレビュー 10166公開 ほぼ完成版 バグ修正で品質向上 ・【政治】windows10強制アップグレード問題で、日本の参議院議員が質問主意書を提出 ・【✔糞のミルフィーユ】Shadowverse まったりスレ515ターン目【シャドウバース】 ・元アイドリング外岡えりか、SOLID STARプロデュース「仁義ある宴会」に出演 その2 ・プログラミング始める=Windowsを消してUbuntuを入れる ・【ID梨】F9特定部☆1368匹【F9=鋼.兵=ID加速中=なっち=病巣院クルリ=絵スレ荒らし=豆大福=インフォガー=カワハギ=糞虫小僧=ドトールコピペ=ヨウ素=やでおじ=パズ四】【対立煽りのプロ】 ・【川本.恒平】F9特定スレ★1371【F9=鋼.兵=ID加速中=なっち=病巣院クルリ=絵スレ荒らし=豆大福=インフォガー=カワハギ=糞虫小僧=ドトールコピペ=ヨウ素=やでおじ=パズ四】【対立煽りのプロ】 ・【悲報】トロフィーを換金できるプログラム「Sony Rewards」、1年で終了する ・【Windows】Microsoft、月例更新プログラム公開 WindowsやEdgeに深刻な脆弱性【今月の更新】 ・プログラミングのお題スレ Part14 ・【✔チェック】Shadowverse まったりスレ 506ターン目【シャドウバース】 [無断転載禁止] ・【✔くこは罠🙅】Shadowverse まったりスレ 494ターン目【シャドウバース】 [無断転載禁止]©2ch.net [無断転載禁止]©3ch.net [無断転載禁止] ・【✔糞のミルフィーユ】Shadowverse まったりスレ511ターン目【シャドウバース】 [無断転載禁止] ・【プロダクト有】HPPCOIN【クラウドコンピューティング】 ・windows10へアップグレードのチェックを外してもダウンロードが勝手に始まる件 ・【N-1】プロレスリング・ノア総合 Part18【中嶋優勝】 ・【朗報】 マイクロソフトさん、 Windows 10 Proへの無償アップグレード期限を2018年3月31日まで延長してしまう ・【バーチャルYouTuber】.LIVEアイドル部アンチスレ#6297【アップランド】 ・Amazon Vine 先取りプログラム 180品目<夏のミスマッチ祭>(会員限定) ・【バイオハザード】BIOHAZARD RESISTANCE 配信者を語るスレ 【レジスタンス配信】Part.5 ・【超本格TCG】shadowverse3592ターン目【シャドゥバース】 ・【ナーフ内容発表】Shadowverseまったりスレ479【シャドウバース】 ・【思い出】マグネットマクロリンク54【ID無しスレ最終回】 ・【✔】Shadowverse まったりスレ 454ターン目【シャドウバース】 ・プログラミングのお題スレ Part19 ・【ミニゴブ戻せ】Shadowverse3465ターン目【シャドウバース】 ・【フローラルガイジ】Shadowverse2806ターン目【シャドウバース】 [無断転載禁止] ・【ID付】ももいろクローバーZ潜入捜査官12818【テレ玉 山本昇密着シリーズ】 ・【✔公認ガイジ】Shadowverse まったりスレ 445ターン目【シャドウバース】 ・Androidのホーム画面テンプレ無でも晒すスレ part54 ・Shadowverseまったりスレ 145ターン目 【シャドウバース】 ・ランニングシューズナイキ専用スレ Part.10 ・【悲報】工藤ハルちゃん ブログInstagramLINE全てストップ
16:06:41 up 5 days, 2:30, 0 users, load average: 7.21, 10.02, 11.27
in 2.1841700077057 sec
@0.088603973388672@0b7 on 121706