Adaptable Storage機能に関して調べたメモ

はじめに

Android 7 端末は 2017/3 頃から国内に出始めるというお話ですが

今更ながらAndroid6の機能を調べていたりしてたり(苦笑

SDカードを内部ストレージする機能を Adaptable Storage と言うそうです。

Android6からの機能

ようは廉価版Android端末で

  • Android6でSDカードにアプリを移動する機能を切った*1
  • 内蔵ストレージの容量が少ない端末は、昨今のアプリ大容量化には厳しい
    • これに対する暫定的な対応として作られている感じ?の機能
    • Android7では使えなくなるんじゃないかな?みたいな事書かれている記載もあった*2

とくにキャリア抱き合わせ端末とか容量が8G/16Gとか少ないので、皆さん苦労されているようですね*3

ググると価格ドットコムとかでもHotな話題のようです

ネットで出てる手順的には

これ、よく救済的な話で話題に乗っているのですが、

殆どの端末ではGUIとしての機能は開放していないようです。

したがってコマンドラインが必須

> adb shell
> sm list-disks
disk:179,64   //単なる マウントされている外部ssdの disk idっぽい

// sm partition disk:179,64 private だと全領域。
// ただしSD前提のカメラアプリとかだとエラーになるのでオススメできないとのこと
// => 内蔵ストレージのSDディレクトリエミュレートを認識しないアプリが有る(古いやつだと)

>sm partition disk:179,64 mixed 40
//=> これだと40%を 外付けSDカードのまま残す

ただこの SD内蔵ストレージ領域 って、

  • アプリによっては参照できない?
    • Android OS 6上からはもちろん参照可能
  • PCからマウントした時に参照できない?

みたいな特殊フォーマットな感じのようです

でもこの状態だと

  • 内蔵領域には Adaptable Storage領域は割り当てられる
  • ただしそのままだと「壊れている」と表示される
  • フォーマットか必要な状態
    • 「内蔵ストレージとしてフォーマット」が設定メニューが出てこない
    • 「外付けストレージとしてフォーマット」を選ぶと普通に外付けSDに戻ってしまう

な感じなので使えない。

adb shell sm set-force-adoptable true

「内蔵ストレージとしてフォーマット」の選択肢を有効化する必要があります

で、「内蔵ストレージとしてフォーマット」試してみたんですが

これSDカードの相性があるようでうまくいきませんでした

  • 「遅いSDカードです」と表記がでていたから、「内蔵ストレージとしてフォーマット」後に再マウントできない?

  • 内部ストレージに対して、外部SDカードはかなり遅いようで不具合が起こりやすい?

    • だから一応対応はしたもののOS6標準機能としてあまり宣伝されていない
    • 大きめのSDカードを使うと容量表示がバグる?*4

どうもココらへん

  • 高速なSDカードでないと不安定
    • class10辺りだと駄目? UHS-1 以上の必要が有り?
  • 大容量のSDだと不安定?
    • 32G以下だと安定するみたいなページも有り

な話があり、このSDカードで成功したみたいな話が出てこないので難しいですね。

個人ブログや価格.com「成功した」みたいな話はちょこちょこ記載があったりするんですけど。

SDカード自体の評価から調べていくのがいいのかな?*5

  • Samsung microSDXCカード 64GB EVO+ Class10 UHS-I(読み取り80M)
  • 東芝 microSDXC 64GB Class10 UHS-I (読み取り48M)

あたりかな?

でもまあ、普通に外部ストレージとしてSDカードを使っていても

  • 低速なSDカードだと、元々カメラアプリとかでも保存が失敗したりするのは普通

という話なので、要求スペック自体が高くなっているだけかもしれないのですが。。

アプリの対応状況的な話

qiita.com

*1:APP2SDとう名称だったらしい

*2:G様自体も、マルチユーザの場合と同じく迷走してる?

*3:OSに6〜7Gとられているのが昨今のようなので。容量がほとんど無いとOSが立ち上がらないのは普通のPCと同じやな・・

*4:128GのSDカードとか

*5:Zenfone2だと64Gまで認識可能。ZenfoneMaxだと128Gらしい