ログ出力をクリッカブルにして該当行に素早く移動

Android Studio でのログ出力.

任意の文字列を出力する場合は,


Log.d("TEST", "テスト")

と書いておくと,

となります.

Kotlin では,


println("TEST テスト")

と書いてあげると,

となります.

以下のような文字列にすると,


println("TEST https://google.com/")

println("TEST (MainActivity.kt:100)")

と表示されて,

それぞれブラウザの該当ページや,

該当ファイルの該当行に直接クリックで遷移できるようになります.

ここで,

Exception().stackTrace[1]

を使うと, 記述した位置の該当ファイル名と行数が取得できるので,

インラインなユーテリティにします.


class LogUtils {

  companion object {

    private const val TAG : String = "TEST"

    @JvmStatic fun d(message: String) = Log.d(TAG, appendFileLine(message))
    @JvmStatic fun d(message: String, t: Throwable) = Log.d(TAG, appendFileLine(message), t)

    @Suppress("NOTHING_TO_INLINE") // ?
    private inline fun appendFileLine(message: String): String {
      val frame = Exception().stackTrace[1]
      return "$message (${frame.fileName}:${frame.lineNumber})"
    }

  }

}

あとは, 表示したいメッセージとともにお好みの場所で


LogUtils.d("テスト")

と書いておけば,

となって便利にデバッグに使えたり.


【Mac】言語設定をアプリごとに行う

気持ちが悪いですよね日本語名のディレクトリ.

macのつらい日本語ホームディレクトリを英語にする - Qiita

macのホームディレクトリの日本語表記を英語表記に変更する - Qiita

そんな方法があるのだなあ,と思いつつも,OS自体の言語設定は「English」でいいや,と思い過ごしていましたが,

使用するアプリによっては,そのアプリ内には言語の設定はなく,OSの言語設定を見ながらメニューや操作のラベルをその英語で表示する.

複雑なアプリの場合,細かい操作方法をググるとなると英語では辛くなってきた.

やっぱ日本語だよなと,OSの言語設定を「日本語」に戻す.

すると,最近 Google から登場した Backup and Sync がすでに存在する「Google Drive」ディレクトリとは別に「Google ドライブ」ディレクトリを作成してクラウド上から無駄にPC内に重複するファイル群をダウンロードし始める.

当然,前述の「ダウンロード」や「ドキュメント」などの日本語名ディレクトリも復活している.

 

アプリごとに言語設定をする

OSの言語設定は「English」にしたまま,特定のアプリだけ「日本語」設定にする.

TJ-HD Software - Language Switcher

アプリごとにOSで利用可能な言語の中から言語を設定できます.

便利です.

MBP2017-mid/Sierra にて.


Google Play Services 11.2.2 で OSSライセンス一覧 を表示する

Including Open Source Notices  |  Google APIs for Android  |  Google Developers

build.gradle に追記します.

root-level:


buildscript {
  repositories {
    //...
    maven { url "https://maven.google.com" } // or google() for Gradle 4+
  }
  dependencies {
    //...
    // Add this line:
    classpath 'com.google.gms:oss-licenses:0.9.0'
   }

app-level:


apply plugin: 'com.google.gms.oss.licenses.plugin'

compile 'com.google.android.gms:play-services-oss-licenses:11.2.2'

コードに追加する行は一行.
アクティビティが用意されています.


startActivity(new Intent(this, OssLicensesMenuActivity.class));

あれ, URLだけしか表示されないけど.

This will display a list of open source libraries that are compiled into the app, whether part of Google Play services or not. Tapping the library name will display the URL of the license.

いいのか...

Show Open Source Notices [65533155] - Visible to Public - Issue Tracker

一応, スターをつけてマークしておきますか...