Programing

Android에서 네이티브 작동 속도가 매우 느림

c10106 2022. 3. 9. 09:41
반응형

Android에서 네이티브 작동 속도가 매우 느림

'매우 느림'이란 말은, 단순한 예시 앱임에도 불구하고 5초 정도 전환이 가능하다는 것이다.

전체 앱 RN 코드

을 보다.onPressFeed

덕분에 많은 시간을 절약할 수 있었다.

  • 코드에서 "console.log"를 검색하고 테스트하기 전에 코드에 주석을 달으십시오.
  • "JS Dev 모드" 해제

"JS Dev Mode"를 끄지 않으면 장치에서 속도가 매우 느리게 실행되도록 하십시오.

Android에서 JS Dev 모드를 비활성화하는 방법:

"react-native run-android"를 실행한 후에는 장치를 "흔들"하여 메뉴를 표시하십시오."Dev Settings"를 선택한 다음 "JS Dev Mode"를 선택 해제하십시오.

그 후에 다시 "반응-네이티브 런앤드로이드"를 실행한 후, 그것은 좀 더 성능이 좋아져야 한다, 적어도 나는 너를 위해 :)

출처: https://github.com/aksonov/react-native-router-flux/issues/199

실행 중인 Resact Native 버전을 선택하십시오.그리고 어떤 전화기로 작동하고 있어?

Android Emulator에서 Resact Native를 실행하면 속도가 상당히 느려질 겁니다.또한 크롬 디버깅을 하고 있으면 앱 속도가 많이 느려진다.

삼성 갤럭시s4 기기에서 꽤 간단한 리액션 네이티브 앱을 실행 중인데, 꽤 빨리 실행된다(애니메이션도 꽤 부드럽게 작동한다).

내가 실행하는 몇 가지 예제 코드(애니메이션이 있는 측면 그리기 및 기본 보기):

_renderCancel: function(){
  if (this.state.showView) {
    return (
      this.props.view
    );
  } else {
     return ;
   }
},

render: function() {

var menu = <Menu 
              closeDrawer={this.closeDrawer}
              navigator={this.props.navigator} 
              modifyOnClose={this.modifyOnClose} />;


return (
  <Drawer
    ref="drawer"
    onClose={this.onClose}
    type={this.state.drawerType}
    animation={this.state.animation}
    openDrawerOffset={this.state.openDrawerOffset}
    closedDrawerOffset={this.state.closedDrawerOffset}
    panOpenMask={this.state.panOpenMask}
    panCloseMask={this.state.panCloseMask}
    relativeDrag={this.state.relativeDrag}
    panStartCompensation={this.state.panStartCompensation}
    openDrawerThreshold={this.state.openDrawerThreshold}
    content={menu}
    styles={drawerStyles}
    disabled={this.state.disabled}
    tweenHandler={this.tweenHandler}
    tweenDuration={this.state.tweenDuration}
    tweenEasing={this.state.tweenEasing}
    acceptDoubleTap={this.state.acceptDoubleTap}
    acceptTap={this.state.acceptTap}
    acceptPan={this.state.acceptPan}
    changeVal={this.state.changeVal}
    negotiatePan={false}
    side={this.state.rightSide ? 'right' : 'left'}
    >
    <View>
      <CustomToolBar onPress={this.openDrawer}/> 
      {this._renderCancel()}   
    </View>
  </Drawer>

);
},

이것은 내 장치에서 꽤 빨리 실행된다.

프로덕션에서 로깅 해제

입력 파일에서 다음 코드 조각을 추가해 보십시오.

if (!__DEV__) {
  console.log = () => {};
}

이렇게 하면 개발 중에 콘솔 로그가 작동할 수 있지만, 생산을 위해 릴리즈할 때는 빈 함수 호출에 불과하다.

참조URL: https://stackoverflow.com/questions/35449558/react-native-works-very-slow-on-android

반응형