NDK 的helloworld步奏

1. helloworld.c

#include <string.h>

#include <jni.h>

/*

 * Class:     com_example_ndk_NativeHelloworld

 * Method:    hello

 * Signature: ()Ljava/lang/String;

 */

jstring JNICALL Java_com_example_ndk_NativeHelloworld_hello(JNIEnv * env, jclass thiz) {

    return (*env)->NewStringUTF(env, "HelloWorld! I am from JNI !");

}

2.Android.mk

LOCAL_PATH := $(call my-dir)  

include $(CLEAR_VARS)  

#LOCAL_MODULE

LOCAL_MODULE    := hello  

LOCAL_SRC_FILES := helloworld.c  

include $(BUILD_SHARED_LIBRARY) 

3.NativeHelloworld.java

package com.example.ndk;

import android.util.Log;

public class NativeHelloworld {
    public static native String hello();

    static {
        Log.i("NativeClass","before load library");
        System.loadLibrary("hello");//注意这里为自己指定的.so文件,无lib前缀,亦无后缀
        Log.i("NativeClass","after load library");
    }
}

4.用ndk在项目目录里面编译出hello.so

本人是在linux系统下编译,放到eclipse的libs/armeabi下

5.调用方法,运行

时间: 2024-11-25 16:43:16

NDK 的helloworld步奏的相关文章

cocos2dx创建win32项目一般步奏

1.导入一个新项目步奏:解决方案:右键->添加->添加现有项目->添加依赖项目libCocoStudioD:\work\CannonDefender\cocos2d\cocos\editor-support\cocostudio\proj.win32添加依赖项目libExtensionsD:\work\CannonDefender\cocos2d\extensions\proj.win32添加依赖项目libGUID:\work\CannonDefender\cocos2d\cocos\u

IDEA Maven-SSM项目搭建 详细步奏

一.个人编写步奏,容易上手.分享一下,觉得实用的话可以收藏 1.创建maven项目选择模板 2.创建好后导入jar包 3.创建java.resources.webapp包  没有就创建 4.然后在resources包下创建applicationContent.xml 按照我给的applicationContext.xml文件的步奏写下去 需要什么去补什么 例如: 4.1  需要配置文件 然后去创建文件 <!-- 1.1 引入配置文件--> <context:property-placeh

手动调用NDK编译HelloWorld

首先,你得有NDK(木有的自行搜索) /home/xxxx/tools/android-ndk-r12b 准备好你的HelloWorld程序源码: #include<stdio.h> int main(void) { printf("Hello World!\n"); return 0; } 编译之: ~/tools/android-ndk-r12b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin

linux 生成免密登陆步奏

1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在服务器A生成公钥和私钥 在服务器A上输入如下命令: ssh-keygen -t rsa 过程中按三次回车,执行结束如下图: 然后我们进入/root/.ssh/文件夹,查看文件夹的内容,如下所示: 其中 id_rsa为私钥 id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制. 1.2 在服务器B配置服务器A生成的公钥 打开服务器B,将刚刚在服务器A内复制的内容追

php配置步奏

web运行大致流程 ?浏览器输入地址,回车(发送请求) ?根据规则找到对应web服务器.规则如下: ?首先在本机hosts文件中找对应IP ?如果hosts中没有找到,则到互联网上找对应IP ?如果还是没有找到,则终止请求,返回“找不到服务器”提示 ?web服务器取得对应文件 ?如有需要,对该文件进行一定的处理(比如php代码执行) ?将文件(或执行结果文件)返回给浏览器(返回应答) ?浏览器接收到文件 ?浏览器处理文件(显示/执行) hosts文件位置: window操作系统目录/system

实现国际化的步奏

code实现国际话 1,添加中文简体. 2.CFBundleDisplayName 你的软件显示名称 实现国际话 最好在这里更改 以便适配,同理中文键入下面语句即可. 3.自己创建 newFile -->resource -->最后一个 命名为Localizable 右侧 左侧 4.在控制器中的使用 二.xib实现国际化 右边左边

Centos7 配置网络步奏详解

编辑网卡配置文件 vi /etc/sysconfig/network-script/ifcfg-ens01 备注:这里的ens01不是所有系统都叫这个,有的可能叫其他名字 也可以输入vi /etc/sysconfig/network-script/ifcfg-e,然后tab补全 onboot改成yes 配置完成之后一定要的记得重启网络服务 Service network restart

JDBC编程步奏、问题总结(一)

jdbc编程步骤: 1. 加载数据库驱动 2. 创建并获取数据库链接 3. 创建jdbc statement对象 4. 设置sql语句 5. 设置sql语句中的参数(使用preparedStatement) 6. 通过statement执行sql并获取结果 7. 对sql执行结果进行解析处理 8. 释放资源(resultSet.preparedstatement.connection) jdbc问题总结如下: 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可

实现软件版本新特性的具体步奏

1.版本新特性: 控制器的跳转不能使用push 和modal, push: 采用的时栈的方式,无法销毁之前的控制器 modal:无法销毁之前的控制器 应该使用rootViewController 2.实现过程: ①设置滚动视图,一般是整个界面 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <span style="color: r