Linux命令行下编译Android NDK的示例代码

这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用。所以花了点时间研究Android NDK,网上的资料都是讲IDE里的编译方法,这里记录一下命令行下的编译方法,供有需要的朋友参考。

这里以编译hello-gl2为例:

0.安装Android NDK/SDK,设置PATH变量(根据具体情况调整)

PATH=$PATH:/work/android/android-sdk-linux/platform-tools/:/work/android/android-sdk-linux/tools/
PATH=$PATH:/work/android/android-ndk-r8/build/tools:/work/android/android-ndk-r8/
export PATH

1.用android创建一个新工程

cd /work/android/android-ndk-r8/samples
android create project -n Hello -p hello -a Main -k com.hello -t 1

创建这个工程的目的是产生ant编译需要的文件:

build.xml
local.properties
project.properties

2.现在需要编译那个NDK例子,就把这几个文件拷贝到对应的目录下。这里编译hello-gl2:

[lixianjing@lixianjing samples]$ cp hello/build.xml hello-gl2/
[lixianjing@lixianjing samples]$ cp hello/local.properties hello-gl2/
[lixianjing@lixianjing samples]$ cp hello/project.properties hello-gl2/

3.然后编译,先用ndk-build编译原生代码,再用ant debug生产apk。

[lixianjing@lixianjing hello-gl2]$ ndk-build
[lixianjing@lixianjing hello-gl2]$ ant debug

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Android编译的注意事项

    1.make bootimage  编译生成kernel.img和boot.img的整合 会在out目录下生成以下文件. Target ram disk: out/target/product/em_t8350_emmc/ramdisk.img Target boot image: out/target/product/em_t8350_emmc/boot.img 2.清除kernel的所有.o文件: rm -rf out/product/em_t8350_emmc/obj/KERNEL_OBJ

  • 下载、编译、运行android 7.1系统详解(ubuntu 16.0.4)

    Android 7的系统版本新增的很多的新功能,比如说任务处理功能,允许用户双击"最近"按钮去快速切换到自己上一次使用的应用程序中.同时,"最近"菜单中还有一个"清除全部"按钮.再比如说新增了省流量功能,在接近用户计费周期末,或是流量包本身较小的情况下,减少应用消耗的数据流量.在启用这一模式时,系统将拦截后台的数据使用,并在可能的情况下减少前台运行应用使用的数据量,例如限制你看视频,下调画质,以及减少缓存等.当然你也可以对个别应用不进行限制,痛快

  • Studio 编译报错:compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.的解决办法

    报错翻译: compileSdkVersion android-24"需要JDK 1.8或更高版本编译. 报错现象如下图: 原因:studio默认选择编译的版本为1.8,而当前jdk环境不是1.8.  解决方法: 1. 在build.gradle中查看编译版本 2.查看studio设置,修改studio设置的jdk设置. 方法一:修改JDK,更改为JDK1.8, 方法二:更改studio编译版本.如下图: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价

  • Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库

    Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16. step1:创建一个包含C++的项目 其他默认就可以了. C++ Standard 指定编译库的环境,其中Toolchain Default使用的是默认的CMake环境:C++ 11也就是C++环境.两种环境都可以编库,至于区别,后续会跟进,当前博文使用的是CMake环境. Exceptions Support 如果选中复选框,则表示当前项目支持C++异常处理,如果支持,在项目Module级别的build.g

  • android开发实践之ndk编译命令简单示例

    前言 Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别.加载和运行的库或者应用程序. 默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译.其实你也是可以在任意目录下去编译native代码

  • 完美解决Android Studio集成crashlytics后无法编译的问题

    问题描述: 在用fabric集成后编译出现如下错误, Error:Cause: hostname in certificate didn't match: <maven.fabric.io> != <*.motili.com> OR <*.motili.com> OR <motili.com> build.gradle部分脚本(fabric插件自动生成的): buildscript { repositories { maven { url 'https://

  • Ubantu16.04进行Android 8.0源码编译的流程

    分为4个流程 源码下载 构建编译环境 编译源码 运行 源码下载 安装git并且配置 //安装git sudo apt-get install git //配置git名称和邮箱 git config --global user.name "your name" git config --global user.email XXX@XXX.com 创建repo的bin目录和源码目录 1.创建repo的bin目录 midir ~/bin 2.创建源码目录 midir ~/source 安装r

  • Android反编译程序整理详解

    做Android开发的程序员对反编译都比较痛恨,不想让自己的劳动成果成了别人的,反编译主要的目的在于学习.利用反编译进行相关的汉化或修改,都是不道德的. 将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class,利用后者再得到大家垂涎已久的java文件. 下面分别针对这三种格式的文件进行反编译处理: 1.对xml文件进行包的解析,一般有两种方式:apktool(推荐)和AXMLPrinter2.jar; 2.从dex到c

  • Gradle编译打包Android apk详细介绍

    Gradle编译打包Android apk详细介绍 理解Gradle构建过程,解读Android Gradle插件的配置 阅读本文一定是要使用过Gradle生成apk,文中不会讲如何安装运行Gradle,如有需要可先看文末的参考文章. APK包是一个ZIP压缩包,从Java源代码.资源文件到生成这个APK,经过了编译打包一系列特定的过程,SDK文档(/docs/tools/building/index.html)中找到.而这一系列特定的过程,重复繁琐,构建工具(build tool)就是来流程化

  • Android应用程序(APK)的编译打包过程

    流程图: 我们重点关心的是(1)这个过程的输入是什么?(2)这个过程的输出是什么?(3)这个过程使用了什么工具?至于使用什么参数,可以自己去看对应命令的帮助文件,或者在网上搜索,这不是本文的重点. aapt-> aidl -> javac-> dx(dex)-> apkbuilder-> jarsigner-> zipalign  步骤中提到的工具如下表: 名称 功能介绍 在操作系统中的路径 aapt Android资源打包工具 ${ANDROID_SDK_HOME}/

随机推荐