今まで、左右にしか動かなったカーソルキーが上下方向にジェスチャー(スワイプ)することで、縦方向にも移動できるようになっています。

英語キーボードのスペースキーのジェスチャー機能(左右のみ)に続いて、日本語12キーもすばやくカーソル移動できるようになりました。
まだまだ、この先の機能改善も期待できそうです。
今まで、左右にしか動かなったカーソルキーが上下方向にジェスチャー(スワイプ)することで、縦方向にも移動できるようになっています。

英語キーボードのスペースキーのジェスチャー機能(左右のみ)に続いて、日本語12キーもすばやくカーソル移動できるようになりました。
まだまだ、この先の機能改善も期待できそうです。
なんとなくスマホイライラの原因の一つではないか、と思う。
More users like to turn off animations than you think.
予想以上にアニメーションOFFは好かれている。
Is it reasonable to assume your app's users have their developer options turned off? : androiddev
そんなあなたはOFFにしましょう。
スッキリしてサクサクします。
「開発者向けオプション(デベロッパーモード)」の有効化が必要ですが、開発者でない人も便利に利用できます。
有効化したら、その中で3つのアニメーションをOFFにするだけです。




ね、スッキリするでしょう?
どうせ待つなら滑らかアニメーションがあったほうがいいか。
数年後、ほぼバッテリーが膨らんできたり、充電の雰囲気がおかしくなりますよね。
普通に使っている限り、最初に壊れるのはバッテリー周りからではないでしょうか。
自分で交換したくなりますよね、カメラやCPUなど他は全く問題ないのですから。
ベンダーやキャリアのOSのアップデートが終了したとしても、Lineage で更新していきましょう。

LineageOS – LineageOS Android Distribution
Android 端末は、いろんなことができるパソコンレベルの能力を持ったデバイスなのですから。
4-5台交換してきましたが、以下は必須と思われます。
- 精密機器用のドライバーのセット
- プラスチックのヘラ
スマホをばらすには六角の形状のドライバーが必要。
あと、内部の固定に両面テープが使われてること多いですので、基盤など傷つけない薄いヘラが必要になります。
数枚あると、差し込んだままゆっくり剥がしていくことができます。
あと、私はこれが欲しい気はしています。
なくてもいまのところはいけてますが欲しい小道具ではあります。
新端末のローンチと同時に不必要なバッテリー交換だけでなく、リペア系の動画をアップする人や企業はたくさんいます。
手順だけでなく、自分の手先の器用さや必要工具の有無など間違いなく見て置いたほうがいいでしょう。

Battery Replacement - Android Forums at AndroidCentral.com
バッテリー交換のために、分解するとこ、しないとこをはっきり見極めておく必要があります。
私は、配線を引きちぎってしまい 非接触充電 (Qiなど) が利用できななくなったことがあります。
購入できるその端末のバッテリーを探します。
Cell Phone Replacement Batteries | Amazon.com
Amazon.co.uk: replace - Batteries / Accessories: Electronics & Photo
海外のサイトでは、安く購入できますが、基本、バッテリーの海外からの輸入は制限されている雰囲気です。
ヤフオク、メルカリ、アマゾン日本 などがいいでしょう。
大体、2000円くらいでしょうか。
初回は、道具付のセットがいいかもしれません。
動画や手順サイトをみながら、思い切って行きましょう、どっちみち捨てる運命だった端末です。
ネジ山を潰したときのしょんぼり感は格別でしたが、次の動画をヒントにゴムの代わりのセロテープで乗り切ることができました。
そんな、Nexus6 のバッテリー交換の風景です。
実際は、古い端末を活かしたとしても、いまどきのアプリの負荷に能力が耐えられず、イライラが爆発するのは、Android OS 5.x をベースとした Amazon Kindle HD のモッサリ動作を経験した方なら想像できるでしょう。
しかし、貧乏性の私たちは、「使わないが使える物」を捨てることができません。

