안 드 로 이 드 콜 드 시작 앱 초 켜 는 방법 자세히 알 아 보기
이 글 을 읽 기 전에 먼저 몇 가 지 를 이해 해 야 한다.
1.안 드 로 이 드 의 콜 드 시작 시간 은 무엇 입 니까?
콜 드 스타트 타임 은 사용자 가 모 바 일 데스크 톱 에서 앱 을 클릭 하 는 순간 부터 시작 페이지
Activity
호출onCreate()
방법 사이 의 이 시간 대 를 말한다.2.냉 가동 시간 동안 무슨 일이 있 었 나 요?
우선 하나
Activity
를 열 었 을 때 무슨 일이 일 어 났 는 지 알 아야 합 니 다.하나Activity
가 열 렸 을 때 이Activity
소속Application
이 시작 되 지 않 았 다 면 시스템 은 이Activity
에 프로 세 스 를 만 들 것 입 니 다.(하나의 프로 세 스 를 만 들 때마다 한 번Application
을 호출 하기 때문에Application
의onCreate()
방법 은 여러 번 호출 될 수 있 습 니 다.프로 세 스 생 성과 초기 화 에 시간 이 걸 릴 수 있 습 니 다.이 시간 에WindowManager
앱 의 테마 스타일 에 있 는 창 배경(windowBackground)을 미리 보기 요소 로 불 러 온 다음 에 실제 레이아웃 을 불 러 옵 니 다.이 시간 이 너무 길 고 기본 배경 이 검은색 이나 흰색 이면 사용자 에 게 착각 을 줄 수 있 습 니 다.이 앱 은 끊 기 고 원활 하지 않 아 자 연 스 럽 게 사용자 체험 에 도 영향 을 미 쳤 다.효과 도 보기:
최적화 되 지 않 음
최적화 방안 1
최적화 방안 2
2.시작 할 때의 흰색 화면/검은색 화면 제거
사용자 가 모 바 일 데스크 톱 앱 을 클릭 할 때 보 이 는 블랙 스크린 이나 화이트 스크린 은 화면 렌 더 링 전의 첫 번 째 프레임 입 니 다.만약 에 글 머리 에 있 는 두 가지 문 제 를 이해 하면 이 문 제 를 해결 하 는 것 이 매우 쉽 습 니 다.Theme 안의
windowBackground
을 우리 가 사용자 에 게 보 여주 고 싶 은 화면 으로 설정 하면 됩 니 다.여기 에는 두 가지 방법 이 있 습 니 다.1.배경 그림 을 저희 앱 의 로고 그림 으로 설정 하고 앱 을 시작 하 는 안내 로 서 현재 시중 에 있 는 대부분의 앱 도 이렇게 하고 있 습 니 다.
<style name="AppWelcome" parent="AppTheme">
<item name="android:windowBackground">@mipmap/bg_welcome_start</item>
</style>
2.배경 색 을 투명 색 으로 설정 합 니 다.그러면 사용자 가 데스크 톱 앱 사진 을 클릭 할 때'바로'앱 에 들 어가 지 않 고 데스크 톱 에 잠시 머 물 러 있 습 니 다.사실은 이때 앱 은 이미 작 동 되 었 습 니 다.우리 가 생각 하 는 Theme 안의windowBackground
색 을 투명 하 게 설정 하고 핸드폰 앱 업 체 에 냄비 를 강제로 던 졌 습 니 다(핸드폰 반응 이 너무 느 립 니 다.하하).사실 지금 위 챗 도 이렇게 하고 있 으 니 믿 지 않 으 면 해 보 세 요.
<style name="Appwelcome" parent="android:Theme.Translucent.NoTitleBar.Fullscreen"/>
투명 화 라 는 방법 은 주의해 야 할 점 이 있 습 니 다.Theme 를 직접 도입 하면 다음 과 같은 이상 이 발생 할 수 있 습 니 다.
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
이것 은 호 환 되 지 않 는 Theme 를 사 용 했 기 때 문 입 니 다.예 를 들 어 제 가 있 는Activity
이 계승 되 었 고 해결 방안 은 간단 합 니 다.1.호환성 이 없 는
Activity
집적AppCompatActivity
2.Activity
방법 에 있 는Activity
이전에 우리 원래 APP 의 Theme 설정
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
}
}
위의 두 가지 방법,우 리 는 모두 Theme 를 대응 하 는AppCompatActivity
에 도입 해 야 한다.
<activity
android:name=".app.main.MainActivity"
android:theme="@style/AppWelcome"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
3.시동 최적화위의 방법 은'초 열 림'앱 의 효 과 를 얻 을 수 있 지만 실제 속도 가 아니다.Activity 를 만 드 는 과정 에서 일련의
onCreate()
층 의 조작 을 거 친다.일상적인 개발 에서 우 리 는super.onCreate(savedInstanceState)
유형 을 다시 쓴 다음 에Activity
에서 초기 화 작업 을 한다.예 를 들 어 사용자 표 지 를 저장 하 는 정태 화framework
등 이다.제3자 SDK 초기 화 등여기에 몇 가지 건 의 를 드 리 겠 습 니 다.
1.
Application
업무 수행 에 참여 하지 못 하 게 합 니 다.2.
Application
에서 시간 을 소모 하 는 작업 을 하지 마 십시오.예 를 들 어 일부 개발 자 들 은 자신의 앱 에서 일련의 폴 더 나 파일(예 를 들 어 저 자신)을 사용 합 니 다.이런 I/O 작업 은'확실히 사용 해 야 할 때 다시 만 듭 니 다'또는 데이터 베 이 스 를 만 드 는 작업 에 넣 어야 합 니 다.3.정적 변수 로
TOKEN
에 데 이 터 를 저장 하지 마 십시오.물론 이것 은 절대적 인 이상주의 이다.위의'싫어'라 는 두 글 자 를 붙 이기 전에'가능 한'두 글 자 를 붙 여 라.왜냐하면 실제 개발 에서 이렇게 하 는 것 은 확실히 우리 로 하여 금 많은 편 의 를 얻 게 할 것 이다.
참,보충 하 는 것 도 중요 하 다.구조의 복잡성,구조의 깊이 를 최대한 줄 이 는 것 이 중요 하 다.왜냐하면
Application
그 리 는 과정 에서 측정 도 성능 을 소모 하기 때문이다.자,이상 은 안 드 로 이 드 콜 드 가동 실현 앱 이 초 단위 로 열 리 는 모든 내용 입 니 다.이 글 의 내용 이 여러분 의 일상적인 앱 개발 에 도움 이 되 고 궁금 한 점 이 있 으 면 댓 글로 소통 할 수 있 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.