자세를 취하고android의 레이아웃 최적화를 습득하세요!

android 응용 프로그램으로서 응용 자체가 아무리 아름답고 기능이 강하며 내용이 아무리 풍부해도그러나 앱 자체가 화면을 열면 휴대전화 16ms가 한 번 페이지를 갱신하는 시간을 천천히 초과하면 렉이 생긴다.사용자 체험이 극도로 나빠져 사용자 수가 줄어든다.그래서 우리는 개발 과정에서 레이아웃의 최적화를 중시해야 한다.
라벨
Layout 레이아웃에서 인용하고 싶은 레이아웃이 있을 때, 이 레이아웃이 서로 다른 레이아웃에서 공공 레이아웃이라면, 우리는 여러 번 사용할 것입니다.태그를 사용할 수 있습니다.또한 통일된 수정과 조회에 편리하다.
    
    

아주 간단합니다. 이 레이아웃을 배치할 레이아웃 내부에 라벨을 사용해서 이 레이아웃을 도입하면 됩니다.탭에서, 우리는layout 속성을 모두 덮어쓸 수 있습니다.include에서 지정한layout 속성은 덮어씁니다.만약 우리가 그것의 넓이를 wrap 로 수정하고 싶다면content.
      

레이아웃 빼고width와layoutheight 이외에, 우리는container의 어떤layout 속성을 덮어쓸 수 있습니다. 예를 들어layoutgravity、layout_layout 속성이 아닌 margin 등은 탭에 덮어쓸 수 없습니다.또한 주의해야 할 것은 탭에layout 속성을 덮어쓰려면layout 을width 및 layoutHeight 두 속성도 복사합니다. 그렇지 않으면 복사 효과가 적용되지 않습니다.
라벨
탭은 탭의 보조 확장으로 사용되며, 레이아웃 파일을 인용할 때 불필요한 레이아웃 삽입을 방지하는 것이 주요 역할이다.안드로이드가 레이아웃을 해석하고 보여주는 데 시간이 걸리고 레이아웃이 끼워 넣을수록 해석하는 데 시간이 걸리고 성능도 떨어지기 때문에 레이아웃 파일을 작성할 때 끼워 넣는 층수를 적게 하는 것이 좋다.
    
        
        
    

탭의 사용 방법은 이 레이아웃의 루트 레이아웃 노드로 직접 사용하고 다른 위치에서 이 레이아웃을 인용해야 할 때 탭으로 인용하며 이 노드는 부모 용기의 루트 노드로 동기화됩니다.예를 들어 LinearLayout에서는 두 개의view를 선형으로 배열하고 RelativeLayout에서는 라벨이 상대적인 레이아웃 라벨에 해당한다.이렇게 하면 일부 불필요한 레이아웃 삽입을 생략할 수 있다.
라벨
라벨은 실제로 경량급 View로 사이즈도 아무것도 그리지 않기 때문에 레이아웃에 배치하면 성능에 전혀 영향을 주지 않는다고 볼 수 있다.필요할 때 표시하기만 하면 불러옵니다.