シンプルな記事あったので。
Learn Kotlin for Android in One Day – Mayur Rokade – Medium
変数は「var」。
var username: String = "some user name"
定数は「val」。Java の final と等価。
val API_DELAY_CONSTANT: Int = 100
null で初期化するには「?」。 null を利用可能にします。
var myString: String? = null
static な定数には「companion object」。
class Animal {
companion object {
const val DEFAULT_NUM_OF_EYES = 2
}
}
animal.numOfEyes = Animal.DEFAULT_NUM_OF_EYES
遅れて初期化するには「lateinit」。
lateinit var user: User
lateinit var items: List<String>
これは、public。Int を返します。
fun getNumber(): Int {
return 1
}
private で引数を渡す場合。
private fun getStringLength(str1: String, str2: String): Int {
return str1.length + str2.length
}
static 関数。
class MyStringUtil {
companion object {
fun getOddLengthString(str: String): String? {
if (str.length % 2 == 0) return null
return str
}
}
}
var str: String = MyStringUtil.getOddLengthString("hey")
「?」を使って、null を返すことをコンパイラに伝えています。
コレクションである items に「in」で。
var items: List<String> = ArrayList<String>()
for (item in items) {
// do something with item
}
インデックスにアクセスすることもできる。
for (index in items.indices) {
// access items using index
// items.get(index)
}
Java の switch は、Kotlin では「when」。
// A cool example of when statement
fun describe(obj: Any): String? {
var res: String? = null
when (obj) {
1 -> { res = "One" } // if obj == 1
"Hello" -> res ="Greeting" // if obj == "Hello"
is Long -> "Long" // if obj is of type Long
!is String -> "Not string" // if obj is not of type String
else -> {
// execute this block of code
}
}
return res
}
Java で NPE を避ける場合。if で。
if (person != null && person.department != null) {
person.department.head = managersPool.getManager()
}
Kotlin では「?」を使って、if を省くことができる。chain可能。
person?.department?.head = managersPool.getManager()
null の場合を処理したいときは「?:」を使う。
var name = person?.name ?: throw InvalidDataException("Person cannot be null.")
「open」で継承可能。なければ, Java の final class と同じ。
open class Animal {
// This class is open and
// can be inherited
}
class Dog : Animal() { // Notice the paranthesis
// Class dog is final and
// can't be inherited
}
// Compiler throws error
class Labrador : Dog {
}
「object」を使う。
object Singleton {
var name: String = "singleton object"
fun printName() {
println(name)
}
}
// later in the code
Singleton.name
Singleton.printName()
インターフェースの継承は直感的に。
interface Named {
fun bar()
}
interface Person : Named { // Person inherits Named
fun foo()
}
class Employee() : Person {
override fun bar() {
// do something
}
override fun foo() {
// do something
}
}
関数に渡す場合は少し違う。
// A function that accepts and interface as a parameter
private fun setOnClickListener(listener: View.OnClickListener) {
// do something
}
// Passing an interface to the function
setOnClickListener(object : View.OnClickListener{
override fun onClick(view: View?) {
// do something
}
})
「is」や「!is」を使う。
if (obj is String) {
print(obj.length)
}
if (obj !is String) {
print("Not a String")
}
「as?」を使って例外を避けてキャスト可能。失敗時には null を返す。
val x: String? = y as? String
Java とほぼ同じ。
throw Exception("Hi There!")
try {
// some code
}
catch (e: SomeException) {
// handler
}
finally {
// optional finally block
}
重要な最小限の部分からきちんと学んでいくこと大事。
スクリーンショット取得の方法は、
「音量ダウン」+「電源ボタン」
ですよね。
この方法、2つの物理ボタンを同時に押すということで、音量が変化したり、狙ったタイミングで取得できないことありませんでした?
Android Pie では、「電源ボタンの長押し」からもできるようになりました。
電源ボタン長押しで、画面右側に小さなメニュー
- 電源OFF
- 再起動
- スクリーンショット

ここで「スクリーンショット」を選択でその画面が取得され、通知バーにメッセージ。

「編集」を押すと、編集画面となり、
- 画像のクロップ
- 手書き線(カラー)
- 手書きマーカー(半透明カラー)
- 一つ 前に戻る/先に進む
と取得されたスクリーンショットに対して加工できます。



他のアプリを介さずに、スクリーンショット取得後、コメントや矢印などを記入して、そのままシェアすることができるようになります。
👉 【Android11】スクショ
👉 【Android11】クイックタイルから「画面録画(スクリーンレコード)」が可能に
Android 9 Pie 使ってみた
【Android Pie】ナビゲーションバー の ホームボタン を ピル型 にする方法
【Android Pie】Google Digital Wellbeing を使う
【Android Pie】Auto-rotate (自動回転) OFF のときの挙動
【Android Pie】使いやすくなった音量設定
【Android Pie】スクリーンショット取得→編集 は「電源ボタン長押し」から
【Android Pie】「通知」設定のシンプルな考え方
👉【公式 2018-05-07】Android Pie のバージョンシェア がやっと 10%超えている件