- 投稿日:2020-07-02T21:35:50+09:00
[Android]自動スクロールで手を動かすことなく実機確認を行う
一覧など、無限スクロールが存在する機能を使用するときに、実機にかかる負担をAndroidStudioのMemory Profilerで監視をし
重箱の隅をつつく品質をチェックしているのだが、手で動かすのがだるい。なので、無限スクロール自動化をしてみた。
SampleCode
簡単にRecyclerViewのSampleコードを実装したので、こちらを使用する。
https://github.com/yamachita0109/RecyclerView実際に自動scrollしてみた
下記コマンドをコマンドラインに貼り付ければOK。
もっと細かい値を指定したい場合は、公式ドキュメントを参考にすること。$ while [ true ]; do adb shell input swipe 521 1540 492 432 done;デモ
まとめ
・RecyclerViewをスクラッチで実装したのは初めて、もっと美しく実装して、実サービスに耐えうる形にしたいなぁ。
・adbコマンドでなんでもことが発覚。
実機操作を記憶して、スクリプト化することもできるそうな。
ちょっと試してみようかな。・他にもっと便利なadbコマンドの使い方がある方は是非教えてください!!
- 投稿日:2020-07-02T18:06:35+09:00
net::ERR_CLEARTEXT_NOT_PERMITTED
- 投稿日:2020-07-02T11:28:35+09:00
【Android 9.0 Pie】ActivityやFragment以外でのstrings.xmlの呼び出し方の例
初めに
定数の管理に便利なstrings.xmlですが、ActivityやFragmentを継承していないクラスで呼び出す際の方法をメモしておきます。
実装方法
私はApplicationクラスを継承したクラスにコンテキストを生成してしまい、定数取得用の関数を作成して呼び出し側のコードを少しでも削れるようにしてみました。
Model.javapublic class Model extends Application { private static Context context; @Override public void onCreate() { super.onCreate(); context = this; } /** * 定数取得関数 * strings.xmlに定義した定数をどこからでも取得できる * @param resId R.string.resId * @return String 定数 */ public static String getConst(int resId) { return context.getResources().getString(resId); } }strings.xml<string name="chat_list_delete_button_label">DELETE</string>呼び出し側は以下のような記述で呼び出せます
Model.getConst(R.string.chat_list_delete_button_label);以上です。
どなたかの参考になれたら幸いです。
- 投稿日:2020-07-02T10:57:48+09:00
RecyclerViewで消えないScrollbarを表示する
概要
RecyclerViewで要素が多い際に、まだスクロールできることをユーザーに伝えたかったので調べた際のメモです。
Scrollbarを表示する
表示されるようにするだけなら
RecyclerView
にscrollbars
項目を指定してやれば良い。
しかしこれだけだと、時間経過でフェードアウトしてしまう。android:scrollbars="vertical" // 横向きならばhorizontalScrollbarが消えないようにする
時間経過で消えないようにするため上述の要素に加えて
fadeScrollbars
にfalse
を指定する。android:scrollbars="vertical" // 横向きならばhorizontal android:fadeScrollbars="false"
- 投稿日:2020-07-02T10:29:32+09:00
[Android]インストラメント化テストとローカルテストでコードを共有するには
はじめに
Androidプロジェクトのテストは、テストの実行環境で以下のふたつに分けられます。
ローカルテスト
module-name/src/test/java/
にあります。
マシンのJVM上で実行されるため、実行時間・リソースがより少なく済みます。
Androidフレームワークを必要に応じてモックする必要があります。インストラメント化テスト
module-name/src/androidTest/java/
にあります。
実機またはエミュレータ上で実行するため、再現性が高く実行時間・リソースがより多くかかります。
Instrumentation APIからContextなどの値を参照できます。テストソースにファイルを追加する
これらのテストでコードを共有したり、任意のファイルを参照するには、gradleでテストソースを指定します。
例えば、ローカルテスト・インストラメント化テストでコードを共有したい場合、
module-name/src/sharedTest/java/{アプリのパッケージ名}
配下にファイルを作成し、アプリモジュールのbuild.gradleでテストソースを追加します。android { ... sourceSets { androidTest java.srcDirs += "src/sharedTest/java } test { java.srcDirs += "src/sharedTest/java" } } }参考記事
https://proandroiddev.com/sharing-code-between-local-and-instrumentation-tests-c0b57ebd3200