Change log
1.4.0 (2018-03-05)
- The Python standard library is now loaded from compiled .pyc files by default (see
documentation). As a result, startup of a minimal app is now 20-30%
faster with Python 2, and 50-60% faster with Python 3. (Python 3 startup is still slower than
Python 2, but only by 15-20%.)
sys.stdin
now returns EOF rather than blocking. If you want to run some code which takes
interactive text input, you may find the console app template useful.
- The
write
method of sys.stdout
and sys.stderr
now returns the character count.
- Very long lines written to
sys.stdout
and sys.stderr
are now split into slightly smaller
fragments, to allow for the shorter Logcat message length limit in recent versions of Android.
- Fix a multi-threading deadlock.
- Apps built with an unlicensed copy of the SDK are now limited to a run-time of 5 minutes.
1.3.1 (2018-01-26)
- Static proxy generator now handles non-ASCII source files correctly (#27).
1.3.0 (2018-01-15)
- The following things now return reasonable values:
sys.argv
, sys.executable
, and
platform.platform()
.
- The following modules now work correctly:
sqlite3
, ssl
(#23), and tempfile
. (Requires python.version
to be 2.7.14 or 3.6.3.)
sys.stdout
and sys.stderr
are now directed to the Android Logcat.
- Add
extractPackages
, and use it by default for certifi.
1.2.0 (2018-01-07)
- Python source directory locations can now be configured in the
sourceSets
block, just like
Java.
getClass
, when called on a Java object, now returns the Java object class rather than the
proxy object class.
- Generated
static_proxy
Java files no longer produce build warnings.
- Ensure pip is re-run if local requirements or wheel file changes.
- Add Python 2.7.14.
- Include
distutils
and doctest
modules (#20). (Requires python.version
to be 2.7.14 or
3.6.3.)
1.1.0 (2017-12-22)
- Add Python 3.6 runtime (#1).
buildPython
can now be Python 2.7 or 3.3+ (#2).
- Support configuration in product flavors (#6).
- Improve startup performance.
0.6.1 (2017-12-11)
- Apps can now use certain native packages, including NumPy (#14), as well as pure-Python packages which aren’t
available from PyPI in wheel format. To support this, the
build.gradle
syntax for calling pip
install
has been changed: please see the documentation.
- Zero-initialized Java arrays can now be created in Python, by passing an integer to the array
constructor rather than a sequence.
0.5.0 (2017-11-04)
- Support Android Gradle plugin versions 2.2 (#9) and 3.0 (#3).
- Increase minimum API level to 15. This is the default for new apps in Android Studio 3.0, and
covers 99% of active devices.
- Fix array store type-checking on old Android versions.
- Add
java.detach
, and fix several multi-threading issues.
0.4.5 (2017-10-26)
- Remove dependency on
six
(#13).
0.4.4 (2017-10-24)
- Fix implicit relative imports (#12).
0.4.3 (2017-09-21)
- Improve startup performance.
0.4.0 (2017-09-11)
- Add dynamic_proxy and static_proxy.
0.3.0 (2017-07-28)
- Reflect Java class hierarchy in Python.
- Represent Java exceptions with their actual classes.
- Support Python unbound method syntax when calling Java methods, i.e.
ClassName.method(instance, args)
.
- Release GIL when calling Java constructors.
0.2.0 (2017-07-04)
- Add import hook.
- Allow nested classes to be accessed as attributes.
- Improve performance.