ViewStub은 공간을 차지하지 않지만, 모든 레이아웃에layout 을 지정해야 합니다.width 및 layoutheight 속성, 그렇지 않으면 실행이 잘못됩니다.또한 ViewStub에서 대체할 layout 파일에 라벨이 포함되어 있지 않기 때문에 사용하기 전에 인터페이스 레이아웃을 잘 구상해서 불필요한 끼워넣기를 피해야 한다.ViewStub가 표시되면 ViewStub가 보기 프레임에서 제거되고 id도 비워집니다.findViewById () 가 비어 있습니다.
ViewStub는 필요할 때findViewById () 를 불러오고 setVisibility (View.VISIBLE) 나 inflate () 를 호출하면 매우 간단합니다.
라벨 매듭
라벨
사용 이유
최적화 결과
사용 예
공공 부분을 추출하여 레이아웃의 복용성을 높이다
측정, 드로잉 시간 단축
App의 여러 UI 인터페이스에서 동일한 레이아웃 또는 부분적인 레이아웃을 사용해야 하는 경우페이지 제목 toolBar를 재사용할 때 사용합니다.
레이아웃 수준 감소
도면 작업 감소
재사용이 필요한 부분 레이아웃이 결합할 레이아웃의 루트 레이블과 일치할 때 사용합니다.(강화판include와 유사하여 레이아웃의 등급을 줄이지만 결합성이 더욱 강하다).
인터페이스에 가장 먼저 보여줄 필요가 없고 필요할 때 불러옵니다
측정, 드로잉 시간 단축
이 인터페이스는 네트워크 오류 인터페이스나 사용자 정보 드롭다운 인터페이스와 같은 사용자에게 가장 먼저 보여줄 필요가 없지만 가장 먼저 사용자에게 표시할 필요가 없을 때 사용한다.
ConstraintLayout 구속 레이아웃
안드로이드 스튜디오에는 Xml 레이아웃에서 디자인 탭 아래에서 레이아웃을 시각화할 수 있는 신기한 기능이 있습니다.그러나 이 기능이 완선하지 않아 시스템이 자동으로 생성한 레이아웃에 속하기 때문에 오히려 레이아웃 내부를 혼란스럽게 하고 이해하기 어려울 뿐만 아니라 끊기기 때문에 이전에 우리는 이 인터페이스로 미리 보기를 했다.한편, ConstraintLayout은 레이아웃을 제약하는 새로운 레이아웃을 지원하는데 오히려 레이아웃의 시각화 조작을 지원한다. 이를 시각화된 보기 조작 레이아웃의 RelativeLayout에 비유할 수 있다. ConstraintLayout은 제약의 방식으로 각 컨트롤의 위치와 관계를 지정한다.레이아웃 내부에 다른 레이아웃을 삽입하지 않아도 당신이 원하는 인터페이스를 완성할 수 있습니다.그래서 레이아웃의 삽입을 효과적으로 피하고 레이아웃을 최적화하는 효과를 얻을 수 있다.사용이 너무 복잡하기 때문에 사용법을 깊이 알고 싶으면 ConstraintLayout을 클릭하세요.
뷰 트리 계층 구조 감소
시스템은 하나의 보기가 없을 때 측정, 레이아웃, 그리는 과정을 관리해야 한다.만약에 우리의 레이아웃에 겹쳐진 층수가 너무 많으면 추가 측정, 레이아웃 등을 초래하고 시스템 자원을 매우 소모하여 UI가 끊기고 사용자 체험에 영향을 줄 수 있다.따라서 도서의 등급 구조를 최대한 줄이고 불필요한 레이아웃을 피하며 더 적은 레이아웃 방식을 사용해야 한다.
DDMS를 사용하여 파일의 뷰 트리를 볼 수 있습니다.먼저 프로젝트를 실제 컴퓨터나 가상 컴퓨터에서 실행합니다.그런 다음 Tools에서 DDMS를 엽니다.여기 소개는 안 할게요.
기타
  • 끼워 넣은 LinearLayout에서는 weight를 최대한 사용하지 마세요. weight는 두 번 다시 측정하기 때문입니다.
  • Layout의 선택은 View 트리의 등급을 최대한 줄이는 것을 위주로 하고 불필요한 끼워넣기와 View 노드를 제거한다.예를 들어 LinearLayout이 너무 많이 끼워 넣으면 RelativeLayout을 사용하여 레이아웃 끼워 넣기를 줄이는 것을 권장합니다.
  • RelativeLayout 자체는 끼워 넣지 않도록 한다.
  • View 보기의 숨김과 현실은 가능한 한 invisible을 사용합니다.gone 때문에 공간을 차지하지 않기 때문에 보기는 다시 측정하여 그립니다.invisible 보기는 다시 그리지 않지만 공간을 차지합니다.
  • 레이아웃 튜닝 도구:hierarchy viewer, Lint tool
  • 링크:https://www.jianshu.com/p/faf...
    자세히 보기
    react-native 기술의 우열*
    몇 개의 작은 프로그램을 개발한 후, 나의 작은 프로그램에 대한 견해를 말해 보아라.
    NDK 프로젝트 실전 - 360 휴대폰 어시스턴트의 오프로드 감지
    (Android) 면접 문제급 답안(정선판)

    좋은 웹페이지 즐겨찾기