【Android开发】NDK开发(1)-Hello World!
上半年,公司的一个项目,本身我是不喜欢Android开发的,但是学习到的东西总需要整理一下。
从iOS转到Android,真心有些不习惯。就IDE来说,eclipse比Xcode差的不是一点半点。Android模拟器竟然还要开机!我勒个去。。
1 package com.example.fuck; 2 public class Fuck { 3 4 public native static int numFromFuck(); 5 6 static{ 7 8 System.loadLibrary("fuck"); //fuck代表动态链接库libfuck.so文件 9 10 } 11 12 }
3、给程序添加一个按钮button,在点击button时,通过调用类Fuck中本地方法更改textView的text,代码如下
1 button.setOnClickListener(new OnClickListener(){ 2 @Override 3 4 public void onClick(View arg0) { 5 6 // TODO Auto-generated method stub 7 8 textView.setText(Fuck.numFromFuck() + ""); 9 } 10 });
4、build该工程,生成 Fuck.class 类文件(在bin目录下),这一步比较重要。
1 /* DO NOT EDIT THIS FILE - it is machine generated */ 2 #include <jni.h> 3 4 /* Header for class com_example_fuck_Fuck */ 5 6 #ifndef _Included_com_example_fuck_Fuck 7 8 #define _Included_com_example_fuck_Fuck 9 10 #ifdef __cplusplus 11 12 extern "C" { 13 14 #endif 15 16 /* 17 18 * Class: com_example_fuck_Fuck 19 20 * Method: numFromFuck 21 22 * Signature: ()I 23 24 */ 25 26 JNIEXPORT jint JNICALL Java_com_example_fuck_Fuck_numFromFuck 27 28 (JNIEnv *, jobject); 29 30 #ifdef __cplusplus 31 32 } 33 34 #endif 35 36 #endif
1 #include "com_example_fuck_Fuck.h" 2 JNIEXPORT jint JNICALL Java_com_example_fuck_Fuck_numFromFuck (JNIEnv *env, jobject obj) 3 4 { 5 6 return 42; 7 8 }
7、在 jni 文件目录中新建文件 Android.mk 文件:
1 LOCAL_PATH := $(call my-dir) 2 include $(CLEAR_VARS) 3 4 LOCAL_MODULE := fuck 5 6 LOCAL_SRC_FILES := Fuck.c 7 8 include $(BUILD_SHARED_LIBRARY)
LOCAL_MODULE:=fuck 表示要生成的so文件名为:libfuck.so,这就是在步骤2中需加载的动态链接库。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。