Android 如何提高本机应用程序的启动时间?
我已经发布了一个IOS和Android应用程序 但该应用程序的启动时间约为5秒 我检测到它需要大约5秒钟来加载Routes中的第一个屏幕 app.tsx代码如下:Android 如何提高本机应用程序的启动时间?,android,ios,react-native,performance,Android,Ios,React Native,Performance,我已经发布了一个IOS和Android应用程序 但该应用程序的启动时间约为5秒 我检测到它需要大约5秒钟来加载Routes中的第一个屏幕 app.tsx代码如下: import React, {useEffect} from 'react'; import configureStore from './Store'; import {SafeAreaProvider} from 'react-native-safe-area-context'; import {Provider} from 'r
import React, {useEffect} from 'react';
import configureStore from './Store';
import {SafeAreaProvider} from 'react-native-safe-area-context';
import {Provider} from 'react-redux';
import {PersistGate} from 'redux-persist/es/integration/react';
import {NavigationContainer} from '@react-navigation/native';
import Routes from './configs/Routes';
import {navigationRef} from './services/NavigationService';
import {LocalizationProvider} from './locales/Translation';
import ModalContainer from './modules/ModalGlobal/containers/ModalContainer';
import NetInfoContainer from './containers/NetInfoContainer';
import {
listenNotificationForeground,
requestUserPermission,
} from './services/NotificationService';
import axios from 'axios';
import {removeCurrentSession} from './modules/Setting/service/SettingService';
import {UNAUTHORIZED} from './configs/Constants';
axios.interceptors.response.use(
response => response,
error => {
const {status} = error.response;
if (status === UNAUTHORIZED) {
removeCurrentSession();
}
return Promise.reject(error);
},
); // User for HTTP code difirrent 200 from axios
const App = () => {
useEffect(() => {
let listenBackground: any;
async function _notificationHandle() {
await requestUserPermission();
listenBackground = listenNotificationForeground();
}
_notificationHandle();
return listenBackground;
}, []);
return (
<Provider store={configureStore().store}>
<PersistGate loading={null} persistor={configureStore().persistor}>
<SafeAreaProvider>
<LocalizationProvider> // Locale language
<NetInfoContainer /> // Use to show lost connection
<NavigationContainer ref={navigationRef}>
<Routes />
</NavigationContainer>
<ModalContainer /> // Define global modal to use many routes
</LocalizationProvider>
</SafeAreaProvider>
</PersistGate>
</Provider>
);
};
export default App;
import React,{useffect}来自“React”;
从“/Store”导入配置存储;
从“react native safe area context”导入{SafeAreaProvider};
从'react redux'导入{Provider};
从'redux persist/es/integration/react'导入{PersistGate};
从'@react-navigation/native'导入{NavigationContainer};
从“/configs/Routes”导入路由;
从“./services/NavigationService”导入{navigationRef};
从“./locales/Translation”导入{LocalizationProvider};
从“/modules/ModalGlobal/containers/ModalContainer”导入ModalContainer;
从“./containers/netinfo container”导入netinfo容器;
进口{
listenNotificationForeground,
requestUserPermission,
}来自“/services/NotificationService”;
从“axios”导入axios;
从“./modules/Setting/service/SettingService”导入{removeCurrentSession};
从“/configs/Constants”导入{UNAUTHORIZED};
axios.interceptors.response.use(
响应=>响应,
错误=>{
const{status}=error.response;
如果(状态===未授权){
removeCurrentSession();
}
返回承诺。拒绝(错误);
},
); // 来自axios的HTTP代码定义200的用户
常量应用=()=>{
useffect(()=>{
让我们听听背景:任何;
异步函数_notificationHandle(){
等待requestUserPermission();
listenBackground=listenNotificationForeground();
}
_notificationHandle();
返回listenBackground;
}, []);
返回(
//语言环境
//用于显示断开的连接
//定义全局模式以使用多条管线
);
};
导出默认应用程序;
我能改进一下这段代码吗?或者有什么办法来缩短发射时间
多谢各位 您可以使用来优化应用程序的内存使用和性能,请按如下方式使用(在使用本机屏幕安装后)
:
您的android/app/src/main/java//MainActivity.java
需要如下所示:
导入android.os.Bundle;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(null);
}
在条目文件(主要是App.js)中,添加以下内容:
从“react native screens”导入{enableScreens};
启用屏幕(假);
这里有更多信息:您还应该添加一个启动屏幕(如果您没有),因为当react native加载其依赖项时,在1秒开始时总会有一个空白屏幕。设置启动屏幕将使这一点不被注意
我使用react native splash screen用于android,通过启用app/build.gradle,您可以在项目开始时消除空白屏幕。Hermes将js代码转换为java代码。如果您退出了发布版apk,那么在启用hermes之后,您只能看到java文件,并且有一个减少应用程序大小的更改。完整的说明和文档请参见谢谢。我已经使爱马仕能够进行项目。但发射时间不会缩短。谢谢。我已经添加了闪屏。我希望我的回答能有所帮助。我会试试你的建议。我正在使用另一个功能,所以我还没有尝试过。我回复最后的结果。谢谢如果它确实有帮助,请标记为已接受,并向上投票!这很有帮助!:)你好谢谢你的回答。此模块无助于提高加载时间。我还添加到这个项目中。但仍然没有任何改善:(((