以下在 Ubuntu下 编译一个 c 语言 hello world 并在 android 手机或模拟器上执行

进入程序位置

cd  ~/pnp5/jni

有三个文件 main.c Android.mk, Application.mk, 内容:

$ cat main.c 

#include <stdio.h>

int main (void)
{ printf("hello world");
return 0;
} ~/pnp5/jni$ cat Android.mk LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS) LOCAL_SRC_FILES:= \
main.c LOCAL_MODULE:= pnp5
LOCAL_MODULE_TAGS := optional include $(BUILD_EXECUTABLE) ~/pnp5/jni$ cat Application.mk
APP_ABI := all

注:Application.mk 能够没有(怎样你仅仅须要arm程序)

在当前文件夹执行 ndk-build

( 假设没有ndk,去下载一个)

~/pnp5/jni$ ~/android-ndk-r10d/ndk-build
[arm64-v8a] Compile : pnp5 <= main.c
[arm64-v8a] Executable : pnp5
[arm64-v8a] Install : pnp5 => libs/arm64-v8a/pnp5
[x86_64] Compile : pnp5 <= main.c
[x86_64] Executable : pnp5
[x86_64] Install : pnp5 => libs/x86_64/pnp5
[mips64] Compile : pnp5 <= main.c
[mips64] Executable : pnp5
[mips64] Install : pnp5 => libs/mips64/pnp5
[armeabi-v7a] Compile thumb : pnp5 <= main.c
[armeabi-v7a] Executable : pnp5
[armeabi-v7a] Install : pnp5 => libs/armeabi-v7a/pnp5
[armeabi] Compile thumb : pnp5 <= main.c
[armeabi] Executable : pnp5
[armeabi] Install : pnp5 => libs/armeabi/pnp5
[x86] Compile : pnp5 <= main.c
[x86] Executable : pnp5
[x86] Install : pnp5 => libs/x86/pnp5
[mips] Compile : pnp5 <= main.c
[mips] Executable : pnp5
[mips] Install : pnp5 => libs/mips/pnp5

发如今 与jni 同一级别的 libs 文件夹生成各种 target 的 程序。

在模拟器(真机)上执行

用 adb devices, 检查android是否启动

用 adb push pnp5 data/

用 adb shell 进入设备,而后执行 cd data; chmod 777 pnp5; ./pnp5

hello world 就打印出来了

最简单 NDK 样例的更多相关文章

  1. Android中关于JNI 的学习(零)简单的样例,简单地入门

    Android中JNI的作用,就是让Java可以去调用由C/C++实现的代码,为了实现这个功能.须要用到Anrdoid提供的NDK工具包,在这里不讲怎样配置了,好麻烦,配置了好久. . . 本质上,J ...

  2. Introspector(内省)简单演示样例 与 简单应用

    简单演示样例: package com.asdfLeftHand.test; import java.beans.BeanDescriptor; import java.beans.BeanInfo; ...

  3. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  4. Thrift的安装和简单演示样例

    本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述                                           ...

  5. [hadoop系列]Pig的安装和简单演示样例

    inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...

  6. 一则简单演示样例看Oracle的“无私”健壮性

    Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  7. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  8. Android通过startService播放背景音乐简单演示样例

    关于startService的基本使用概述及其生命周期可參见博客<Android中startService的使用及Service生命周期>. 本文通过播放背景音乐的简单演示样例,演示sta ...

  9. 使用CEF(二)— 基于VS2019编写一个简单CEF样例

    使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...

随机推荐

  1. CSS3 自动旋转

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. tomcat添加访问的ip限制

    在如下位置添加如下代码: 代码: <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=&q ...

  3. CREATE RULE - 定义一个新的重写规则

    SYNOPSIS CREATE [ OR REPLACE ] RULE name AS ON event TO table [ WHERE condition ] DO [ INSTEAD ] { N ...

  4. Java C

    先说一下自己叫什么,免得面试的人张冠李戴. 介绍自己有几个方面:1学什么专业的那方面学的过硬,可以说的具体点. 2以前做过什么.(这家公司要你肯定是和你的经历有关.) 3现在来这家公司的目的是什么(当 ...

  5. mysql中删除已有字段的唯一性约束?

    username varchar() NOT NULL unique 如何把unique约束删除? 解决方法:在你建好的表...右击 ——索引/索引类型——把username唯一键去掉

  6. (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d

    出现redis错误: (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to p ...

  7. mysql数据库导出导入

    MYSQL的命令行模式设置: 我的电脑->属性->高级系统设置->环境变量->系统变量-> 选择Path,在后面添加“;path\mysql\bin;”其中path为MY ...

  8. 关于Django中,实现序列化的几种不同方法

    前言 关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作. 今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法 创建 ...

  9. Qt笔记——连接第三方库&用libZPlay库获取音频文件的艺术家、专辑等信息

    连接第三方库libZPlay 概述 需要.a/.lib ,.h , .dll 三个文件 官网下载 http://libzplay.sourceforge.net/ import .h 链接 .a 放入 ...

  10. HDU 2442

    状态压缩DP , 和HDU2280极其相似 #include <cstdio> #include <cstring> #include <iostream> usi ...