1818#include " flutter/fml/size.h"
1919#include " flutter/lib/ui/plugins/callback_cache.h"
2020#include " flutter/runtime/dart_vm.h"
21+ #include " flutter/runtime/start_up.h"
2122#include " flutter/shell/common/shell.h"
2223#include " flutter/shell/common/switches.h"
2324#include " third_party/dart/runtime/include/dart_tools_api.h"
@@ -61,8 +62,7 @@ void FlutterMain::Init(JNIEnv* env,
6162 jobjectArray jargs,
6263 jstring kernelPath,
6364 jstring appStoragePath,
64- jstring engineCachesPath,
65- jlong initTimeMillis) {
65+ jstring engineCachesPath) {
6666 std::vector<std::string> args;
6767 args.push_back (" flutter" );
6868 for (auto & arg : fml::jni::StringArrayToVector (env, jargs)) {
@@ -72,10 +72,6 @@ void FlutterMain::Init(JNIEnv* env,
7272
7373 auto settings = SettingsFromCommandLine (command_line);
7474
75- int64_t init_time_micros = initTimeMillis * 1000 ;
76- settings.engine_start_timestamp =
77- std::chrono::microseconds (Dart_TimelineGetMicros () - init_time_micros);
78-
7975 // Restore the callback cache.
8076 // TODO(chinmaygarde): Route all cache file access through FML and remove this
8177 // setter.
@@ -155,14 +151,27 @@ void FlutterMain::SetupObservatoryUriCallback(JNIEnv* env) {
155151 });
156152}
157153
154+ static void RecordStartTimestamp (JNIEnv* env,
155+ jclass jcaller,
156+ jlong initTimeMillis) {
157+ int64_t initTimeMicros =
158+ static_cast <int64_t >(initTimeMillis) * static_cast <int64_t >(1000 );
159+ flutter::engine_main_enter_ts = Dart_TimelineGetMicros () - initTimeMicros;
160+ }
161+
158162bool FlutterMain::Register (JNIEnv* env) {
159163 static const JNINativeMethod methods[] = {
160164 {
161165 .name = " nativeInit" ,
162166 .signature = " (Landroid/content/Context;[Ljava/lang/String;Ljava/"
163- " lang/String;Ljava/lang/String;Ljava/lang/String;J )V" ,
167+ " lang/String;Ljava/lang/String;Ljava/lang/String;)V" ,
164168 .fnPtr = reinterpret_cast <void *>(&Init),
165169 },
170+ {
171+ .name = " nativeRecordStartTimestamp" ,
172+ .signature = " (J)V" ,
173+ .fnPtr = reinterpret_cast <void *>(&RecordStartTimestamp),
174+ },
166175 };
167176
168177 jclass clazz = env->FindClass (" io/flutter/embedding/engine/FlutterJNI" );
0 commit comments