Optimize py init

pull/123/head
FongMi 3 years ago
parent 05a7fb3c26
commit 3670d41af5
  1. 6
      app/src/main/java/com/fongmi/android/tv/api/PyLoader.java
  2. 13
      pyramid/src/main/java/com/undcover/freedom/pyramid/Loader.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);

@ -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<PyObject> dependencies = app.callAttr("getDependence", pySpider).asList();

Loading…
Cancel
Save