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/06/17(日) 23:07:53.12ID:8S1deCpp
accessbilityserviceのkeyeventからハードキーの操作を検知しているのですが、画面オフだと検知されません。
画面オフでも検知する方法はあるでしょうか?
参考になるサイトなどあれば教えてもらえると助かります。よろしくお願いします。
2018/06/18(月) 15:51:06.25ID:GOHTB3SK
画面オフでonStopに入るから検知は無理だと思う
BroadcastReceiverでハードキーは検知できる
2018/06/19(火) 09:44:44.03ID:DKE+HUB7
runnable intentserviceって何が違うのでしょうか?
どちらも非同期で、送った順番に処理していくだけに見えるのですが、実際はどうなのでしょう?
https://qiita.com/KeithYokoma/items/4e6e9bd4e44aab63424d
2018/06/19(火) 09:56:05.96ID:79Fiix4+
IntentServiceはAndroid特有でServiceのライフサイクルで動くよ
2018/06/19(火) 11:06:06.70ID:DKE+HUB7
>>701
ありがとうございます。
ざっくりで言うと、こんな感じでしょうか?

Runable:Java本来の非同期処理
IntentService:Android用に最適化して作られた非同期処理
2018/06/19(火) 12:02:52.58ID:dbWqq3sV
非同期処理とサービスは違うような…
2018/06/19(火) 12:39:35.93ID:r06HGeNr
うん、違うな
Runnableについても、それがRunnableだからといって勝手に非同期処理になる訳じゃない
2018/06/19(火) 12:46:36.37ID:kKUdVF/B
非同期処理ならexecuterService使ったら?
名前がややこしいけどこれAndroidじゃなくてjavaね
2018/06/19(火) 12:48:02.02ID:kKUdVF/B
やりたいことが何か知らんが>>700の記事にだいたい書いてあるじゃん
ちょっと古いが
2018/06/19(火) 15:30:16.61ID:DKE+HUB7
やりたいことはデータを受け取ったら順次加工してファイル保存です。
カメラで例えると、撮影して、画像を処理して、動画ファイル保存みたいな感じです。
この場合の画像処理以降を非同期でやりたいなと。
2018/06/19(火) 16:06:50.06ID:DKE+HUB7
現状は撮影していると稀に画像が飛んで保存されるので、非同期にすれば改善されるのかなと。
2018/06/19(火) 16:13:55.55ID:jB3FcKjo
FusedLocationProviderApiがdeprecatedになってFusedLocationProviderClientを使うように推奨されてるけど
開発者サービスが古いとFusedLocationProviderClientを使うとクラッシュするらしいいが
古いままの端末のためにこの分岐をtry/catchでやるのはあんまりよろしい書き方じゃない?
2018/06/19(火) 20:57:39.44ID:atnFQNgZ
非同期処理は全部RxJavaでやったらいい
2018/06/20(水) 10:31:38.16ID:MfDjZ68z
RxJavaって使ってる人いるの?ってくらい情報が少ないな
2018/06/20(水) 12:03:08.34ID:Ts+Rw46r
確かにメリットはあるけど言うほど必須ではない
2018/06/20(水) 12:16:53.84ID:VGUBMEBl
Androidの非同期処理はAsyncTaskかServiceでやる
スレッドを分けるだけだとライフサイクル上破棄されて事後処理が行えないことがある
2018/06/20(水) 13:06:07.96ID:7RFFPjeU
これからはWorkManager
2018/06/20(水) 16:55:29.77ID:MfDjZ68z
WorkManagerってAPI14以上で使えるってことは、
色んな機能をラップしてまとめた物なの?
2018/06/23(土) 01:16:14.70ID:KW404gFi
FirebaseのJobDispatcherとは何か違うのかと思って調べたら、大体同じ感じなのね
にしても、バージョンが断片化してるのに機能がどんどん変わっていって、ほとんどの機能がラッパーありきになってるのどうにかならんかね
2018/06/23(土) 07:31:00.44ID:j6x5zCmd
レビューで広告があるのが残念とか言う奴何なの?
なんでボランティアで作らないといけないんだよアホか
2018/06/23(土) 07:51:13.46ID:egL20+vf
気持ちは分かるが、気にしすぎ
2018/06/23(土) 07:52:29.12ID:WO6Wf4SP
そこが今の日本人のヤバイところだよ
なんでか無料が当たり前みたいに考えてる価値あると認めても金を払わない
2018/06/24(日) 00:12:56.21ID:NkRPOsE2
広告無し有料版きぼんってことだろ作ればいいじゃない
2018/06/26(火) 00:46:08.74ID:9zxcVTrI
全く金にならないけどスマホアプリ作るっているのが一番楽しい
2018/06/27(水) 15:00:38.30ID:kZGjx8UI
Androidで関数のsynchronizedって使えますか?
使ってみると順次処理になることは少なく、
デッドロックばかりでスレッドが飛ぶのですが、
自分の書き方が悪いのでしょうか?
2018/06/27(水) 15:31:08.45ID:b0s9+6fe
デッドロックするならたぶん>>722か悪い
javaのsynchronizedとして使ってないのでは?
2018/06/27(水) 16:30:48.91ID:kZGjx8UI
>>723
ありがとうございます。
new Thread(new Runnable() を多用しているので、
private synchronized void kansu()で強引に使ってみただけなんです。
書き方と言うか、使い方やネストを見直してみます。
2018/06/27(水) 16:54:28.14ID:VcfhxjvV
privateメソッドでメソッドスコープの同期って粒度でかくね
2018/06/27(水) 19:04:39.51ID:b0s9+6fe
>>724
それならexecutorServiceにRunnableの実行を任せたほうがスレッド数とかcallableで返り値取得とかできていいぞ
2018/06/27(水) 20:32:56.17ID:6YqD/Q1A
executorServiceって最近は本でも見ないけども、
意外と有効なのね。
2018/06/28(木) 10:57:58.38ID:tMTnxUV1
こんな感じで共通の関数を使い、
値を加工しながら渡して行く場合、
どんな非同期処理が有効なんでしょうか?

https://ideone.com/CaSrJ3
2018/06/28(木) 12:04:37.63ID:tMTnxUV1
>>726
// new Thread(new Runnable() {
final ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(new Runnable() {

Thread()をExecuteService()にしてみましたが、
デッドロックの発生頻度が上がってしまいました・・・。
2018/06/28(木) 12:09:03.47ID:M7t0D3p6
>>729
ExecutorServiceをRunnableとThreadで包んであるのは何か理由ある?
newSingleThreadというメソッド名が示す通り、勝手にワーカーThreadは用意してくれるので包む必要がない
2018/06/28(木) 12:11:45.20ID:M7t0D3p6
ああすまん、コメントアウトしてたのか
ロックの扱い方が悪いんだろうけど
これについてはソースコードがないとなかなかわからない
2018/06/28(木) 12:24:57.21ID:tMTnxUV1
>>730
ありがとうございます、ざっくりしたソースは>>728です。
必要なスレッド数を確保する為(ソースで言うと偶数と奇数なので2つ)に、
ScheduledExecutorServiceを使用してみましたが、
あまり変わりませんでした。

final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(2);
executorService.submit(new Runnable() {
2018/06/28(木) 13:24:50.72ID:fREB9Kzm
rxjavaでzipで待てばいいだけじゃねえの
2018/06/28(木) 14:46:53.25ID:fB7+LtVt
脳にダメージが来るコードだなおい
2018/06/28(木) 15:45:10.73ID:M7t0D3p6
デッドロックが起きたことを示す資料はあるか?
糞パフォーマンス実装は無視するとして
問題はハンドラーの無限ループであるように見える
2018/06/28(木) 15:45:20.40ID:tMTnxUV1
>>733
https://qiita.com/disc99/items/1b2e44a1105008ec3ac9#zip
https://qiita.com/toastkidjp/items/581e89559f05952fbdb6

こんな感じなのでしょうか?
最初から作るのならRxJavaで作るべきだったのかもしれませんが、
後からRxJavaに変更すると、ほとんど作り直しになりそうなので、悩んでます。
発生頻度は24時間連続で動かして1〜2回程度なので、ちょっとした改善で直らないかなと。

>>734
なんとなくおかしいのはわかるのですが、
どのように書いたらダメージが来なくなるのでしょうか?
2018/06/28(木) 15:48:45.03ID:tMTnxUV1
>>735
ファイルに保存する時にSystem.nanoTime()で保存時間を見ているのですが、
20,40,60,80となるところが、
20,40,80といった具合に、稀に時間が飛んでいます。
2018/06/28(木) 22:33:26.09ID:N51lzWWT
https://ideone.com/p5nxqj

無理矢理書くならこうか?
駄目だ読みづれえ
2018/06/28(木) 23:58:46.46ID:M7t0D3p6
GuavaのconcurrentパッケージかRxJava使ったほうが楽だぞ
2018/06/29(金) 10:03:52.70ID:OTypfvcs
>>738
kansuにimplementsが出来たり、
共通でExecuteServiceが使えるのですね!
おもいっきり目から鱗が出ます!ありがとうございます。
2018/06/29(金) 14:38:34.69ID:6d89hshU
rxjavaでやらないと失格
2018/06/29(金) 16:58:16.00ID:Y/KYJ7Ik
初心者スレから移ってきました

AndroidStudioをSandybridgeマシンに初めて入れてみたのですが、仮想マシン起動しようとすると、Intel HAXM is required to run this AVDとエラーが出て仮想マシンが立ち上がりません
ぐぐると仮想化VT技術がBIOSで切られてる可能性があるとあったのでVirtualCheckerというソフトで確認したのですが、SandrbridgeでサポートされていないVT-D以外すべてEnableになっていました

これはSandyおじさんはAndroidStudioは使えない仕様なのでしょうか?
2018/06/29(金) 17:35:03.38ID:kuaUShSe
俺もSandyBridgeおじさんだけど普通に使えるよ
2018/06/29(金) 17:45:01.79ID:3dasnpv5
そのエラーメッセージでググると
VirtualCheckerでも問題無しだった場合に〜っていうのがあるでしょ?
試して見た?
2018/06/29(金) 17:48:15.96ID:Y/KYJ7Ik
>>743
即レスありがとうございます
VTCheckerかけるとSandyで使えるVT技術は全部Enableにしてますし、vmwareとかも問題なく使えてます
http://imgur.com/NcRb1Bz.jpg

このエラーはどうすれば回避できるのでしょうか?
http://imgur.com/MV5DllP.jpg
他のamd系の仮想マシンも見たのですが全てでこの警告が出てます

CPUは2600k使ってます
2018/06/29(金) 17:51:40.32ID:Y/KYJ7Ik
>>744
はい、削除して入れ直しってあったので試しましたが削除もできないです
2018/06/29(金) 18:26:54.88ID:pEnsgRYM
>>746
これと同じかな?
https://stackoverflow.com/questions/36702300/your-cpu-does-not-support-nx/36885582#36885582
2018/06/29(金) 19:22:29.94ID:TUwYY0CR
Sandyは無理
2018/06/29(金) 21:15:57.95ID:u3XlcYjt
まあ最悪実機でデバッグするしかないだろうね
750743
垢版 |
2018/06/30(土) 00:13:31.25ID:0y3jiOf+
>>745
今帰宅したからVTChecker使ってみたけど右下のやつもEnabledになってるわ
因みにCPUは2500
2018/06/30(土) 01:44:55.74ID:3bxaslq1
>>747
>>750
ビンゴですありがとうございました
2018/07/02(月) 16:27:31.00ID:bnZISJWm
AndroidStudioでdownloadしたファイルや展開中のファイルだけ指定したフォルダーで実行させるセッティングなんてありませんか?

いつもはTempフォルダーを6G割り当ててるRAMDISKにしてるのですが、AndroidStudioで仮想マシン作る時やコンパニオンかけて足りないlibrary落としてくる時にRAMDISKでは足らず、
tempフォルダーをCドライブに戻して再起動かけないといけないので困ってます。
2018/07/02(月) 17:54:06.99ID:vretJazC
文字列を管理するstrings.xmlってあるけども、
これを使用するメリットって多言語対応する時に便利ってくらいでしょうか?
速度とかはjavaで直接書いた方が早いとかあります?
2018/07/02(月) 18:34:37.97ID:GTvDCPZS
Androidstudio(mac)で新規でプロジェクト作ったら、それだけでエラーになるのはなんだ?と思ったら、どうもかスペルスキーが悪さしてるみたいで、かスペルスキー止めたらエラーにならなくなった…コノヤロ…
2018/07/02(月) 20:22:24.80ID:dwyacGBa
>>753
まんま文字列リソースやけん、他言語対応するために使うものったい。
2018/07/02(月) 20:24:53.73ID:/r4lYb9j
たまに速度気にするやついるけど今どきのAndroidなら
余程のことがない限り人間が認識できるパフォーマンス差は出ない
2018/07/02(月) 21:20:30.39ID:5P2Dd25j
ユーザーが見聞きするテキストはリソースで管理
2018/07/03(火) 15:05:53.20ID:k8WNCQ/C
アンドロイドアプリの開発ツールでは何がおすすめですか?
2018/07/03(火) 15:23:14.88ID:OcHv0iTk
Xamarin程の糞はない
2018/07/03(火) 15:37:24.32ID:surRZ8ao
ここで聞くレベルなら、AndroidStudio一択じゃね
基本知らずに他の統合環境使っても情報少ないし
2018/07/03(火) 15:57:13.65ID:k8WNCQ/C
javaとかはeclipse使ってたのですがAndroidStudioは重くて
2018/07/03(火) 16:17:34.08ID:SRscb2Qv
SSDにしてみ
めちゃくちゃ早くなるよ
2018/07/03(火) 16:54:22.06ID:B52/J6xq
たまにeclipse使いたいおじさん湧くけどAndroidStudio一択だぞ
2018/07/03(火) 19:06:00.56ID:QveK0Kmy
AndroidStudioが重いって、どれだけ低スペPCを使ってるんだろう?
765デフォルトの名無しさん
垢版 |
2018/07/03(火) 20:05:31.94ID:fZyKyLxj
いや起動が重いよ
起動しちゃえばそんなでもないが
2018/07/03(火) 20:17:21.46ID:ymjF7T0g
それぞれ環境は違う
無意味だ
2018/07/03(火) 20:25:42.97ID:YPsEEKGO
>>765
Javaアプリはしゃーない
2018/07/03(火) 20:46:28.31ID:tkqiimFj
環境も違うけど感覚の違いも大きい
769デフォルトの名無しさん
垢版 |
2018/07/04(水) 06:39:32.65ID:deFmQ17L
起動を速くしたいなら、SSD。
ビルドを速くしたいなら、CPU(クロックよりコア数)とメモリ。
2018/07/04(水) 09:03:53.15ID:1kYT8wTj
メモリは16GBあったほうがいいな
エミュがメモリ食いすぎる
2018/07/04(水) 16:20:33.21ID:PJj9ZCzu
16GBなんだけどフリーズが止まらない
2018/07/04(水) 20:01:09.49ID:TK2BEKkk
> フリーズが止まらない
止まらないならフリーズしてないじゃん
よかったな
2018/07/04(水) 20:07:15.94ID:oHQu7jEJ
16GBでフリーズって必要ないスワップでもしてんじゃないの
2018/07/04(水) 20:29:35.65ID:gFsiIKeB
止まらないフリーズ
走らないランナウェイ
775デフォルトの名無しさん
垢版 |
2018/07/04(水) 20:33:59.15ID:7MpiYGhD
Write once, Bug anywhere.
2018/07/04(水) 21:18:03.83ID:vgNKiHB/
まさかペロペロキャ…?!
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Android_P_Easter_Egg.jpg/800px-Android_P_Easter_Egg.jpg
777デフォルトの名無しさん
垢版 |
2018/07/04(水) 21:48:44.12ID:gFgZc5FG
DPA
2018/07/05(木) 11:53:11.10ID:9a0iPtZD
警告アラート
779デフォルトの名無しさん
垢版 |
2018/07/05(木) 20:45:29.77ID:DCgG1o0B
Android 8.0のユーザーから2回目以降の動作で通知が来ると言われてるんだが
何で最初のBroadcastReceiverの通知が受け取れないのか分かる人いる?
もしかしてDozeとか絡んでる?Android 6.0、7.0の時はこんな頻繁に発生しなかった
2018/07/05(木) 21:05:59.85ID:XbVuomuP
権限関係がどんどん厳しくなってるからなー
2018/07/05(木) 22:16:31.62ID:ouU8kf/U
エミュでこういうエラー出たんですけど意味わかりますか? あまり情報出てこない
glTexImage2D: got err pre
右下にポップで出て特に停止もせず動くのは動くんですけど
2018/07/05(木) 22:30:44.61ID:xpEmfw4x
ずっとJavaで作りたいんだが…
なんとかならんのか!!
2018/07/05(木) 22:50:03.29ID:zhHpKoz0
ASでkotlin変換するとどんなアプリも100%動作できるレベルに変換できるの?
2018/07/06(金) 12:18:53.26ID:1adhkv8O
Android Studio3.1は動作が不安定だから使わないがいいって言われてたけど
もうそろそろ更新して最新使っても大丈夫でしょうか?
2018/07/06(金) 12:39:38.67ID:gYTWeILw
Linearlayoutの背景にvector drawableの画像をタイル状に敷き詰めたいのですがどうすればいいですか?
drawableフォルダにdrawableリソースファイルを作成し
layerをルートタグとしてitemタグ→bitmapタグを作成
bitmapタグにsrcとしてvector drawableの画像を指定し、tile属性にrepeatを指定
最後にそのリソースをLinearlayoutの背景に指定すれば良いかと思ったのですが、実行すると背景が何も表示されません
bitmapタグの代わりにshapeタグ→solidタグで背景色を指定したリソースに差し替えると背景色がちゃんと変わる事は確認しています

bitmapタグの使い方がおかしいのでしょうか?
どなたかわかる方教えてください
よろしくお願いします
2018/07/06(金) 13:22:46.37ID:o6WrzJIT
https://qiita.com/konifar/items/bf581b8f23dea7b30f85
これじゃ?
787デフォルトの名無しさん
垢版 |
2018/07/06(金) 16:04:21.31ID:vovvZbzd
GPSコマンドのスピードから移動距離って出せますか?。
その時の精度はヒュベニイの方法より上ですか?。
2018/07/06(金) 16:32:57.90ID:zvJYjc+f
今年に入ってツール系アプリを
個人で作った方いませんか?
DL数とかどんな感じですか?
稼げてますか?
789デフォルトの名無しさん
垢版 |
2018/07/06(金) 17:09:37.40ID:qtqoxO2d
神ゲー
https://goo.gl/U5BA1Y
2018/07/06(金) 17:39:42.30ID:gYTWeILw
>>786
ありがとうございます
帰宅後に実装して確認します
2018/07/06(金) 19:42:09.55ID:sLBKa11H
>>784
不安定?そかな?自分はなんともないけどな
2018/07/06(金) 19:44:41.88ID:gLP4VBNq
android開発では、javaとkotolinとどっちがお勧め?
2018/07/07(土) 10:44:47.56ID:pSI+wWiJ
アセンブラ
2018/07/07(土) 10:58:01.52ID:a1KBV+YR
新規開発はもうKotlin一択
2018/07/07(土) 13:20:09.81ID:VDdqepD2
全然プログラムの話じゃないんだが、
simなし泥端末が欲しいんだけど、何がいいと思う?
俺のなかでは
・ただの泥ダブ
・格安端末
・エジソンに泥を容れる
の三卓かな?と思うのだけど
796デフォルトの名無しさん
垢版 |
2018/07/07(土) 13:23:29.90ID:VDdqepD2
新規開発ならコティンだろ。
つかJavaで書いても自動でコティンにしてくれるから、
Java勉強して変換後と比較するのが近道だろ。

コティンで書こうとJavaを知らなきゃAPI一つ満足にかけないだろうし
797デフォルトの名無しさん
垢版 |
2018/07/07(土) 13:26:18.10ID:VDdqepD2
それにコティンは普及しないと思う。
APIセット全部を書き換えないとオラクルから逃げられない。
2018/07/07(土) 13:32:20.46ID:xu0tQv98
>>795
Nexus6p
Pixel2
Xperia XZ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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