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

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


Android Studio の ビルド がやけにトロい

イライラすぎるので キンキンに調べてやろうと, でまずぐぐって糸口.

gradle.properties ファイルを変更
gradle をオフラインモードに変更

Android Studioのgradleビルドを高速化する - Qiita

org.gradle.jvmargs=-Xmx10248m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError - Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true

[AndroidStudio] 機能実装のビルド時間を減らしたい

.gradle/gradle.propertiesに
org.gradle.daemon=true
と書いておけばGradleデーモンが使われるので立ち上がりが速くなる、というのはあちこちに書いてあるが、実はGradleデーモンが使われていない可能性がある。

また、Gradleの引数が一致していない場合には、IntelliJのSettings->Gradle->Gradle VM Optionsの値を、手動で起動したGradleと合わせておく必要がある。私の場合には、以下を設定してある。
-XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m

夜でもアッサム: AndroidのGradleでのビルドが遅いのをちょっと速くする

Android開発を爆速にする10のコマンドラインスクリプト - クックパッド開発者ブログ

Android/Gradleのビルド高速化実験 #potatotips - diary ichigotake

いろんな方法があるようなので gradle.properties の方法をまずは.

プロジェクトによってあったりなかったりした, gradle.properties.

別プロジェクトからコピーしてくるか, ユーザーガイドサンプルにもある.

~/.gradle $ find . -name gradle.properties

プロジェクトディレクトリの直下に以下1行だけコメントインしたものを置いて,

# Project-wide Gradle settings.                                                                                                                                 

# IDE (e.g. Android Studio) users:                                                                                                                              
# Gradle settings configured through the IDE *will override*                                                                                                    
# any settings specified in this file.                                                                                                                          

# For more details on how to configure your build environment visit                                                                                             
# http://www.gradle.org/docs/current/userguide/build_environment.html                                                                                           

# Specifies the JVM arguments used for the daemon process.                                                                                                      
# The setting is particularly useful for tweaking memory settings.                                                                                              
# Default value: -Xmx10248m -XX:MaxPermSize=256m                                                                                                                
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.                                                                                                 
# This option should only be used with decoupled projects. More details, visit                                                                                  
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects                                                                 
# org.gradle.parallel=true

ビルドしてみたら, 数十秒かかってたのが 2秒くらいになったけど.

gradle.properties

なんでかな(笑)

わたしは今までなにをしてたのかな(笑)

75%速度向上という Gradle 3.0 を Android Studio で試す

【Android Studio】idea.vmoptions の設定

オプションに「–profile」をつけて Run時間が1分から2秒になった話

Android お手軽なビルド時間の短縮メモ


Mac の 空き容量 がない場合

どこから消したらいいのか.

DaisyDisk_-_Analyze_disk_usage_and_free_up_disk_space_on_Mac

良いアプリないかな, といつも探すが結局いつもこれ.

$ sudo du -g -x -d 5 / | awk '$1 >= 5{print}'
14	/Applications
7	/Library
9	/private/var
9	/private
6	/System/Library/Caches/com.apple.coresymbolicationd
6	/System/Library/Caches
11	/System/Library
11	/System
...

パスワードを要求されるので、ログイン時に使用しているパスワードを入力する。パスワードは入力しても画面には何も表示されないので気にせず入力した後returnキーを押して実行すること。正しく実行されると、ルートから5階層下までのフォルダの容量を確認し、容量が5GB以上のフォルダがリストアップされる (出力結果の数字は各フォルダの容量 (単位:GB))。すべてがリストアップされるのには時間がかかるので、プロンプト (例:username-no-macbook:~ username$) が出て次のコマンドが入力できる状態になるまで待つこと。

いっしょに紹介されてるフリーウェアもいい.

ハードディスクの空き容量が極端に少なくなる場合の対処方法 | Apple サポートコミュニティ


Related Categories :  NewbiePreferenceRecommendedTools