整理完Eclipse的NDK开发,再整理下Android Studio的。。
一个比较不错的百度网盘: http://pan.baidu.com/share/home?uk=2383159761 经常更新最新的Android方面的开发包,可以到里面下载到ndk的包
创建一个Android的工程,放一个TextView用于显示文字,功能很简单,从native层获取字符串并显示到TextView上
然后编写相关代码:
public class MainActivity extends AppCompatActivity { //加载so static { System.loadLibrary("MyJni"); } //声明本地方法 public native String GetString(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView)findViewById(R.id.textViewID); textView.setText(GetString()); } }
1. 选择菜单 Build-->Build APK,然后使用命令行cmd进入Android工程 \app\src\main\java 目录下,生成.h头文件
javah -d ../jni 包名.主Activit名
如: javah -d ../jni com.example.eclipsendk.MainActivit
2. 在工程目录栏jni文件夹右键 New --> C/C++Source File
填写文件名,选择.c文件(不生成头文件),如果使用.cpp文件记得 extern "C" 一下
3. 编写native层代码,在MyJni.cpp中
#include "test_com_androidstudiondk_MainActivity.h" //从头文件中把函数声明拷过来 JNIEXPORT jstring JNICALL Java_test_com_androidstudiondk_MainActivity_GetString (JNIEnv *env, jobject obj) { //.c文件这样使用 return (*env)->NewStringUTF(env, "Hello Android Studio NDK"); //.cpp文件 这样使用 //return env->->NewStringUTF("Hello Android Studio NDK"); }
4. 然后添加几个文件的内容
①. local.properties文件,添加上ndk的路径
②. gradle.properties文件声明使用NDK
android.useDeprecatedNdk=true
③. app目录下的build.gradle文件 声明.so的名称
可通过这里切换视图
④. 都修改完毕后,编译APK,放入到模拟器中运行。
debug版(Build APK)生成在: app\build\outputs\apk目录下
release版(Generate Signed APK)生成在: app目录下
时间: 2024-12-24 23:51:28