You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.9 KiB
60 lines
1.9 KiB
|
|
// Set when building only part of the abis in the apk. |
|
def abiFiltersForWrapScript = [] |
|
|
|
android { |
|
buildTypes { |
|
profiling { |
|
initWith debug |
|
externalNativeBuild { |
|
cmake { |
|
// cmake Debug build type uses -O0, which makes the code slow. |
|
arguments "-DCMAKE_BUILD_TYPE=Release" |
|
} |
|
} |
|
packagingOptions { |
|
// Contain debug info in the libraries. |
|
doNotStrip "**.so" |
|
|
|
// Exclude wrap.sh for architectures not built. |
|
if (abiFiltersForWrapScript) { |
|
def exclude_abis = ["armeabi", "armeabi-v7a", "arm64-v8a", |
|
"x86", "x86_64", "mips", "mips64"] |
|
.findAll{ !(it in abiFiltersForWrapScript) } |
|
.collect{ "**/" + it + "/wrap.sh" } |
|
excludes += exclude_abis |
|
} |
|
} |
|
|
|
// Add lib/xxx/wrap.sh in the apk. This is to enable java profiling on Android O |
|
// devices. |
|
sourceSets { |
|
main { |
|
resources { |
|
srcDir { |
|
"profiling_apk_add_dir" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
def writeWrapScriptToFullyCompileJavaApp(wrapFile) { |
|
wrapFile.withWriter { writer -> |
|
writer.write('#!/system/bin/sh\n') |
|
writer.write('\$@\n') |
|
} |
|
} |
|
|
|
task createProfilingApkAddDir { |
|
for (String abi : ["armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64", "mips", "mips64"]) { |
|
def dir = new File("app/profiling_apk_add_dir/lib/" + abi) |
|
dir.mkdirs() |
|
def wrapFile = new File(dir, "wrap.sh") |
|
writeWrapScriptToFullyCompileJavaApp(wrapFile) |
|
println "write file " + wrapFile.path |
|
} |
|
} |
|
|
|
|