mirror of
https://github.com/python/cpython.git
synced 2024-11-26 19:34:19 +08:00
Increase minimum Android API level to 24 (#125946)
Minimum Android API level has been increased to 24 (Android 7.0).
This commit is contained in:
parent
b08570c90e
commit
371c537dff
@ -3,7 +3,7 @@
|
|||||||
: ${HOST:?} # GNU target triplet
|
: ${HOST:?} # GNU target triplet
|
||||||
|
|
||||||
# You may also override the following:
|
# You may also override the following:
|
||||||
: ${api_level:=21} # Minimum Android API level the build will run on
|
: ${api_level:=24} # Minimum Android API level the build will run on
|
||||||
: ${PREFIX:-} # Path in which to find required libraries
|
: ${PREFIX:-} # Path in which to find required libraries
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,13 +32,24 @@ val PYTHON_VERSION = file("$PYTHON_DIR/Include/patchlevel.h").useLines {
|
|||||||
|
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
val androidEnvFile = file("../../android-env.sh").absoluteFile
|
||||||
|
|
||||||
namespace = "org.python.testbed"
|
namespace = "org.python.testbed"
|
||||||
compileSdk = 34
|
compileSdk = 34
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "org.python.testbed"
|
applicationId = "org.python.testbed"
|
||||||
minSdk = 21
|
|
||||||
|
minSdk = androidEnvFile.useLines {
|
||||||
|
for (line in it) {
|
||||||
|
"""api_level:=(\d+)""".toRegex().find(line)?.let {
|
||||||
|
return@useLines it.groupValues[1].toInt()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw GradleException("Failed to find API level in $androidEnvFile")
|
||||||
|
}
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
|
|
||||||
versionCode = 1
|
versionCode = 1
|
||||||
versionName = "1.0"
|
versionName = "1.0"
|
||||||
|
|
||||||
@ -52,7 +63,6 @@ android {
|
|||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
val androidEnvFile = file("../../android-env.sh").absoluteFile
|
|
||||||
ndkVersion = androidEnvFile.useLines {
|
ndkVersion = androidEnvFile.useLines {
|
||||||
for (line in it) {
|
for (line in it) {
|
||||||
"""ndk_version=(\S+)""".toRegex().find(line)?.let {
|
"""ndk_version=(\S+)""".toRegex().find(line)?.let {
|
||||||
|
@ -34,9 +34,12 @@ typedef struct {
|
|||||||
int pipe[2];
|
int pipe[2];
|
||||||
} StreamInfo;
|
} StreamInfo;
|
||||||
|
|
||||||
|
// The FILE member can't be initialized here because stdout and stderr are not
|
||||||
|
// compile-time constants. Instead, it's initialized immediately before the
|
||||||
|
// redirection.
|
||||||
static StreamInfo STREAMS[] = {
|
static StreamInfo STREAMS[] = {
|
||||||
{stdout, STDOUT_FILENO, ANDROID_LOG_INFO, "native.stdout", {-1, -1}},
|
{NULL, STDOUT_FILENO, ANDROID_LOG_INFO, "native.stdout", {-1, -1}},
|
||||||
{stderr, STDERR_FILENO, ANDROID_LOG_WARN, "native.stderr", {-1, -1}},
|
{NULL, STDERR_FILENO, ANDROID_LOG_WARN, "native.stderr", {-1, -1}},
|
||||||
{NULL, -1, ANDROID_LOG_UNKNOWN, NULL, {-1, -1}},
|
{NULL, -1, ANDROID_LOG_UNKNOWN, NULL, {-1, -1}},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -87,6 +90,8 @@ static char *redirect_stream(StreamInfo *si) {
|
|||||||
JNIEXPORT void JNICALL Java_org_python_testbed_PythonTestRunner_redirectStdioToLogcat(
|
JNIEXPORT void JNICALL Java_org_python_testbed_PythonTestRunner_redirectStdioToLogcat(
|
||||||
JNIEnv *env, jobject obj
|
JNIEnv *env, jobject obj
|
||||||
) {
|
) {
|
||||||
|
STREAMS[0].file = stdout;
|
||||||
|
STREAMS[1].file = stderr;
|
||||||
for (StreamInfo *si = STREAMS; si->file; si++) {
|
for (StreamInfo *si = STREAMS; si->file; si++) {
|
||||||
char *error_prefix;
|
char *error_prefix;
|
||||||
if ((error_prefix = redirect_stream(si))) {
|
if ((error_prefix = redirect_stream(si))) {
|
||||||
|
@ -24,10 +24,6 @@ STREAM_INFO = [("stdout", "I", 1), ("stderr", "W", 2)]
|
|||||||
|
|
||||||
|
|
||||||
# Test redirection of stdout and stderr to the Android log.
|
# Test redirection of stdout and stderr to the Android log.
|
||||||
@unittest.skipIf(
|
|
||||||
api_level < 23 and platform.machine() == "aarch64",
|
|
||||||
"SELinux blocks reading logs on older ARM64 emulators"
|
|
||||||
)
|
|
||||||
class TestAndroidOutput(unittest.TestCase):
|
class TestAndroidOutput(unittest.TestCase):
|
||||||
maxDiff = None
|
maxDiff = None
|
||||||
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
The minimum supported Android version is now 7.0 (API level 24).
|
Loading…
Reference in New Issue
Block a user