cygwin安装,NDK配置,samples下demo调试,以及手写测试程序
来源:互联网 发布:数据截取 威布尔分布 编辑:程序博客网 时间:2024/06/05 18:40
1、安装cygwin
在http://www.cygwin.cn/下载最新版cygwin安装(在其它站点下载的cygwin的iso文件,安装后可能会由于版本过低而不能正常使用)
2、安装NDK
在 http://developer.android.com/tools/sdk/ndk/index.html 下载ndk包,直接解压即可使用
3、配置NDK
在cygwi安装目录下进入/home/用户名/,打开.bash_profile文件,添加环境变量
NDKROOT=/cygdrive/d/environment/android-ndk-r8bexport NDKROOT
4、调试samples下demo
打开cygwin,进入ndk中samples下对应的工程目录
cd $NDKROOTcd samples/hello-jni/jni
将目录下的.c文件编译为.so文件
$NDKROOT/ndk-build
执行成功后会在工程根目录下生成libs,obj两个文件夹,文件夹中包含.so文件
5、将项目导入 eclipse中就可以正常运行
6、手写测试程序
(1)eclipse中创建一个新的android工程,并新建一个TestJNI类:
package com.testjni;public class TestJNI {public native void setStr(String str);public native String getStr();static {System.loadLibrary("jnitest");}}
(2) 打开cmd界面,进入工程中bin目录下,class文件所在路径,使用javah命令来生成对应的.h文件,.h文件在当前目录下:
(3)在工程根目录下创建一个jni文件夹,在jni中新建一个TestJNI.c文件,将.h文件中对应的方法拷贝到.c文件中,并对方法进行实现
com_testjni_TestJNI.h
#ifdef __cplusplusextern "C" {#endif/* * Class: com_testjni_TestJNI * Method: setStr * Signature: (Ljava/lang/String;)V */JNIEXPORT void JNICALL Java_com_testjni_TestJNI_setStr (JNIEnv *, jobject, jstring);/* * Class: com_testjni_TestJNI * Method: getStr * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_testjni_TestJNI_getStr (JNIEnv *, jobject);#ifdef __cplusplus}#endif#endif
TestJNI.c
#include <stdio.h>#include <jni.h>#include <string.h>/* * Class: com_testjni_TestJNI * Method: setStr * Signature: (Ljava/lang/String;)V */JNIEXPORT void JNICALL Java_com_testjni_TestJNI_setStr(JNIEnv * env, jobject obj, jstring str){};/* * Class: com_testjni_TestJNI * Method: getStr * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_testjni_TestJNI_getStr(JNIEnv * env, jobject obj){return (*env)->NewStringUTF(env, "Hello from JNI !");};
7、在.c文件相同目录下新建一个Android.mk文件
LOCAL_MODULE := jnitest;生成的.so文件的名称
# Copyright (C) 2009 The Android Open Source Project## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := jnitestLOCAL_SRC_FILES := testjni.cinclude $(BUILD_SHARED_LIBRARY)
8、将工程拷贝到symple下,同上面编译samples下demo编译过程
- cygwin安装,NDK配置,samples下demo调试,以及手写测试程序
- Windows下Eclipse中免Cygwin的NDK(JNI)配置及Demo调试
- CYGWIN安装图解以及NDK的配置
- Eclipse下配置NDK不用安装Cygwin
- Eclipse下配置NDK不用安装Cygwin
- Win7下安装Cygwin以及配置ssh
- Cygwin NDK 安装配置详解
- 配置Windows下Android的NDK环境:安装,更新cygwin...
- cygwin 安装以及配置
- windows下 cocos2d-x Cygwin + NDK配置
- NDK ECLIPSE下配置(无需cygwin)
- Win7 下Android NDK + Cygwin环境配置
- NDK之Cygwin安装和配置
- Eclipse NDK 配置,不用安装Cygwin
- Eclipse NDK 配置,不用安装Cygwin
- Cygwin与NDK安装和配置
- IIS安装,调试以及配置测试
- Android NDK 开发+cygwin 的安装 +eclipse cygwin配置
- 关闭弹出窗口,刷新父窗口
- C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
- Linux下SSH跳转无密码登录或执行命令
- JS横向无缝滚动效果
- 学外语的十条经验
- cygwin安装,NDK配置,samples下demo调试,以及手写测试程序
- 对list列表分页
- hadoop集群内lzo的安装与配置
- Linux awk 命令 说明
- Android 工程中各种文件的介绍
- LTE L3 study
- android4.0.3源码之鼠标光标绘制简略版
- 简单实现多线程同步示例(模拟购票系统)
- POJ1661Help Jimmy _dp