Androidプログラミング質問スレ revision54

■ このスレッドは過去ログ倉庫に格納されています
2017/11/15(水) 05:24:17.80ID:F5cxE2Dc
※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 146匹目
http://mevius.2ch.net/test/read.cgi/tech/1487825717/
Eclipse統合M36【Java/C++/Ruby/Python/Scala】
http://mevius.2ch.net/test/read.cgi/tech/1503723668/
★★Java質問・相談スレッド180★★
http://mevius.2ch.net/test/read.cgi/tech/1492780397/
****オススメ関連リンク****
■ TechBoosterhttp://techbooster.org/category/android/tableofcontents/
■ Androidメモhttp://www.saturn.dti.ne.jp/npaka/android/index.html
■ 逆引きAndroid入門http://www.adakoda.com/android/
■ Androidプログラマへの道http://wiki.livedoor.jp/moonlight_aska/
■ Android Wiki*http://wikiwiki.jp/android/

****公式リファレンス****
■ Android developershttp://developer.android.com/index.html
■ ソフトウェア技術ドキュメントを勝手に翻訳http://www.techdoctranslator.com/
■ 日本Androidの会http://www.android-group.jp/
■ StackOverFlowhttp://stackoverflow.com/questions/tagged/android

****前スレ****
Androidプログラミング質問スレ revision52
http://echo.2ch.net/test/read.cgi/tech/1479305887/
Androidプログラミング質問スレ revision53
http://mevius.2ch.net/test/read.cgi/tech/1488052551/
2018/02/06(火) 17:28:15.49ID:QAcCAWIV
aideというAndroidのアプリをつかってるんですが
標準ライブラリのソースをみる方法ありますか?

スレ違いだったらすみません
2018/02/06(火) 18:45:40.72ID:A3hXz4e3
>>153
ありがとうイイネ
TODOの中身を表示させたり、削除、編集するクラスを作って
リストに入れて保持したりするんかな。わくわくするね

