幸いなことに、Google I/O 2016へ行ってきましたよ。
というわけで、まずは、Android Nについてから。
これを目OCRして、これまでN developer previewの説明でされていなかった案件を太文字にしてみました。
-
UX
- Android Beta Program
- Multi-window
- Freeform mode
- Picture-in-picture mode
- Split screen mode
- VR mode (これは発表のあったDayDreamです)
- Quick Switch Display size
- Notification
- Bundled notifications
- Direct reply
- New language supported improved notifications
- Notification controls
- Quick Settings
- Customizable quick settings
- Quick Setting tile API
- Quick Settings bar
- Clear all in overview settings (会場でもわーっと声が上がりました)
- Lock Screen wallpaper support (デバイスによっては独自にサポートされていましたね)
- Navigation drawer
- Settings suggestions
- New language supported
- ICU4J API
- Unicode 9 Emoji
- Variable text to speech speed improvements
- Accessibility
- Accessibility mono output
- Accessibility settings in setup
- Accessibility support for creating touch event
-
System
- Java8 language support
- JIT Compiler
- Improved Doze / job scheduler
- Renderscript reduced (あまり中身には触れられていませんね。でもみんな使っているのかな?)
- Vulkan API
- Better multi tasking
- Project Svelte
- Scoped folder access
- Improved backup coverage (これも詳細不明でした)
- Seamless software updates (A/B updates) (AOSPでもA/B updateのコード入っていますね。これは次の面の作成を通常動作時に行う?)
- Sensor Hub improvements
- Camera memory foot print improvements (CDDに記載されている3画像保持可能にせよの話?)
-
Security
- Security hardening
- File based Encryption
- Direct boot
-
Connectivity
- Data saver
- Telephony
- Number blocked telephony
- Video telephony
- Visual voicemail improvements
- Emergency information
UX関係
Android Beta Program
N developer previewから始まったbeta programのことで、
https://www.google.com/android/beta
から、利用するGoogle accountでログインして、
端末を選択すると、OTAとしてN developer previewを既存のデバイスに振らせることができ、
いわゆる、adb reboot-bootloader; fastbootで焼く必要が無いというものです。楽です。
Multi-window
- Freeform mode
- Picture-in-picture mode
- Split screen mode
これはだいぶ既に語られています。
これらのご参照ください。
DayDream
VR modeのことをDayDreamといいます。
20msec以内のlow latencyだ(VR酔が軽減されるはず)
* single buffer renderingで対応していると話あり-
Day Dreamを今楽しむ方法
- Cardboardを用意します (互換品の場合は、Nexus 6P対応の大きさのものを使うこと)
- Android N Developer Preview3以降を焼いたNexus 6Pを用意します (これいがい非対応) * https://developers.google.com/vr/concepts/daydream-hardware#the_headset_and_controller
- 新し目の端末を用意します (HiFi sensorが利用できたほうが良いでしょう) (DayDream Controllerとして利用します.)
- https://developers.google.com/vr/concepts/dev-kit-setup#hardware に従って楽しみます。
- 結構手順が面倒です
-
開発する方法
- https://developers.google.com/vr/android/ からGoogle VR SDKをdownloadします
- N developer previewのAPIについて
Quick Switch Display size
- これまであったaccessibilityでの文字フォントだけでなく、画像リソース選択まで変更するものです。
- ようは端末のdensityごとにmdpiとかhdpi, xhdpi, xxhdpiとかが選択されていて変わることがありませんでしたが、これが変わるようになるということです。
- resourceをdownloadして動くようなアプリでは、その単位が変わってしまうことになるので注意が必要です。
- ふつうにonConfigurationChangeが飛んでくるのでそれをhandleされるか、killされるのでそれで変わった状態で呼び出されるか、です。
Clear all in overview settings
System UIからoverview buttonで、recentのアプリを出して、これまでAOSP端末では、スワイプして1つのアプリごとに消していましたが、AOSPでも、各社が既にやっていましたがclear allで一気に全アプリを消せるようになりました。
System
JIT Compiler
前々からARTにJITの再投入の話はあったのですが、Nで再投入されました、の話です。
JIT(Just-in-Time)になるので、完全なるAOT(Ahead-of-Time) compilationではなくなり、install時にコンパイルする必要がなくなるので、install時間が75%も短縮になりますよ!という話でした。
Improved Doze / job scheduler
これまで、stationaryじゃないと、Doze発動しませんでしたが、これからは、歩行中のような歩いているsituationでも、すぐに発動しますよ!という話だそうです、
Renderscript reduced
あまり中身には触れられていませんね。でもそもそもみんな使っているのかな?
Vulkan API
Khronousの新Graphics APIです。
より低レベルでハードウェアに近い操作が可能になります。
glSyncの問題とかをより発動しないようにするために自前で制御できるようになるというもののようです。
ただ、普通に使うにはより面倒に。初期化がOpenGLよりもさらに面倒になりました、の話だそうで。。。
Better multi tasking
Multi Windowだから、ということのようです。
Project Svelte
CONNECTIVITY_CHANGE, NEW_PICTURE, NEW_VIDEOを、AndroidManifest.xmlに書いておいてhandleされるようにするのはできなくなるよ、ということだそうです。
Scoped folder access
Runtime permissionで外部ストレージ全体へのアクセス権の把握のようになっていて、顧客の観点では気持ち悪かったかもしれないけど、それを自分のアプリはPHOTOのフォルダーだけだとか宣言できるので、顧客への説明の観点で良いでしょう?という話だそうです。
Seamless software updates (A/B updates)
- A/B update をご参照ください。
A面・B面の/system partitionを用意しておいて、それにより2重化されるのでbrickになりにくいだけでなく、さらにすすめて、B面を普通に動作している間に作成するので、updateにかかる時間がほぼ0ということです。(正確には再起動分)。
Camera memory foot print improvements
これなんですかね?
footprintって、ハードでは物理的なサイズか、ソフトではROM/RAMの利用量の話のですが、普通、RAMのアプリからみた利用量は、画像サイズとフォーマットから決まるので、変わらないはずです。圧縮formatがサポートされる?
もしくは、CDDに記載されている3画像保持可能にできる話のこと?
If a device implementation includes at least one camera, it SHOULD be possible for an application to simultaneously allocate 3 bitmaps equal to the size of the images produced by the largest-resolution camera sensor on the device.
ですかね?
まずはこんな感じで。