android ndk开发hello world入门
来源:互联网 发布:淘宝怎么提升信誉 编辑:程序博客网 时间:2024/05/17 01:48
不知道为什么android的ndk开发资料在网上很少,还有的资料基本上无法完成入门学习demo,根本无法运行,小弟用了三天三夜的时间来弄helloworld,极尽失眠的程度。
一开始是在android studio上配置ndk开发幻镜,然后是进行hello world的开发,但是android studio支持ndk开发相对较晚,没有elipse成熟,在编译的时候遇到很多问题,最终放弃(我知道这不是一个好习惯,但是等以后我还会回来的)
注:ndk在gradle上的配置
http://gradle.org/getting-started-android/#buildauthor
http://ph0b.com/android-studio-gradle-and-ndk-integration/
在这里唠叨一句,使用android studio,那么有必要加强下对gradle的理解。
开始在eclipse上进行ndk开发:
简述1.创建空android项目
2. 书写一个本地类,定义一个空的本地方法。如 public static native String getStr();
3. 切换到项目src目录下,我的是home/dlzh/workspace/HelloNDK/src,然后执行javah -jni com.example.hellondk.GetString,之后在该目录下生成一个.h文件
4.HelloNdk.c文件写实现native方法
5.加载so文件,运行。
详细步骤如下:
1.创建一个空的android项目
2.编写一个本地GetString.class
public class GetString {//本地代码实现public static native String getStr(); //定义本地方法,由c语言实现}3.鼠标右键点击项目名称,然后选择“build project”;在项目的下面会自动生成jni和libs文件夹,然后右键项目,选择Android tools--》add native support。
4.然后ubuntu切换到项目的src目录下,执行javah -jni com.example.hellondk.GetString命令,回车。将生成的com_example_hellondk_GetString.h,拷贝到jni文件加下
5.打开jni文件夹下的HelloNdk.c文件,实现头文件生命的方法
#include <jni.h>#include<com_example_hellondk_GetString.h>/* * 实现头文件方法 */JNIEXPORT jstring JNICALL Java_com_example_hellondk_GetString_getStr (JNIEnv *env, jclass){return env->NewStringUTF("static method call hello Ndk !");}
然后在GetString.java下添加如下代码,加载so文件
static{System.loadLibrary("HelloNDK");}
6.然后
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); TextView tv = (TextView) findViewById(R.id.textview);tv.setText(GetString.getStr());}}7.运行
- android ndk开发hello world入门
- android NDK 开发 Hello World
- Android NDK开发“Hello World NDK”
- Android NDK开发“Hello World NDK”
- Android开发入门Hello World
- Android开发入门:Hello,World!
- Android开发入门Hello World
- Android NDK开发之Hello world篇
- Android NDK开发中的 Hello World实例
- android ndk hello,world!
- android ndk Hello World
- Android 开发Hello World初步入门
- Android开发学习入门Hello World
- android ndk之hello world
- android NDK 之Hello world
- Android NDK Socket Hello World
- Android-NDK-之Hello-World
- Android NDK开发之一hello world的可执行程序
- 基于STM32的12864串行时序的实现
- 代码签名探析
- device contexts
- C语言冒泡序列把数字从大到小排列
- 首字母变大写 --输入一个英文句子,将每个单词的第一个字母改成大写字母。
- android ndk开发hello world入门
- python 第三方 .whl包安装及出现的IOError问题解决办法
- linux中的lsof命令简介
- 2015072105 - 17个来回
- 生命科学叛徒:向数学、信息科学宣战
- Letter Combinations of a Phone Number
- iOS设置全局状态栏样式
- python 第三方 .whl包安装及出现的IOError问题解决办法
- python中write内容为在文件中显示的问题