キー入力をスクリーンキャストする
はじめに
前回の記事「git worktree と peco」の実演(gif アニメ)にて、キー入力を表示するために [screenkey] というソフトウェアを使いました。使用するにあたり、少しコツ(バグフィックス?)が必要だったので、備忘のためここに記します。
[screenkey] のサイトより:
なお、今現在 [screenkey] は Wayland 環境では動作しないので、使用する場合は Xorg 環境で使用します。
続きを読む【Android】WorkManagerでバックグラウンド処理を行う
今回は、AndroidのWorkManager
でバックグラウンド処理を行う方法を解説します。
概要
WorkManager
を使用すると、処理をバックグラウンドで実行できます。WorkManager
を使用すると、以下のメリットがあります。
- 完了に時間がかかる処理でもアプリが止まらない。
- アプリを終了しても
WorkManager
の処理は継続する。
よって、WorkManager
は以下のような場合に使われます。
- ファイルのダウンロード/アップロード
- ログのアップロード
ライブラリを追加する
WorkManager
を使用するため、以下のようにライブラリを追加します。
dependencies { val work_version = "2.7.1" // Kotlin + coroutines implementation("androidx.work:work-runtime-ktx:$work_version") }
作業を定義する
まず、WorkManager
に処理させたい作業を定義します。Worker
を継承して、doWork
をオーバーライドします。そして、オーバーライドした doWork
の中で、WorkManager
に処理させたい作業を実行します。
class HeavyWorker( appContext: Context, workerParams: WorkerParameters ) : Worker(appContext, workerParams) { override fun doWork(): Result { // 重い処理 doHeavyWork() // 処理結果の返却 return Result.success() } }
処理の後に処理結果を返します。なお、返せる処理結果を以下の通りです。
Result.success()
: 作業成功。Result.failure()
: 作業失敗。Result.retry()
: 作業をリトライする。
WorkRequestを作成する
次に、さきほど定義した作業から WorkRequest を作成します。WorkRequest の作成方法は、以下の 2 通りあります。
val heavyWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<HeavyWorker>().build()
val heavyWorkRequest = OneTimeWorkRequest.from(HeavyWorker::class.java)
WorkRequestを登録する
最後に、WorkManager
に WorkRequest を登録します。登録されると、WorkRequest の作業がバックグラウンドで実行されます。
WorkManager .getInstance(context) .enqueue(heavyWorkRequest)
参考
git worktree と peco
はじめに
その昔、[git-worktree] を使いやすくするためのスクリプトを紹介しましたが、[peco] に対応するために少し修正してみたのでご紹介します。
前の記事: git worktree list を少しだけ使いやすく - Smile Engineering Blog
※前回と同じく、zsh 用です
続きを読むMIPSとMCPS
ソフトウェアの要件として、性能をMCPSでオーダーされたケースがありました。
前記事の「MIPSとMCPS(?)、100MIPSは100MHzで動くか?」では、 ソフトウェアのベンチマークとして、MIPS【Million Instructions Per Second 】と、MCPS【Million Cycles Per Second 】について書きましたが、MCPSというキーワードがMIPSほど浸透してないのではないか?という個人的な見解も含めた内容でした。 ケースバイケースでMIPSとMCPSを使い分けていましたが、組込みの分野で求められるソフトウェアの処理量(演算量)の要求としては、事実上MIPSではなくMCPSを意味する場合が多く、MCPSも市民権を得たのではないでしょうか。
- MIPS計算
- MCPS計算
- MCPS測定
- サイクル数測定
- ARM DWT Cycle Count Register
Date ヘッダ
はじめに
テストなんかで急に Date ヘッダ を用意しなきゃダメな場面はよくあると思います。今までは Epoch Converter からコピーペなどして使っていたんですが、ローカルで求める方法があったのでご紹介します。
続きを読む