サポートが切れた Pixel に Android 10 相当の Lineage OS 17 を

サポート切れです、Pixel。

👉 Pixel スマートフォンと Nexus デバイスで Android アップデートが提供されるタイミング - Pixel Phone ヘルプ 

アンオフィシャルだが、入れてみました、どうせ入れる。

👉 [LineageOS 17] Download LineageOS 17 for Supported Devices 

手順は、おおまかに以下の流れ。

1. BootLoader アンロック
2. TWRP をリカバリ領域にインストール
3. すべてのパーティションをワイプ
4. LineageOS をインストール
5. リカバリモードでリブート
6. GApps をインストール
7. リブート

👉 [LineageOS 17] Download LineageOS 17 for Pixel (Android 10) 

で、インストールできて問題なく稼働しているように見えるが、いろいろあるだろうよアンオフィシャル。

オフィシャル版公開時に向けて忘備録。

ブラウザ、ギャラリー、カメラ、ファイル、時計などのアプリはオリジナル版が同梱されているので、Android OS標準のGoogle産をインストールすると重複する。いくつか無効化した。

twrp-pixel-installer-sailfish-3.3.1-0.zip がアップされたら それを適用してみるべし。

👉 Download TWRP for sailfish 

Long story short, TWRP support for Android 10 is going to take a while.
(要するに、Android 10のTWRPサポートにはしばらく時間がかかります。)
とのこと。

👉 TWRP and Android 10 

リカバリ領域に上書きできなくて、一時的に boot して zip からインストールする。

$ fastboot boot path/to/twrp.img

fastboot flash recovery で上書き出来たようにみえても暗号化パスワードが通らず、ファイル群は暗号化されたまま。再度上書きできない → Factoryイメージに戻さないとかも。

👉 TWRP for Google Pixel
👉 vendor partition does not exists : LineageOS 

OEMアンロックは、開発者オプションのスイッチボタン押した後、

$ fastboot flashing unlock

ロックは逆。

👉 Flashing Devices  |  Android Open Source Project 

いろいろあるけど、TWRPの進捗を中心に気にしておこうかな。


👉 LineageOS – LineageOS Android Distribution 

動画に収めたかったけど、すんなりいかなかった。

👉 Android標準リカバリ「Android Recovery」を使う方法 
👉 Android Q で 画面録画機能は利用できるのか。Can we use Screen Recording on Android Q stable release? 


関連ワード:  AndroidLineageOSツール評判


Flipper で SQLite テーブルを直接見る

Stetho の Facebook が作成した Android / iOS どちらも使えるデバッグツールです。

👉 Open-sourcing Flipper: a new extensible debugging tool - Facebook Engineering 

👉 Flipper · Extensible mobile app debugging 

👉 facebook/flipper: A desktop debugging platform for mobile developers. 

We wanted to create a platform that gives us all the flexibility we need to build more advanced features and support for iOS. One of Flipper's core concepts is its extensibility using plugins. Plugins are written in React and we provide a set of ready-to-use UI components that allow developers to build great plugin UIs with a few lines of code.

iOSのより高度な機能とサポートを構築するために必要なすべての柔軟性を提供するプラットフォームを作成したかったのです。 Flipperのコアコンセプトの1つは、プラグインを使用した拡張性です。プラグインはReactで記述されており、開発者が数行のコードで優れたプラグインUIを構築できる、すぐに使用できるUIコンポーネントのセットを提供します。

👉 Stetho Guidance · Flipper 

dependencies、Application 内に記述しながら、セットアップ。


<activity android:name="com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity"
        android:exported="true"/>


repositories {
  jcenter()
}

dependencies {
  debugImplementation 'com.facebook.flipper:flipper:0.26.0'
  debugImplementation 'com.facebook.soloader:soloader:0.5.1'
  releaseImplementation 'com.facebook.flipper:flipper-noop:0.26.0'
}


public class MyApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, false);

    if (BuildConfig.DEBUG && FlipperUtils.shouldEnableFlipper(this)) {
      final FlipperClient client = AndroidFlipperClient.getInstance(this);
      client.addPlugin(new InspectorFlipperPlugin(this, DescriptorMapping.withDefaults()));
      client.start();
    }
  }
}

👉 Getting Started · Flipper 

ここでは Database プラグインを追加します。


client.addPlugin(new DatabasesFlipperPlugin(context));

👉 Databases Plugin Setup · Flipper 

あとは、PC上のデバッグクライアントを開くと直感的に参照できるようになります。

👉 android/architecture-samples at dagger-android 

使いやすいです。動作も軽快です。


res を複数作って機能・画面別にディレクトリ分けすると分かりやすい

👉 Split layouts into subfolders in Android Studio - ProAndroidDev 

以下のコードを見ながら。

👉 GitHub - android/architecture-samples at dagger-android 

コードは、画面別にディレクトリ分けしてるが、レイアウトファイルは、複雑なファイル名で res ディレクトリ直下に一緒くたに入ってる。

ここで、build.gradle で設定記述を追加する。


android {
  sourceSets {
    main {
      res.srcDirs = [
          'src/main/res',
          'src/main/res/layouts/tasks',
          'src/main/res/layouts/taskdetail',
          'src/main/res/layouts/addedittask',
          'src/main/res/layouts/statistics',
      ]
    }

こうすることで、レイアウトファイル群を画面別に分けることができる。

Android Studio はデフォルトで、一つのディレクトリのみ


android {
  sourceSets {
    main {
      res.srcDirs = [
          'src/main/res'
      ]

と等価な設定を持ってるので、それに、画面別ディレクトリを複数追加することで、Android Studio は、リソースファイルとして複数ディレクトリからファイルを読み込むことができるようになります。

あとは、それぞれのリソースファイルを振り分けて置くだけ。

以下、やってみた動画。



実際は、レイアウトファイルがもっと多くなるはずなので、分かりやすさはより顕著になる。

👉 Split layouts into subfolders in Android Studio - ProAndroidDev