20200702のAndroidに関する記事は5件です。

[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;

デモ

demo.gif

まとめ

・RecyclerViewをスクラッチで実装したのは初めて、もっと美しく実装して、実サービスに耐えうる形にしたいなぁ。

・adbコマンドでなんでもことが発覚。
実機操作を記憶して、スクリプト化することもできるそうな。
ちょっと試してみようかな。

・他にもっと便利なadbコマンドの使い方がある方は是非教えてください!!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

net::ERR_CLEARTEXT_NOT_PERMITTED

エラー:net::ERR_CLEARTEXT_NOT_PERMITTED

AndroidManifest.xmlに追加

・android:usesCleartextTraffic="true"

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Android 9.0 Pie】ActivityやFragment以外でのstrings.xmlの呼び出し方の例

初めに

定数の管理に便利なstrings.xmlですが、ActivityやFragmentを継承していないクラスで呼び出す際の方法をメモしておきます。

実装方法

私はApplicationクラスを継承したクラスにコンテキストを生成してしまい、定数取得用の関数を作成して呼び出し側のコードを少しでも削れるようにしてみました。

Model.java
public 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);

以上です。

どなたかの参考になれたら幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RecyclerViewで消えないScrollbarを表示する

概要

RecyclerViewで要素が多い際に、まだスクロールできることをユーザーに伝えたかったので調べた際のメモです。

Scrollbarを表示する

表示されるようにするだけならRecyclerViewscrollbars項目を指定してやれば良い。
しかしこれだけだと、時間経過でフェードアウトしてしまう。

android:scrollbars="vertical" // 横向きならばhorizontal

Scrollbarが消えないようにする

時間経過で消えないようにするため上述の要素に加えてfadeScrollbarsfalseを指定する。

android:scrollbars="vertical" // 横向きならばhorizontal
android:fadeScrollbars="false"
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む