xugenyuan

ref |> 冷启动优化

1、lazy加载语音识别库
2、调整启动时加载占用时长较大的调用

Signed-off-by: xugenyuan <xugenyuan@wondertek.com.cn>
... ... @@ -49,6 +49,7 @@
"signingConfig": "default",
"compileSdkVersion": "5.0.0(12)",
"compatibleSdkVersion": "5.0.0(12)",
"compatibleSdkVersionStage": "beta3",
"runtimeOS": "HarmonyOS",
"buildOption": {
"arkOptions": {
... ... @@ -64,6 +65,7 @@
"signingConfig": "release",
"compileSdkVersion": "5.0.0(12)",
"compatibleSdkVersion": "5.0.0(12)",
"compatibleSdkVersionStage": "beta3",
"runtimeOS": "HarmonyOS",
"buildOption": {
"arkOptions": {
... ...
... ... @@ -5,6 +5,7 @@ import { AccountManagerUtils } from '../utils/AccountManagerUtils';
import { UserDataLocal } from '../utils/UserDataLocal';
import { EmitterUtils } from '../utils/EmitterUtils';
import { EmitterEventId } from '../utils/EmitterEventId';
import { Logger } from '../utils/Logger';
export class UmengStats {
... ... @@ -17,7 +18,7 @@ export class UmengStats {
preInit({
context: context.getApplicationContext(),
plugins: [new InternalPlugin()],
enableLog: true
enableLog: Logger.isDebug
});
}
... ...
... ... @@ -75,10 +75,19 @@ export class CacheData {
})
}
static getNetworkData(data: CacheData): string {
static getNetworkDataSync(data: CacheData): string {
if (data.networkData) {
return JSON.stringify(data.networkData);
}
return "";
}
static getNetworkDataAsync(data: CacheData): Promise<string> {
return new Promise((resolve) => {
let string = ""
if (data.networkData) {
string = JSON.stringify(data.networkData);
}
resolve(string)
})
}
}
\ No newline at end of file
... ...
... ... @@ -3,7 +3,7 @@ import { LottieView } from '../../lottie/LottieView'
import lottie from '@ohos/lottie';
import { CommonConstants } from 'wdConstant';
import { common} from '@kit.AbilityKit';
import { VoiceRecoginizer } from 'wdHwAbility/src/main/ets/voiceRecognizer/VoiceRecoginizer';
import { VoiceRecoginizer } from 'wdHwAbility';
@Component
export struct VoiceInputView {
... ...
... ... @@ -42,8 +42,10 @@ export class ChannelViewModel {
CacheData.getLocalCacheData(CacheData.bottomCacheKey).then((data) => {
// Logger.debug(TAG, 'getBottomNavCacheData 333 ' + JSON.stringify(data));
if (data) {
let navBean = JSON.parse(CacheData.getNetworkData(data)) as NavigationBodyDTO
success(navBean)
CacheData.getNetworkDataAsync(data).then((json) => {
let navBean = JSON.parse(json) as NavigationBodyDTO
success(navBean)
})
} else {
success(null)
}
... ... @@ -68,8 +70,10 @@ export class ChannelViewModel {
return new Promise<NavigationDetailDTO | null>((success) => {
CacheData.getLocalCacheData(CacheData.channelCacheDataKey + id).then((data) => {
if (data) {
let navBean = JSON.parse(CacheData.getNetworkData(data)) as NavigationDetailDTO
success(navBean)
CacheData.getNetworkDataAsync(data).then((json) => {
let navBean = JSON.parse(json) as NavigationDetailDTO
success(navBean)
})
} else {
success(null)
}
... ...
... ... @@ -367,8 +367,10 @@ export class PageViewModel extends BaseViewModel {
CacheData.getLocalCacheData(CacheData.comPageInfoCacheKey + pageId).then((data) => {
// Logger.debug(TAG, 'getPageInfoCache 333 ' + JSON.stringify(data));
if (data) {
let navBean = JSON.parse(CacheData.getNetworkData(data)) as PageInfoDTO
success(navBean)
CacheData.getNetworkDataAsync(data).then((json) => {
let navBean = JSON.parse(json) as PageInfoDTO
success(navBean)
})
} else {
success(null)
}
... ... @@ -391,8 +393,10 @@ export class PageViewModel extends BaseViewModel {
.then((data) => {
// Logger.debug(TAG, 'getPageGroupCacheData 333 ' + JSON.stringify(data));
if (data) {
let navBean = JSON.parse(CacheData.getNetworkData(data)) as PageDTO
success(navBean)
CacheData.getNetworkDataAsync(data).then((json) => {
let navBean = JSON.parse(json) as PageDTO
success(navBean)
})
} else {
success(null)
}
... ...
import { audio } from '@kit.AudioKit'
import { ArkTSUtils } from '@kit.ArkTS'
import {getVoicebufferDataLengthByte} from 'neonui'
import lazy {getVoicebufferDataLengthByte} from 'neonui'
import process from '@ohos.process'
import { NativeNui } from 'neonui'
import lazy { NativeNui } from 'neonui'
let TAG:string = "AudioCapturer"
//音频采集器类,主要用于采集音频,写入文件
... ...
import {NativeNui,Constants,MapToJson,INativeNuiCallback, AsrResult, KwsResult} from 'neonui'
import lazy {NativeNui,Constants,MapToJson,INativeNuiCallback, AsrResult, KwsResult} from 'neonui'
import { PermissionUtils,DeviceUtil, Logger, DateTimeUtils } from 'wdKit';
import AudioCapturer from './AudioCapture';
import { common, Permissions } from '@kit.AbilityKit';
... ...
... ... @@ -71,14 +71,20 @@ export default class HuaweiAuth {
return;
}
Logger.info(TAG, 'get anonymousPhone is empty. ' + JSON.stringify(response));
Logger.infoOptimize(TAG, () => {
return 'get anonymousPhone is empty. ' + JSON.stringify(response)
});
fail("获取匿名手机号为空")
}).catch((err: BusinessError) => {
Logger.error(TAG, 'get anonymousPhone failed. ' + JSON.stringify(err));
Logger.errorOptimize(TAG, () => {
return 'get anonymousPhone failed. ' + JSON.stringify(err)
})
fail("获取匿名手机号失败")
})
} catch (err) {
Logger.error(TAG, 'get anonymousPhone fail. ' + JSON.stringify(err));
Logger.errorOptimize(TAG, () => {
return 'get anonymousPhone fail. ' + JSON.stringify(err)
})
fail("获取匿名手机号失败")
}
})
... ...
... ... @@ -63,15 +63,14 @@ struct MainPage {
}
setTimeout(() => {
// 这里延后,因为有可能是换端进入H5页面
setTimeout(() => {
StartupManager.sharedInstance().appReachMainPage()
}, 200)
webview.WebviewController.initializeWebEngine()
ComponentModule.preInitArticleWebTemplate(this.getUIContext())
}, 1000)
// 这里延后,因为有可能是换端进入H5页面
setTimeout(() => {
StartupManager.sharedInstance().appReachMainPage()
}, 700)
}, 500)
}
pageTransition() {
... ...