-
Notifications
You must be signed in to change notification settings - Fork 0
/
LIMITATIONS
13 lines (13 loc) · 1.29 KB
/
LIMITATIONS
1
2
3
4
5
6
7
8
9
10
11
12
13
* It does not look like dex files can be moved to external (FUSE/FAT) storage, because this somehow conflicts
with use of memory-mapping by VM (e.g. the "file is in use" thing).
* Any attempt to load class from jar/aar on the main thread can result in nice, hot, guaranteed ANR.
* Loading from Ivy native repositories does not work, because Android SAX parser does not support namespace prefixes
(which are extensively used in that format). "Replace the parser" is easier to be said than done.
* Dalvik/ART do not support class unloading, which means that there won't be any classloader leaks, lol - the VM simply
has to be killed/restarted each time new versions of classes are loaded. It also has to be killed routinely to avoid
memory shortage because of previously loaded scripts.
* Already compiled script/jar dex files will be loaded on next stratup (unless removed). That is - no recompilation,
no staleness detection, compiled once - used until removed.
* There does not seem to be reliable way of intercepting ALL exceptions from scripts, due to availability of extra threads.
In practice setting UncaughtExceptionHandler on the main thread and script ThreadGroup is usually enought, but scripts, which
overwrite those handlers as well as use custom thread groups may still cause the service to visibly crash.