- 浏览: 20071 次
- 性别:
- 来自: 深圳
最新评论
1,创建jni的java类自动生成jni头文件
a)新建Jni接口类
b)在终端执行命令:
c)生成了com_bb_sz_skyjni_jni_JniInterface.h头文件
d)javah的用法:
2,在jni目录下新建JniInterface.c文件
a)实现代码
b)Ctrl +F9执行Make Project命令
c)在app\build\intermediates\ndk目录下找到Android.mk文件
d)拷贝Android.mk文件到jni目录下
e)在jni目录下执行ndk-build生成.so库
f)将.so库拷贝到Android项目中去.
a)新建Jni接口类
package com.bb_sz.skyjni.jni; /** * Created by Administrator on 2016/7/7. */ public class JniInterface { static { System.loadLibrary("JniTest"); } public native String getStringFromNative(); }
b)在终端执行命令:
javah -d D:\Android\Client\SkyJni\app\src\main\jni -classpath D:\Android\sdk\platforms\android-19\android.jar;D:\Android\Client \SkyJni\app\build\intermediates\classes\debug com.bb_sz.skyjni.jni.JniInterface
c)生成了com_bb_sz_skyjni_jni_JniInterface.h头文件
d)javah的用法:
D:\Android\Client\SkyJni>javah -help 用法: javah [options] <classes> 其中, [options] 包括: -o <file> 输出文件 (只能使用 -d 或 -o 之一) -d <dir> 输出目录 -v -verbose 启用详细输出 -h --help -? 输出此消息 -version 输出版本信息 -jni 生成 JNI 样式的标头文件 (默认值) -force 始终写入输出文件 -classpath <path> 从中加载类的路径 -bootclasspath <path> 从中加载引导类的路径 <classes> 是使用其全限定名称指定的 (例如, java.lang.Object)。
2,在jni目录下新建JniInterface.c文件
a)实现代码
// // Created by Administrator on 2016/7/7. // #include <jni.h> #include <android/log.h> #ifndef LOG_TAG #define LOG_TAG "ANDROID_LAB" #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) #endif #ifdef __cplusplus extern "C" { #endif JNIEXPORT jstring JNICALL Java_com_bb_1sz_skyjni_jni_JniInterface_getStringFromNative (JNIEnv * env, jobject jObj){ // LOGE("log string from ndk."); return (*env)->NewStringUTF(env,"Hello From JNI!"); } #ifdef __cplusplus } #ifdef __cplusplus } #endif #endif
b)Ctrl +F9执行Make Project命令
c)在app\build\intermediates\ndk目录下找到Android.mk文件
d)拷贝Android.mk文件到jni目录下
e)在jni目录下执行ndk-build生成.so库
f)将.so库拷贝到Android项目中去.
发表评论
-
获取Root之后
2017-03-28 17:24 568ApplicationInfo info ... -
android apk 一键加壳
2016-12-02 15:20 17801, 下载源码 https://github.com/Jian ... -
源码编译Apk时,是否生成odex方法
2016-06-15 11:09 10101,其实Android系统默认的配置是,如果没有指定DISAB ... -
分享代码到jCenter
2016-05-26 16:58 5511, 新建正常的一个library 2, 在library工程 ... -
分享代码到jCenter
2016-05-26 16:59 01, 新建正常的一个library 2, 在library工程 ... -
Android6.0编译过程
2016-05-25 13:36 4031, 购买vpn账号 2, 选择ubuntu版本, 编译6.0 ... -
Apk资源文件混淆[微信开源方法]
2016-03-03 11:18 18401,微信压缩方法_01: 1)生成好了的demo.apk; ... -
反编译步骤
2016-03-03 10:35 5521, 反编译命令: apktool.bat d /locat ... -
AS gradle
2016-03-02 11:09 11861,Eclipse项目直接导程Android Studio项目 ... -
Android Google 开源项目路径
2015-06-19 09:11 424Android Google 开源项目路径 : [需要翻!墙] ... -
Android Studio 配置 SVN
2015-06-18 13:59 953see: http://www.it165.net/pro/h ... -
Android 4.4 实现状态栏(status bar)透明效果
2015-06-17 09:16 1398<style name="MyCusTheme ... -
Android
2014-06-12 16:33 0roboguice, http://daimajishu.it ... -
【转载】使用arm-eabi-addr2line, ndk-stack工具跟踪Android调用堆栈
2013-05-02 23:21 1371使用arm-eabi-addr2line工具跟踪Android ... -
Activity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorVi
2013-01-23 14:16 1023<div class="iteye-blog- ... -
ADB server didn't ACK 解决方案
2012-12-27 16:54 9421.软件冲突。 首先是豌豆荚,尝试关闭豌豆荚,重启eclip ... -
Android Crash 报告反馈
2012-12-19 23:36 11631,Java中有一个接口,static interface T ... -
加密解密MD5
2012-08-03 09:37 10041,MD5加密!android 自带的MessageDiges ... -
快速查询A 到Z
2012-06-29 13:03 776/** * 快速查询View ...
相关推荐
AndroidNDK学习笔记.pdf
本笔记主要探讨了Android NDK的使用、安装、配置以及在Android应用开发中的实践。 一、Android NDK简介 NDK为开发者提供了在Android平台上进行原生代码编程的能力,这包括对底层硬件的直接访问和优化,比如图形处理...
**NDK学习笔记** NDK(Native Development Kit)是Android开发的一部分,它允许开发者使用C和C++编写原生代码。这在需要高性能计算、利用硬件加速或复用现有C/C++库时特别有用。例如,游戏引擎、音频/视频处理库...
这个压缩包的“NDK学习笔记”可能涵盖了这些内容,包括如何设置开发环境、创建和调用本地方法、处理不同类型的数据(如数组、对象等)、以及在Android中使用NDK的特定细节,如Android.mk或CMakeLists.txt构建文件的...
** “ndk相关笔记”这一标题明确指向了Android Native Development Kit(NDK)的相关内容,而描述“自己学ndk开发时的一些总结,希望对你有帮助”则暗示了这些笔记是基于个人学习和实践经验的总结,旨在分享对NDK的...
这篇入门笔记将通过Android自带的示例程序hello-jni来引导我们了解如何使用NDK进行开发。 首先,使用NDK的主要动机包括: 1. **代码保护**:与Java代码相比,C/C++编写的库更难以被反编译,从而提供了一定的代码...
### Android NDK编程入门知识点详解 #### 一、Android NDK简介及应用场景 ...通过以上知识点的学习,开发者可以逐步掌握Android NDK的使用,从而在需要高性能或特定硬件访问的应用开发中发挥重要作用。
#### 二、Android NDK入门学习过程 ##### 1. 开发环境的搭建 - **Linux环境**:由于需要生成能在ARM架构设备上运行的.so动态链接库文件,这通常需要通过交叉编译来实现,而交叉编译器通常在Linux环境下更为成熟...
ffmpeg学习笔记2 编译x265(Win10+android-ndk-r22)生成的arm64-v8a动、静态库 https://blog.csdn.net/aggs1990/article/details/124576351 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者...
ffmpeg学习笔记3 编译fdk-aac(Win10+android-ndk-r22)生成的arm64-v8a动、静态库 https://blog.csdn.net/aggs1990/article/details/124577004 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者...
ffmpeg学习笔记1 编译x264(Win10+android-ndk-r22)生成的arm64-v8a动、静态库 https://blog.csdn.net/aggs1990/article/details/124575758 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者...
ffmpeg学习笔记4 编译libmp3lame(Win10+android-ndk-r22)生成的arm64-v8a静态库 https://blog.csdn.net/aggs1990/article/details/124577449 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者...
launcher.zip学习"进一步强调了这是一个关于实际操作的学习过程,可能包括阅读文档(如`配置NDK集成开发环境全过程第一版.doc`)、研究理论知识(如`Android底层开发平台[1].pdf`)和实践示例(如`Android%20NDK编程...
Android ROM 定制学习笔记 Android ROM 定制学习笔记是一份详细的学习笔记,旨在指导读者如何安装和配置 Android 的底层开发环境,并编译官方的 Android 源代码和 Linux 内核源代码。该笔记还将指导读者如何将编译...
《NDK_DEMO:CC++开发学习笔记》 在Android应用开发中,NDK(Native Development Kit)是一个不可或缺的工具,它允许开发者使用C和C++编写底层代码,以实现高性能、低级别的系统操作和硬件访问。这篇学习笔记将深入...
这篇学习笔记将引导你了解如何配置Cocos2d-x的开发环境以及基础的使用方法。 ### 一、COCOS2D-X 下载与安装 1.1 **开发环境的安装与环境变量的设置** - **JDK的安装与路径设置**:首先,你需要安装Java ...
【Cocos2d-android-1学习笔记】 Cocos2d是一个开源的游戏开发框架,它为开发者提供了构建2D游戏、动态应用以及各种图形交互式体验的工具。在Android平台上,Cocos2d-x是一个非常流行的分支,它用C++编写,并且支持...