Kensuke Kousaka's Blog

Notes for Developing Software, Service.

RxJavaでのExponential Backoffの実装

Exponential Backoffとは、リトライの間隔を1秒 -> 2秒 -> 4秒 -> 8秒 -> 16秒という風に増加させていくアルゴリズムである。これを用いることでクライアント及びリクエスト先サーバにおける度重なるリトライによる処理負荷を軽減できる。 RxJavaにおける実…

Autosizing TextViewの挙動を調べてみた

概要 Autosizing TextViewはAndroid 8.0(API 26, Oreo)より導入された機能で、これを用いることでTextViewのレイアウトサイズに応じて自動的にテキストサイズを調整してくれる。例えば、レイアウトサイズに収まりきらないような長いテキストを表示する必要…

ドラッグ操作による状態変化を無効にしたBottomSheetBehaviorの実装

Hide、Collapse、Expandという三つの状態を持たせることができ、シートを画面下からにゅっと出したり、逆にするっと縮めたり隠したりといったMaterial DesignでのBottom sheetsなレイアウトを簡単に実装できるのがBottomSheetBehavior。もちろんドラッグ操作…

Logcatで特定ログを除外する方法

Androidアプリの開発で動作ログを確認する際はLogcatを使うと思うが、verboseやwarningといったログレベルを各ログコードにおいて適切に設定できておらず、ログを追いかける際に冗長なログが大量に流れて辟易とした経験があるかもしれない。それぞれのログコ…

Android Serviceについてのメモ

AndroidのService周りについて、調べたことをメモする。 Android Serviceはいくつかの種類があり、呼び出し方によってその形態が変わる。 startService bindService startServiceを用いた場合、呼び出し元のActivity等が死んでも開始したServiceは影響を受け…

requestAudioFocusが失敗するケースとは

Androidでムービー・オーディオ周りを扱うことがあり,フォアグラウンドで再生時にバックグラウンドで再生されている音楽等を自動的に停止させたくてrequestAudioFocus周りを調べていた. だが,APIドキュメント等を調べても,このリクエストに失敗するのが…

既存のAndroidプロジェクトへのC/C++コードの導入(Android NDK - CMake)

本記事では,既存のAndroidプロジェクト(プログラム)にC/C++で書かれた処理コードを組み込み,JavaコードからあるデータをC/C++コードに渡して処理させ,処理結果をJavaコードで受け取ってViewに表示する方法についてまとめる.また,本記事ではndk-build…