Androidレイアウトの最適化:レイアウトの取得に時間がかかる


レイアウトの取得に時間がかかる
 
一般的な方法
背景:各インタフェースのロードに時間がかかる
実装:setContentView()メソッドを上書きし、手動でポイントを埋め込む
 
AOP/ArtHook
(1)AOP実装,(前述の起動最適化で説明した)
使用:ActivityのsetContentView()メソッドを切り替えます.
 
(2)ArtHook実装、(前のメモリ最適化について説明したが、主に取得したピクチャサイズが表示コントロールと一致するかどうかを検出する)
使用:同じくActivityのsetContentView()メソッドをカットします.
 
 
任意のコントロールを取得するのに時間がかかる
使用:LayoutInflater.Factory()は、次のようになります.
       LayoutInflaterCompat.setFactory2(getLayoutInflater(), new LayoutInflater.Factory2() {
            @Override
            public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {

                if (TextUtils.equals(name, "TextView")) {
                    //      TextView
                }
                long time = System.currentTimeMillis();
                View view = getDelegate().createView(parent, name, context, attrs);
                LogUtils.i(name + " cost " + (System.currentTimeMillis() - time));
                return view;
            }

            @Override
            public View onCreateView(String name, Context context, AttributeSet attrs) {
                return null;
            }
        });