Chrome CustomTabs 使い方 バックグランド処理で高速に

nexus2cee_stuff_thumb

[I/O 2015] Chrome Custom Tabs Will Add Easy And Rich Web Content To Any App With Chrome Capabilities

サービス経由で「ウォームアップ」,「URL先読み」を行って
高速に開く.

公開されている Googleサンプルのうち利用するヘルパークラスなどは
前回エントリを参照.

 

1. バインド

ウォームアップも同時に行う.
アクテビティのライフサイクルに合わせて.

public class SampleActivity extends AppCompatActivity
        implements CustomTabActivityHelper.ConnectionCallback {

    private CustomTabActivityHelper mCustomTabActivityHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mCustomTabActivityHelper = new CustomTabActivityHelper();
        mCustomTabActivityHelper.setConnectionCallback(this);

    }

    @Override
    protected void onStart() {
        super.onStart();
        mCustomTabActivityHelper.bindCustomTabsService(this);
    }

    @Override
    protected void onStop() {
        super.onStop();
        mCustomTabActivityHelper.unbindCustomTabsService(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mCustomTabActivityHelper.setConnectionCallback(null);
    }

    @Override
    public void onCustomTabsConnected() {
    }

    @Override
    public void onCustomTabsDisconnected() {
    }

}

 

2. プリフェッチ

開くであろうURLが確定した時点でバックグランドで先読み.

mCustomTabActivityHelper.mayLaunchUrl(uri, null, null);

 

3. 起動

前回とほぼ同じ.
タイトル, アニメーションを付けてなめらかな体感に.
R.anim.slide_* はサンプルのものを利用.

CustomTabsIntent customTabsIntent =
    new CustomTabsIntent.Builder(mCustomTabActivityHelper.getSession())
        .setShowTitle(true)
        .setStartAnimations(this, R.anim.slide_in_right, R.anim.slide_out_left)
        .setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
        .build();
CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri, new WebViewFallback());

 

以上をまとめてテンプレート的に

public class SampleActivity extends AppCompatActivity
        implements CustomTabActivityHelper.ConnectionCallback {

    private CustomTabActivityHelper mCustomTabActivityHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mCustomTabActivityHelper = new CustomTabActivityHelper();
        mCustomTabActivityHelper.setConnectionCallback(this);

    }

    private void preFetchUrl(Uri uri) {
        mCustomTabActivityHelper.mayLaunchUrl(uri, null, null);
    }

    private void open(Uri uri) {
         CustomTabsIntent customTabsIntent = 
            new CustomTabsIntent.Builder(mCustomTabActivityHelper.getSession())
            .setShowTitle(true)
            .setStartAnimations(this, R.anim.slide_in_right, R.anim.slide_out_left)
            .setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
            .build();
         CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri, new WebViewFallback());
    }

    @Override
    protected void onStart() {
        super.onStart();
        mCustomTabActivityHelper.bindCustomTabsService(this);
    }

    @Override
    protected void onStop() {
        super.onStop();
        mCustomTabActivityHelper.unbindCustomTabsService(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mCustomTabActivityHelper.setConnectionCallback(null);
    }

    @Override
    public void onCustomTabsConnected() {
    }

    @Override
    public void onCustomTabsDisconnected() {
    }

}

イベントからプリフェッチしてからのオープンすればよい.

しかし「先読みのタイミング」て…

(つづく)

Chrome Custom Tabs を とりあえず数行で使う


Evernote を プレーンなテキストでペースト

なんなんだよ!!

フツーにコピペしたいだけなのにへんな装飾までついてきちゃう.

テキストだけ貼り付けたい.

装飾なしで貼る
Command + Shift + V

ということなのだが いつも貼ったあとにイラ.

Evernote_Basic

以下, そんな場合の事後処理.

装飾のみを削除(該当文字選択後)
Command + Shift + F

Evernote_Basic

文字についたリンクの削除(リンクされた文字のみ選択)
Command + Shift + K

Evernote_Basic

太字をノーマルに(ON/OFFトグル)
Command + B

Evernote_Basic

Evernote + Mac 限定なショートカットだけに

すぐに忘れる.

「CheatSheet」でもショートカット一覧はみれるが

逆に多すぎて探すのに時間がかかったり,

載ってないショートカットもあったりする.

高機能なアプリやソフトが多すぎて

逆にイライラすることはないですか?


Android Studio のショーットカットが覚えられないので「CheatSheet」

こんな便利なショートカットあるのかと.

最近一番使っている道具であるAndroid Studioを見直してみました。
その結果、新たな便利機能を知ったり、改めて便利さを認識できたりしたので、メモがてら少しまとめてみました。

AndroidStudio - 普段使っている道具を見直す〜Android Studio編〜 - Qiita

眺めていると, 便利なのが多すぎて嫌になってきたのですが,

せっかくなので2,3個くらい覚えようと.

Override メソッドの一覧選択表示
ctrl + o

メソッド引数の種類表示
command + p

classの階層を表示
ctrl + h

...

多い. 多すぎる.

ショートカットが覚えられない

記事の最後に, こんな.

CheatSheet が便利です。
commandを長押ししているだけで、使用しているソフトウェアのCheatSheetが表示されます。

これを入れておくことにします.

CheatSheet

CheatSheet

インストールして, アクセサビリティまわりの許可をすると,

cheat

Screenshot_8_10_15__06_16

表示されます.

45438522-e948-9874-6714-5052a5563ca8

これって, Mac上どのアプリでもいけるのですね.便利だわ.

Android Studio の 設定検索のショートカット

Ctl + Shift + A

SlidingTabStrip

と合わせて使えば便利です.