From 3670d41af5c07a5afced1e381da6fd8170acb949 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 13 Oct 2022 01:44:13 +0800 Subject: [PATCH] Optimize py init --- .../java/com/fongmi/android/tv/api/PyLoader.java | 6 ++---- .../java/com/undcover/freedom/pyramid/Loader.java | 13 ++++++------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/api/PyLoader.java b/app/src/main/java/com/fongmi/android/tv/api/PyLoader.java index d1f939308..4b89a638f 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/PyLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/PyLoader.java @@ -27,8 +27,6 @@ public class PyLoader { private void init() { try { loader = Class.forName("com.undcover.freedom.pyramid.Loader").newInstance(); - Method method = loader.getClass().getMethod("init", Context.class); - method.invoke(loader, App.get()); } catch (Exception e) { e.printStackTrace(); } @@ -38,8 +36,8 @@ public class PyLoader { try { if (spiders.containsKey(key)) return spiders.get(key); String extend = Uri.parse(ext).getQueryParameter("extend"); - Method method = loader.getClass().getMethod("spider", String.class); - Spider spider = (Spider) method.invoke(loader, ext); + Method method = loader.getClass().getMethod("spider", Context.class, String.class); + Spider spider = (Spider) method.invoke(loader, App.get(), ext); extend = extend == null ? "" : extend; spider.init(App.get(), extend); spiders.put(key, spider); diff --git a/pyramid/src/main/java/com/undcover/freedom/pyramid/Loader.java b/pyramid/src/main/java/com/undcover/freedom/pyramid/Loader.java index b53b6855b..347b886f5 100644 --- a/pyramid/src/main/java/com/undcover/freedom/pyramid/Loader.java +++ b/pyramid/src/main/java/com/undcover/freedom/pyramid/Loader.java @@ -14,15 +14,14 @@ public class Loader { private PyObject app; private String cache; - public void init(Context context) { - new Thread(() -> { - if (!Python.isStarted()) Python.start(new AndroidPlatform(context)); - cache = context.getCacheDir().getAbsolutePath(); - app = Python.getInstance().getModule("app"); - }).start(); + private void init(Context context) { + if (!Python.isStarted()) Python.start(new AndroidPlatform(context)); + cache = context.getCacheDir().getAbsolutePath(); + app = Python.getInstance().getModule("app"); } - public Spider spider(String ext) { + public Spider spider(Context context, String ext) { + if (app == null) init(context); String path = app.callAttr("downloadPlugin", cache, ext).toString(); PyObject pySpider = app.callAttr("loadFromDisk", path); List dependencies = app.callAttr("getDependence", pySpider).asList();