码迷,mamicode.com
首页 > 移动开发 > 详细

Android Studio NDK开发

时间:2015-12-10 21:46:20      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

整理完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目录下

技术分享

Android Studio NDK开发

标签:

原文地址:http://www.cnblogs.com/dacainiao/p/5037148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!