>>154
ありがとう
関数電卓なのは難しいけど、普通の電卓のようなのならいい練習になりそうだね
GPSに関しては実機がないから無理なんだよね
安い1万円以内のAndroid6.0ぐらいのスマホを購入するかなあ
2018/02/06(火) 20:12:52.35ID:Dezw3U9g
APIと連携したようなアプリがいいだろう
158デフォルトの名無しさん
垢版 |
2018/02/06(火) 20:55:25.01ID:EmXtyzuq
APIよりUI(フラグメントは後でいいけど)やらないと始まらんだろ。
今はGPSとかセンサー系もエミュレータでもテストできるけど、
やっぱり使ってて楽しいので実機がいい。
2018/02/06(火) 21:15:56.12ID:A3hXz4e3
やっぱりいきなり作ってみるより、解説本やネットの情報をみて
そのAPIとかUIとかのを一通り学んだほうがいいのかなあ(´・ω・`)
2018/02/06(火) 22:05:59.91ID:3Hqx2bj9
ガチなアプリ作るわけじゃないんだし両方とも作りながら試行錯誤したら良いんじゃない?
2018/02/06(火) 22:14:29.14ID:nFyDTgN+
本2冊読んでclean-arcを覚えてからコーディングに入ったけど順調
作りながら学習だとコードがめちゃくちゃになってすぐに行き詰まる
2018/02/07(水) 08:24:02.32ID:LmJig0Uf
他所で何か完成させたことあるなら本読みながらながら制作でいい
初めてなら好きなだけ本読めばいい読んでも出来るようになるとは限らないがな
2018/02/07(水) 09:04:13.80ID:81UMXrP+
どうせお勉強が目的になっていて何も完成させられないに決まっている
作りたいものが何もないのにプロミングの勉強してても意味ない
2018/02/07(水) 18:48:48.36ID:4a9Y8pkU
>>156
電卓はマジオススメやで
レイアウトの勉強になるし、応用で向きを変えたり設定で16進数電卓にするといい
(実際に向きが変わる毎に切り替わったらウザいが)
実機が無くてもこの辺りは勉強になる
特に他言語からJava(kotlinは知らんが)に来ると、byte型の扱いでイーってなるしw
2018/02/07(水) 19:50:34.66ID:bCloCP6v
作りたいものからライブラリ探してやるのが一番だと思う
今までアプリ使ったことあるならなおさら
2018/02/08(木) 07:18:27.15ID:OLINQejk
何も理解してない素人ほど勉強に電卓作らせようとするんだよな。
電卓ってのはコンパイラの勉強する人が作るものだよ。
2018/02/08(木) 07:30:43.03ID:JZIFeqBu
全部intで組めとか面白いかも
2018/02/08(木) 10:55:51.64ID:y73bjGzs
なんだかんだ言って、自分で使うようなアプリがベターだわな。

フリーだと何しているか信用できないメモ帳を自分で作るとか。
2018/02/08(木) 12:10:19.71ID:Szau1Wbi
普段使いするけど痒いとこに手が届かないアプリって割とあるしね
2018/02/08(木) 18:26:06.69ID:0K1x7qjN
普通の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");
}
自分でこうやろうとしても改行されず新しい下の方の文字列に上書きされてしまいます
2018/02/08(木) 18:38:59.67ID:ZqVmGslZ
>>自分でこうやろうとしても改行されず新しい下の方の文字列に上書き
わかってんじゃん。君がやってる事は新しい文字列で上書きしてるだけ。
だから、やらなければいけないことは文字列を連結すればいい。
StringBuilder sb = new StringBuilder();
for(int i=0;i < a.length; i++){
 sb.append(a[i] + "\n");
}
mTextView.setText(sb.toString()); // 連結した結果を表示
172デフォルトの名無しさん
垢版 |
2018/02/08(木) 19:01:25.83ID:ujiRQ0sA
>>171
TextViewには、appendというメソッドがあるから。
あと、StringBuilderはCharSequenceでもあるから、toStringは激しく余分。
2018/02/08(木) 20:46:41.35ID:zEd5VoFV
textviewの文字列の一部にダイアログを起動するリンクがあったとして、
それをespressoでクリックする方法ないですか?
2018/02/08(木) 21:47:02.41ID:0K1x7qjN
>>171
>>172
できました!ありがとうございました!
2018/02/09(金) 12:13:43.79ID:azttJ3pP
>>172
横からだが今まで必ずtoStringしてたわ
勉強になりました
2018/02/10(土) 22:21:28.39ID:cVwHfN+4
メモリ足りなくなったなどでプロセスキルされて、再起動されるときに完全に初期状態で
表示する方法はありますでしょうか??
例えば、複数のアクティビティを遷移してバックスタックが空じゃないとき、再起動されると
バックスタックも完全に復元されますよね??
これを防ぎたいのです。
ユーザビィリティが悪くなるのは分かりますが、復元するのがめんどくさいので。
2018/02/10(土) 23:03:25.82ID:bosdC93U
復元が標準でついてるのに、それを無視するスタイルで進めていくと、後々逆に面倒くさくなるぞ
負債が溜まっていく
2018/02/10(土) 23:36:58.54ID:mR8eZBzt
何を復元するのがめんどくさいわけ?
2018/02/11(日) 00:04:06.95ID:JShv+xJ2
アクティビティ間やフラグメント間でのパラメータの受けた渡しがめんどくさいんです。
SerializableまたはParcelableでBundle経由で受け渡すと、受け取り側でdesrializeされた時に
何もしないと別のオブジェクトになったりして。
逆に、オブジェクトを直接渡さず、IDだけとか渡すのも色々めんどくさいしかけを作らなきゃいけなくて。
2018/02/11(日) 00:16:41.44ID:pDMieCTP
仕組みが糞だから仕方ないね
2018/02/11(日) 00:23:11.38ID:JShv+xJ2
まじでAndroidの最大のウンコのなんですけど、この部分。
だから、システムによってプロセスキルされてメモリがぱーになったら、復元しなくていいから、
アプリを最初から起動してほしいんです(要はユーザーが最後に訪問してたアクティビテイとかは
全部復元しないで無視)。
マニュフェストのフラグ一発でできないんですかね?
2018/02/11(日) 17:36:32.47ID:h9DYoTVc
onPause辺りでシャットダウンしとけば
2018/02/11(日) 18:42:44.38ID:bqz/bUBA
アクティビティとかいう考え方が面倒
画面ごとに要素を用意して面倒くさい
2018/02/11(日) 19:16:00.31ID:GPfgcsMi
listviewのケツにボタンかなんか配置しといてそれをクリックしたら追加読み込み実行みたいなことをしたいんだけど簡単にできる方法ありますか?
2018/02/11(日) 19:33:38.99ID:YpB78CMW
簡単の範疇に入るかはともかく
BaseAdapterを継承して最後に追加するためのボタンが来るクラスを作ればいいんじゃね
2018/02/11(日) 21:44:04.29ID:A2mb83n0
それよりswipeRefresh使おう
2018/02/11(日) 22:23:50.56ID:P6oNWaLG
最後だったらswiperefreshじゃないだろう
2018/02/12(月) 10:31:07.46ID:Dq1d51GH
>>183
自分でCで作ってキルされりゃいいんじゃね
189デフォルトの名無しさん
垢版 |
2018/02/12(月) 10:49:53.56ID:L9cNQ1oo
>>184
無理してListViewに入れない方がいいよ。
ListViewの下にButtonをVisiblity.GONEで配置しておいて、listの最後を表示したらVisiblity.VISIBLEにする。
「listの最後を表示したら」については、OnScrollListnerのOnScrollで渡される引数で簡単に計算できる
(firstVisibleItem + visibleItemCount >= totalItemCount)。
2018/02/12(月) 12:13:48.77ID:2wX7b0K2
>>187
それもそうだ混乱してた
簡単ではなさそうだけどswipeRefreshもbottomからswipe upで更新とかできそうだな
2018/02/12(月) 12:52:04.81ID:gtsgi9fT
recyclerViewにして一番下にprogressbarだけのviewを配置する
2018/02/12(月) 21:07:37.03ID:jZ2wOFuS
レスありがとうございます
一番簡単そうな>>189で解決できました
2018/02/14(水) 20:54:51.43ID:Zq98TtGU
espresso test recorderでパスすべき場所が失敗したり、クリックが認識されなかったりで使い物にならん
2018/02/15(木) 17:18:26.55ID:Et/WeVhD
javaで計ってみただけなんだが
浮数の加算と除算の速度がほぼ同じで困惑してる
x86だと二十倍くらい速度差あったのに
armってそういうもん?
195デフォルトの名無しさん
垢版 |
2018/02/15(木) 18:57:31.41ID:wcELacKI
webview.draw(canvas)でキャプチャしてるんだけどwebglがキャプチャできずに真っ白になるんだけどなぜ?
どうやったらwebglのキャプチャがとれるのだろうか
196152
垢版 |
2018/02/16(金) 20:21:30.78ID:hc/oW4Ob
>>154
>>164
>>166
ありがとう。とりあえず、今日、電卓を作ることができた。
10日ほどかかったわけだが、こんな紆余曲折を経て学習していった

リモートリポジトリを作成して、複数のPCで開発を進められるといいなということで
googleドライブにリモートリポジトリを作成してgitで分散バージョン管理ができるようになった

そのあとでUIの使い方が気になって、それぞれのUIの基本的なことを勉強した
すべてを理解したわけではないが、レイアウトとウィジェット的なものがなんとなく理解できた

そのあとのディレクトリ構成が気になって、フォルダ構成を学んだ
さらにレイアウトとリソースのxmlやソースが別々になってるので
AndroidにおけるMVCパターンも概略を知りたくなって少し調べた

その後に電卓を作ろうと思ってデザインを作るのにConstraintLayoutがよさそうだと思って
レイアウトを作る方法をいろいろ調べた

んで、その後に電卓用の計算したり表示したりするクラスをことりんで作って
実装して今に至る・・・

かなり回り道したが電卓はレイアウトの仕組みを知るのにはかなり役だったかな

んで、次は何がお勧めかな?
2018/02/16(金) 20:25:15.13ID:br7rfOfj
お前のゴールはどこじゃ
ちゃんとそこに向かってんのか
ゴールなんてなくてただ何か作りたいだけならお題は自分で見つけることだ
2018/02/16(金) 20:35:58.72ID:3Bntq5A/
データバインディングとRxも学んだほうが良い
あとはやっぱり通信だな
githubクライアントとかいいんじゃないか
webapiも公開されてる
2018/02/16(金) 22:21:43.84ID:hc/oW4Ob
>>197
なんか作りたいと思うときに、あまり障壁無く作れることができるようにしたいのがゴールかな
いろいろなことを知ることができたので、着実に進んでいるような気がしている

>>198
Rxってなに?(´・ω・`)
データバインディングはいくなりハードルが高い気がするけど何とかなるかな(´・ω・`)
2018/02/16(金) 22:32:06.76ID:eSiK1MpK
Rxもデータバインディングも開発を簡単にするためのアイデアだからハードル低いよ
わしも初心者の頃はこんな酷いプラットフォームでどうやって開発するんだと頭を抱えたものだが
RxやMvvmを覚えたらスムーズに開発できるようになった
2018/02/16(金) 23:11:25.15ID:hc/oW4Ob
>>200
さすがアニキすごいっす!
これを作ることによって、Rx、データバインディング、MVVMの勉強になるぜ!って
いうアプリいうのがあったら教えてください!
2018/02/17(土) 22:09:39.65ID:QsKtGr9g
どっちもまだならdatabindingからやっとき
ハマりどころそんなないから
まずはfindViewByIdの置き換えから始めればコストも少ないよ
2018/02/17(土) 23:38:01.28ID:T35UL3Ad
GPSを使ったようなアプリもandroidらしくていいんじゃないだろうか
あとbroadcastreceiverとserviceも使ってみるべき
2018/02/20(火) 20:13:55.00ID:Qe4dLulg
Bluetooth関連のテストって実機でやってる?
エミュレータ―でも出来るのかな?
2018/02/20(火) 20:20:13.79ID:n7RUdpem
btは実機使わないと予想外の問題が出て死ぬから絶対実機でやった方がいい
なお実機で使ってもよくわからないまま死ぬから使わないほうがいい
2018/02/21(水) 11:56:58.80ID:VoejUmIV
エミュレータでどうやって無線を飛ばすんだ
その前にアダプタやGATTの取得とか確認出来んし
最初から実機必須
2018/02/21(水) 20:23:23.93ID:wn5chE4G
>>206
フライトシミュレータは空を飛んでるとか思ってそう w
2018/02/22(木) 12:45:48.41ID:/V3RJMM/
どんなコードだろうと最後には必ず実機でテストしてからリリースしてください。
209デフォルトの名無しさん
垢版 |
2018/02/22(木) 12:58:34.20ID:4zJSTFdM
空飛んで
210デフォルトの名無しさん
垢版 |
2018/02/22(木) 19:26:49.66ID:IqXTtVB1
BluetoothProfile.ServiceListener#onServiceConnectedは
端末本体のBluetoothを有効にしただけで実行されますか?
自作アプリのユーザーからBluetoothクライアント接続してないのに
機能が有効になったと言われて調査してますが全然分かりません…。
2018/02/22(木) 20:47:38.90ID:l0iN7drI
僕飛んでるよ
2018/02/22(木) 20:55:51.02ID:IqXTtVB1
Bluetoothクライアントの接続状態関係なしに
BluetoothのON/OFFだけでも実行されてる事を確認しました。
BluetoothProfile#getConnectedDevicesで接続を見ないといけないんですね。
2018/02/22(木) 23:56:28.12ID:JiMKviS7
SDカードにファイルを保存したいんですが、
ロリポ以降の端末ではSAF経由じゃないと書けないんでしょうか?
Android/data/<パッケージ名>/files以下じゃなくて
任意のパスに書きたいです。
4.3までは何も考えずに(内部ストレージと同様の方法で)できました。
2018/02/23(金) 21:19:47.21ID:KHGy7D2o
ヤフーメールのアプリとかはどうやってメールの着信を監視してるのでしょうか
バックグラウンドで定期的に問い合わせを行っているのでしょうか
その場合なぜシステムからキルされないのですか?
2018/02/24(土) 13:40:38.45ID:8E9VsG4D
プッシュ通知
216デフォルトの名無しさん
垢版 |
2018/02/25(日) 09:15:52.57ID:tJhlU6NL
サードパーティーが完全に自前でプッシュ通知を実現するには、
結局のところ、サービス/スケジューラを使うしか手がないでしょ?
GCM/FCM使う場合には、リスナー登録するだけで済む話だけど。
2018/02/25(日) 09:59:52.76ID:OfhVx911
gaurun使えばプッシュ通知のサーバー側は構築しやすいで
https://qiita.com/kpkpkp/items/0d000adc153e6db47bfc
2018/02/25(日) 16:25:50.85ID:83KLa8H9
Paging LibraryはloadAfterとかloadBeforeはバックグラウンドスレッドで呼ばれるけど、
なんでloadInitialはPagedList作るスレッドで呼ばれるの?Googleの技術者死ねよ。
2018/02/26(月) 10:53:53.11ID:QddjVswz
firebase使うとプッシュ通知もできたよね
ただ開発者サービス使うと古いバージョン使ってるユーザーとか
更新してもバグあったりしてアプリのせいにされたことあるからあんまり使いたくないんだが
最近は大丈夫なん?
2018/02/26(月) 16:02:31.09ID:+9GmIzE5
ボタンを押した時にThread.Sleep(1000)を実行するとLogcatに、
Skipped 60 frames! The application may be doing too much work on its main thread.
って出るけども、これはスレッドを止めてるから出る物と考えて良いのでしょうか?
2018/02/26(月) 16:22:26.20ID:PF9uP7eW
メインスレッド(UIスレッド)が終わってるのにUIのコードを実行しようとしてるから、じゃなかったっけ
2018/02/27(火) 21:01:45.10ID:4kuLfTmR
リリースビルドに失敗したときだけproguardの設定を追加してきたんですが、
リリースビルドに成功していたとしても、各ライブラリのgithubのページに書いてある
proguardの設定は全て記述するべきなんでしょうか
2018/02/28(水) 15:51:36.46ID:JjBYj4fu
しといた方がいい
2018/03/01(木) 20:14:51.73ID:tkROAPvd
そんな運用初めてきいた。なんのために外すんだ?
2018/03/01(木) 20:41:55.86ID:0BbSrpdr
怠惰
2018/03/02(金) 09:34:04.87ID:zHURLh1v
プログラムというかAndroidの印刷APIに対応したプリンターってどんなのがある?
Androidとプリンターの関係が現在どうなってるのかいまいちわからないけど
2018/03/02(金) 13:43:48.66ID:wPkBJN8S
http://blitzgate.co.jp/blog/621/

とりあえずドライバがPlayストアにある機種なら出来そうだな
2018/03/02(金) 17:06:09.09ID:T7lPPmU/
これをMZK-EX300Dに繋いだらAndroidからの印刷できますか?
2018/03/02(金) 17:08:18.43ID:T7lPPmU/
ああすいません、間違いです
2018/03/03(土) 07:51:25.59ID:ETC7iiht
みんなkotlin使うの?
kotlinも
Flutter-Dart言語も
いかないでJava/dalvikに留まるのが一番いいような気がする
2018/03/03(土) 08:01:58.79ID:u9zLYIy3
kotlin使ってるけど、その理由は使ってみたかったから以外には特にないな
javaに留まっても全然良いと思う
2018/03/03(土) 08:36:11.93ID:fK4aCFyW
まだ触ってもないけど、いずれは移行すると思う。
233デフォルトの名無しさん
垢版 |
2018/03/03(土) 10:33:56.95ID:wyHrp6Kl
FlutterってNativeScriptに近い感じか?
ReactNativeはAndroidが弱いし、
Xamarinはネイティブ無視しすぎて、終わっとるし。
2018/03/03(土) 11:03:23.87ID:LSyqUS+v
クロスプラットフォームは総じて糞と相場が決まっている
2018/03/03(土) 11:22:13.54ID:v4IfOYX5
世間の人気アプリは大概両機種でリリースされておるが、
あれってどうやってんのかね?
やはりunityしかないのか
いやだなぁ、覚えたくない
2018/03/03(土) 11:37:15.27ID:LSyqUS+v
まともなアプリは全てそれぞれネイティブで作っている
ゲームに関してはUnityで共通化できる
2018/03/03(土) 13:49:50.94ID:L5H5D1W/
>>234
armでもintelでも動くandroidのこと言ってるの?
238デフォルトの名無しさん
垢版 |
2018/03/03(土) 15:33:22.32ID:7mzQHc5F
Xamarin程の糞はない
2018/03/04(日) 20:05:13.70ID:qlRk9bM0
>>237
この場合のクロスプラットホームっていうのはmacとwindows、はたまたlinuxのことじゃないかと
2018/03/04(日) 20:28:35.57ID:9bUhlbFW
intel androidは糞だろう。中でarmエミュレートしないと動かないことも多いのだから。
241デフォルトの名無しさん
垢版 |
2018/03/05(月) 10:03:13.04ID:qTf9YbOJ
それってarmネイティブのプログラムってだけのことでは?
だったら動かすためにはそうせざるを得ないんだから仕方ないよね。
2018/03/07(水) 00:56:52.09ID:TgI6DfYx
このスレ的にクロスプラットフォームは、
スマホのことじゃないの?
2018/03/07(水) 01:06:53.83ID:TFWDKoFN
アプリそのものじゃなくて共有する開発環境のことでしょ
2018/03/07(水) 01:34:23.28ID:MzP8rhu8
更新できないAndroidスマホも壮大に放置なgoogle。結局サポートとか何も考えてないんだよな。
文句言われるのはアプリ開発者側。
2018/03/07(水) 09:12:57.30ID:rFmUUH3l
今はもうAndroid5.0以上で問題ないだろ
2018/03/09(金) 11:34:04.46ID:FEF9WikR
CPUの場合はマルチアーキテクチャ
2018/03/09(金) 11:59:47.02ID:kQASXVLd
5.1以上でいいよ
2018/03/09(金) 15:44:08.08ID:XwDpFLle
自分のZenfone3は、購入時はAndroid6.0だったのに、
今じゃ自動アップデートでAndroid8.0で動いているからなぁ。
個人的にはDozeとかめんどいから、Android6.0で良かったんだが。
2018/03/09(金) 16:30:32.96ID:ciB3VK7a
初スマホになるので今まで避けてたスマホ開発に参戦しようと思います
2Dから軽い3Dゲームや便利なユーティリティを開発したいです
android実機開発においてやっぱスペックは高いほうがいいですか?
antutu v6の旧スコアで45000, 80000, 150000
のどれかのモデルを購入予定で80000のnova lite2が激安なので食指が伸びてますが
多少高くても実機スペックはケチらないほうがいいですかね?
2018/03/09(金) 16:33:20.65ID:ciB3VK7a
すみません
nova lite2の80000(正確には90000にちかい)はv7でした
v6で65000程度のようです
2018/03/09(金) 17:10:25.96ID:ijnUjDqJ
ハイエンドの端末しかサポートしないというなら実機も合わせた方がいいけど幅広いユーザーに遊んでほしいというならミドルレンジ機での確認は必要じゃないかな?!
2018/03/09(金) 20:21:33.05ID:ciB3VK7a
なるほど
デバッグや開発時のストレスを考慮しましたが
遅いのにあわせるというのは良い物の見方ですね
とりあえず今回は1台目なのでパフォ重視でミドルハイのやつを買ってみて
慣れてきたころに手頃なミドルロウの端末も買おうと思います
253デフォルトの名無しさん
垢版 |
2018/03/09(金) 20:30:07.76ID:M6e78+XV
nova lite 2なんかは安いけど、2年くらい前のハイエンドくらいの性能あるしな。
2018/03/10(土) 22:55:30.76ID:R9ykMPa9
開発向けのリファレンス機としてはNexus5X/6Pを勧めるけど
もう次のOSバージョンに対応しないからなあ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況