Android 4.0 の将来のバージョンでは「Dream」(※1)と呼ばれる新しいスクリーンセーバーが搭載されるようです。
国内版の Galaxy Nexus (Android 4.0.1)で確認したところ、
同スクリーンセーバー用と思われる画面が、既に 2 つほど組み込まれていました。
- RocketLauncher ※2
- Nyandroid ※3
現状、これらの画面を呼び出すための管理画面は搭載されていないようですが(※4)、
アクティビティーで実装されているため、以下のようなインテントを発行することで、画面を表示することができます。
adb 経由で RocketLauncher を起動する方法
adb shell am start -n com.android.launcher/com.android.launcher2.RocketLauncher
adb 経由で Nyandroid を起動する方法
adb shell am start -n com.android.systemui/com.android.systemui.Nyandroid
ソースコードを書いてアプリ(apk)から起動する方法
package com.adakoda.android.hellorocketlauncher;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
public class HelloRocketLauncherActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent();
// RocketLauncher
{
intent.setComponent(new ComponentName(
"com.android.launcher",
"com.android.launcher2.RocketLauncher"));
}
// Nyandroid
// {
// intent.setComponent(new ComponentName(
// "com.android.systemui",
// "com.android.systemui.Nyandroid"));
// }
startActivity(intent);
finish();
}
}
ちなみに、Android Market には、すでに RocketLauncher を呼び出すだけのアプリが公開されていました^^;
Android Market
- ICS RocketLauncher
Dream (新スクリーンセーバー?)について
新しいスクリーンセーバーのベースクラスは、
frameworks\support\v13\java\android\support\v13\dreams\BasicDream.java
に準備されており、
RocketLauncher では、BasicDream クラスを継承して実装されています(仕組みは意外と単純)。
packages\apps\Launcher2\src\com\android\launcher2\RocketLauncher.java
Nyandroid の方は、BasicDream クラスを継承していないようですが、
AndroidManifest.xml に、Dream 用と思われるカテゴリが定義されているため、Dream コンテンツの一種ではないかと思われます。
android.intent.category.DREAM
今後のバージョンアップが楽しみですね!
※1 : HTC Dream (Android Dev Phone 1)でも電脳羊でもありません
※2 : アイコンタップでタップしたアイコンを起動できるスクリーンセーバー兼ランチャー
※3 : 「設定アプリ > 端末情報 > Android バージョン連打 > NyanCat 超長押し」でも起動できます
※4 : 正確には、管理画面は実装されていますが、一部のコードがコメントアウトされていたり、完全なソースコードは提供されていませんでした
