Androidプログラミング質問スレ revision54
■ このスレッドは過去ログ倉庫に格納されています
画面はこんな感じです。 http://fast-uploader.com/transfer/7078879864621.jpg 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] ttps://www.youtube.com/watch?v=ofUJaIiaVlw&t=1191s 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換装したら ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる