mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
The Android embedder had been using a JNI call to get the observatory URI from DartServiceIsolate. This call was not thread safe and was redundant with the server status callback mechanism used on iOS.
48 lines
1.2 KiB
C++
48 lines
1.2 KiB
C++
// Copyright 2013 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_
|
|
#define SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_
|
|
|
|
#include <jni.h>
|
|
|
|
#include "flutter/common/settings.h"
|
|
#include "flutter/fml/macros.h"
|
|
#include "flutter/runtime/dart_service_isolate.h"
|
|
|
|
namespace flutter {
|
|
|
|
class FlutterMain {
|
|
public:
|
|
~FlutterMain();
|
|
|
|
static bool Register(JNIEnv* env);
|
|
|
|
static FlutterMain& Get();
|
|
|
|
const flutter::Settings& GetSettings() const;
|
|
|
|
private:
|
|
const flutter::Settings settings_;
|
|
DartServiceIsolate::CallbackHandle observatory_uri_callback_;
|
|
|
|
FlutterMain(flutter::Settings settings);
|
|
|
|
static void Init(JNIEnv* env,
|
|
jclass clazz,
|
|
jobject context,
|
|
jobjectArray jargs,
|
|
jstring bundlePath,
|
|
jstring appRootPath,
|
|
jstring engineCachesPath);
|
|
|
|
void SetupObservatoryUriCallback(JNIEnv* env);
|
|
|
|
FML_DISALLOW_COPY_AND_ASSIGN(FlutterMain);
|
|
};
|
|
|
|
} // namespace flutter
|
|
|
|
#endif // SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_
|