原文:http://stackoverflow.com/questions/14564918/android-ndk-release-build
Unless you have created the Application.mk or defined your application as debuggable inside the AndroidManifest.xml you don't have to do anything because by default the application's modules are compiled in release mode by the ndk-build script.
Otherwise, you can use the APP_OPTIM directive inside the Application.mk file:
APP_OPTIM := debug APP_PLATFORM := android-14 APP_STL := gnustl_static APP_ABI := armeabi armeabi-v7a
From android-ndk-r8d/docs/APPLICATION-MK.html file:
APP_OPTIM
This optional variable can be defined to either 'release' or
'debug'. This is used to alter the optimization level when
building your application's modules.
A 'release' mode is the default, and will generate highly
optimized binaries. The 'debug' mode will generate un-optimized
binaries which are much easier to debug.
Note that if your application is debuggable (i.e. if your manifest
sets the android:debuggable attribute to "true" in its <application>
tag), the default will be 'debug' instead of 'release'. This can
be overridden by setting APP_OPTIM to 'release'.
Note that it is possible to debug both 'release' and 'debug'
binaries, but the 'release' builds tend to provide less information
during debugging sessions: some variables are optimized out and
can't be inspected, code re-ordering can make stepping through
the code difficult, stack traces may not be reliable, etc...
相关推荐
3. **APP_OPTIM**:此选项用于指定编译模式,可设置为'release'或'debug'。'release'模式生成优化过的二进制文件,适合发布;'debug'模式生成便于调试的二进制文件。当你的应用配置为可调试(如AndroidManifest.xml...
2. **Android NDK 和 FFmpeg 编译** Android NDK (Native Development Kit) 是Google提供的一个工具集,允许开发者使用C/C++编写原生代码,并将其集成到Android应用中。编译FFmpeg需要NDK,这里使用的版本是r25c。 ...
在`build.gradle`文件中添加NDK相关配置,指定本地源代码路径,选择使用的构建类型(例如,Release或Debug),以及选择要支持的CPU架构。 在Android Studio中,还可以利用NDK的C++支持,享受IDE提供的代码补全、...
2. **交叉编译**:理解并配置NDK的交叉编译环境,包括设置ABI、构建类型(Debug或Release)等。 3. **依赖管理**:管理Qt与OpenSSL以及其他第三方库的依赖关系,确保所有库都能正确链接。 4. **错误调试**:在编译和...
Android编译系统使用了一套专门的编译工具,包括Java编译器、Android Asset Packaging Tool (AAPT)、Android NDK等。 一、编译系统的主要组成部分: 1. Java编译器:负责将Java源文件编译成.class字节码文件,然后...
接下来,**使用NDK进行开发**,你可以创建一个本地模块,通过`Android.mk`或`CMakeLists.txt`文件来编译C/C++代码。这些文件定义了编译规则和目标。`Android.mk`是旧的构建系统,而`CMakeLists.txt`是新引入的,支持...
在命令行中,导航到项目目录的`release`或`debug`子目录,然后运行以下命令: ``` path/to/androiddeployqt --gradle --input yourapp.pro --output . ``` 这将生成一个`android`子目录,其中包含`build....
7. 可能会配置编译选项,如目标设备架构和编译模式(如Release或Debug)。 通过使用这个一键搭建脚本,开发者或爱好者可以避免手动配置每一个组件,节省了大量时间,尤其对新手来说,这是一个非常有价值的资源,...
整个流程完成之后,也就意味着我们成功地在Android Studio中通过CMake和NDK编译并生成了所需的共享库,并且能够将其应用到相应的工程中去。这个过程对于提升Android应用性能、利用本地代码优势以及集成第三方库等...
3. **编译选项**:根据目标设备的配置,选择合适的编译目标(如armeabi-v7a或arm64-v8a)和编译模式(如release或debug)。 4. **编译脚本**:执行`source build/envsetup.sh`并调用`lunch`命令选择构建目标。 5. **...
Make Project`,NDK会根据Android.mk文件编译C/C++源码并生成`.a`格式的静态库文件,通常位于`app/build/intermediates/cmake/debug/obj/armeabi-v7a`或`app/build/intermediates/cmake/release/obj/armeabi-v7a`...
编译成功后,生成的.so库文件会位于`app/build/intermediates/cmake/debug/obj`目录下,.a静态库则位于`app/build/intermediates/cmake/release/obj`。 七、使用原生库 在Java或Kotlin代码中,通过`System....
ndk-build NDK_DEBUG=0可以编译出release版的二进制文件。 三、真机调试 真机调试是指在真实的Android设备上运行和调试应用程序。为了进行真机调试,需要配置Android环境,包括配置NDK_ROOT、SDK_ROOT和Java环境。...
此外,还需要特定的SDK(如Android SDK)和NDK(如Android NDK)用于移动平台的编译。 3. 配置环境:根据项目文档设置编译环境变量,例如指定编译目标(桌面还是移动设备)、编译配置(Release或Debug)等。 4. ...
3. **构建工具**: 提供编译和打包应用程序所需的工具,如`aapt`(Android Asset Packaging Tool)处理资源,`apkbuilder`用于构建APK文件,以及`proguard`进行代码混淆和优化。 4. **Android平台**: `android-sdk_r...
同时,需要在项目的build.gradle文件中指定本地库依赖,并设置编译模式(如Debug或Release)。通过NDK Build或CMakeLists.txt文件管理原生代码的构建过程。 四、JNI接口 JNI(Java Native Interface)是Java和原生...
这些脚本会根据NDK的环境变量,设置正确的编译选项,比如指定目标平台、编译模式(Release或Debug)、优化级别等。同时,为了兼容不同的Android版本和硬件架构,脚本可能还会涉及到动态链接库的分离构建,即为每个...
3. **构建配置**: 根据项目的README文件或build.gradle文件配置构建选项,如选择目标SDK版本、编译模式(Debug或Release)等。 4. **编译源码**: 使用Android Studio或命令行工具(如gradlew)执行编译命令,编译...
5. 创建解决方案配置:根据需要创建Debug和Release配置,分别对应Adb的调试和发行版本。 编译Adb源码: 1. 在VS2012中,选择相应的解决方案配置和目标平台(通常是x86或x64)。 2. 点击“构建”或使用快捷键编译...
这可能涉及到指定目标API级别(如Android 4.4对应的是API 19)、编译模式(如Release或Debug)以及armeabi-v7a等目标架构。 4. **修改Makefile**:根据Android项目需求,可能需要修改Live555的Makefile,添加适当的...