Android jni简便开发流程
2016-07-01 17:38
519 查看
《Android jni helloworld》中介绍了开发jni helloworld的步骤,本文将介绍jni简便开发流程
① 写java代码 native 声明本地方法
② 添加本地支持 右键单击项目->andorid tools->add native surport
如果发现 finish不能点击,需要给工作空间配置ndk目录的位置
window->preferences->左侧选择android->ndk 把ndk解压的目录指定进来
右键单击项目->andorid tools->add native surport
点击“Finish”,自动生成
③ 如果写的是.cpp的文件 先修改一下生成的.cpp文件的扩展名 不要忘了 相应修改Android.mk文件中LOCAL_SRC_FILES的值
④ javah生成头文件 在生成的头文件中拷贝c的函数名到.c的文件
运行cmd
切换到项目src目录:cd /d F:\workspace_sdk4\02_简便开发流程\src
输入:javah com.wuyudong.simpleprocess.MainActivity
src中自动生成“com_wuyudong_simpleprocess_MainActivity.h”文件
将其中的代码copy到hello.c中
⑤ 解决CDT插件报错的问题
右键单击项目选择 properties 选测 c/c++ general->paths and symbols->include选项卡下->点击add..->file system 选择ndk目录下 platforms文件夹 对应平台下(项目支持的最小版本)
usr 目录下 arch-arm -> include 确定后 会解决代码提示和报错的问题
⑥编写C函数 如果需要单独编译一下c代码就在c/c++视图中找到小锤子图标
如果想直接运行到模拟器上 就不用锤子了
⑦ java代码中不要忘了 system.loadlibrary();
最后的代码如下:
① 写java代码 native 声明本地方法
② 添加本地支持 右键单击项目->andorid tools->add native surport
如果发现 finish不能点击,需要给工作空间配置ndk目录的位置
window->preferences->左侧选择android->ndk 把ndk解压的目录指定进来
右键单击项目->andorid tools->add native surport
点击“Finish”,自动生成
③ 如果写的是.cpp的文件 先修改一下生成的.cpp文件的扩展名 不要忘了 相应修改Android.mk文件中LOCAL_SRC_FILES的值
④ javah生成头文件 在生成的头文件中拷贝c的函数名到.c的文件
运行cmd
切换到项目src目录:cd /d F:\workspace_sdk4\02_简便开发流程\src
输入:javah com.wuyudong.simpleprocess.MainActivity
src中自动生成“com_wuyudong_simpleprocess_MainActivity.h”文件
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_wuyudong_simpleprocess_MainActivity */ #ifndef _Included_com_wuyudong_simpleprocess_MainActivity #define _Included_com_wuyudong_simpleprocess_MainActivity #ifdef __cplusplus extern "C" { #endif /* * Class: com_wuyudong_simpleprocess_MainActivity * Method: helliFromC * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_wuyudong_simpleprocess_MainActivity_helliFromC (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif
将其中的代码copy到hello.c中
⑤ 解决CDT插件报错的问题
右键单击项目选择 properties 选测 c/c++ general->paths and symbols->include选项卡下->点击add..->file system 选择ndk目录下 platforms文件夹 对应平台下(项目支持的最小版本)
usr 目录下 arch-arm -> include 确定后 会解决代码提示和报错的问题
⑥编写C函数 如果需要单独编译一下c代码就在c/c++视图中找到小锤子图标
如果想直接运行到模拟器上 就不用锤子了
⑦ java代码中不要忘了 system.loadlibrary();
最后的代码如下:
package com.wuyudong.simpleprocess; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { static{ System.loadLibrary("hello"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v) { Toast.makeText(getApplicationContext(), helloFromC(), 0).show(); } public native String helloFromC(); }
相关文章推荐
- Android 用MediaCodec实现视频硬解码
- Android--ViewPager----完美轮播
- 6.4、Android Studio的GPU Monitor
- 6.4、Android Studio的GPU Monitor
- Android开发中关于获取当前Activity的一些思考
- Android Studio断点调试
- Android Studio 快捷键
- Rebotium 简单黑盒/白盒测试记录(Android studio)
- Android事件分发
- Android “再按一次返回键退出程序”
- 关于PX、PT、PPI、DPI、DP那些事
- 使用Picasso加载图片的内存优化实践
- Android——AndroidStudio主题样式、字体设置
- adroid 5.1锁屏研究总结
- 从源码角度彻底分析layout_weight使用
- Android中的Log详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- AndroidStudio修改包名和项目名称
- Android 的源代码结构
- Android TouchEvent事件传递机制
- (转)收集——Android Handler分析总结篇